form-data? x-www-form-urlencoded? raw?
๐ก Intro
Postman์ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ์ฌ๋ฌ ๊ฐ์ง์ Content-Type์ด ์์ต๋๋ค. form-data, x-www-form-urlencoded, Raw, Binary, GraphQL์ด ์๋๋ฐ, ์ค๋์ ์ด ์์ฒญ ์ ํ์ ๋ํด ์์๋ณด๋ ค ํฉ๋๋ค.
๐ ๋ค์ด๊ฐ๊ธฐ์ Content-Type์ด๋?
๐ Content-Type :
- API ์ฐ๋์์, ๋ณด๋ด๋ ์์์ ํ์์ ๋ช ์ํ๊ธฐ ์ํด์ HTTP Header์ ์ค๋ฆฌ๋ ์ ๋ณด๋ฅผ content-type์ด๋ผ๊ณ ํฉ๋๋ค. ์ฆ, api ์์ฒญ ์ request์ ์ค์ด ๋ณด๋ด๋ data์ type์ ๋ณด๋ฅผ ํํํฉ๋๋ค.
- content-type์ ๋ํ ์์ธํ ์ ๋ณด๋ NAMP ๋์ HTTP Content-Type ์ ๋ฆฌ์ ์ ์ ๋ฆฌ๋์ด์ ธ ์์ผ๋ ์ ๋ณด๊ฐ ํ์ํ์ ๋ถ์ ๋ฐฉ๋ฌธํด์ฃผ์ธ์!
๐ POST ์์ฒญ ์ ํ
๐ 1. form-data(์์ ๋ฐ์ดํฐ)
์ด๋ฆ์์ ์ ์ ์๋ฏ์ด ์์ ๋ฐ์ดํฐ๋ ์์์ ์ฑ์ธ๋ ์ ๋ ฅ ํ ์ธ๋ถ ์ ๋ณด์ ๊ฐ์ด ์์ ๋ด๋ถ์ ๋ํํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฌํ ์ธ๋ถ ์ ๋ณด๋ Key๊ฐ ๋ณด๋ด๋ ํญ๋ชฉ์ โ์ด๋ฆโ ์ด๊ณ Value๋ ์ค์ ๊ฐ์ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค. ์ฆ, Key-Value ์์ผ๋ก ์์ฑํ์ฌ ์ ์ก๋ฉ๋๋ค.
๋ํ, ํ ์คํธ ๋ฟ๋ง์๋๋ผ ํ์ผ๊ณผ ํจ๊ป ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ์ ์กํ๊ธฐ๋ฅผ ์ํ๋ค๋ฉด ์๋ GIF์ ๊ฐ์ด form-data์์ ์ํํ ์๋ ์์ต๋๋ค.
๐ 2. x-www-form-urlencoded
์์ฆ์ ๋ง์ด ์ฌ์ฉํ์ง๋ ์์ง๋ง ์ข ์ข ์ฌ์ฉํ๋ ๋ฐฉ์์ ๋๋ค. form-data์ ๊ฑฐ์ ๋์ผํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ form-data์ ์๋นํ ์ ์ฌํฉ๋๋ค. form-data์์ ์ฐจ์ด์ ์ x-www-form-urlencoded๋ ๋ณด๋ด๋ ๋ฐ์ดํฐ๋ฅผ URL์ธ์ฝ๋ฉ ์ด๋ผ๊ณ ๋ถ๋ฅด๋ ๋ฐฉ์์ผ๋ก ์ธ์ฝ๋ฉ ํ์ ์น์๋ฒ๋ก ๋ณด๋ ๋๋ค. ๋ํ, Raw๋ ๋ณธ๋ฌธ ๋ฉ์์ง๊ฐ ์์ฒญ ๋ณธ๋ฌธ์ ๋ํ๋ด๋ ๋นํธ์คํธ๋ฆผ(bitstream)์ผ๋ก ํ์๋จ์ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ ๋นํธ๋ ๋ฌธ์์ด ์๋ฒ๋ก ํด์๋ฉ๋๋ค.
๐ 3. raw
์ด๋ฆ ๊ทธ๋๋ก ๋ ๊ฒ์ด๋ผ๊ณ ํด์ํ ์ ์์ต๋๋ค. raw๋ฅผ ์ ์ธํ ๋ค๋ฅธ ํ์ ๋ค์ ๊ฒฝ์ฐ ๊ฐ๊ฐ ์ฉ๋์ ๋ง๊ฒ Postman์์ ์์์ ์ฒ๋ฆฌ๋ฅผ ํด์ค๋๋ค. ํ์ง๋ง rawํ์ ์ ๋ฌธ์ ๊ทธ๋๋ก๋ฅผ ๋ณด๋ด๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๊ฐ ์์ฒญ ํ์์ ๋ง๊ฒ๋ ๊ฐ์ ์จ์ฃผ์ด์ผ ํฉ๋๋ค.
raw๋ฅผ ์ ํํ๋ฉด ์ ์ฌ์ง๊ณผ ๊ฐ์ด ์ธ๋ถ ํญ๋ชฉ์ ์ ํํ ์ ์์ต๋๋ค. Text, JavaScript, JSON, HTML, XML์ ํ์์ ์ง์ํฉ๋๋ค. ๋ฌผ๋ก ํ์์ ํ๋ฆฌ๊ฒ ์์ฑํ๋ค๋ฉด ํ๋ ธ๋ค๊ณ ์๋ ค์ค๋๋ค.
๐ 4. binary
Binary๋ ์๋์ผ๋ก ์ ๋ ฅํ ์ ์๋ ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ปดํจํฐ์ ๋ชจ๋ ๊ฒ์ด ๋ฐ์ด๋๋ฆฌ๋ก ๋ณํ๋๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ์ง, ํ์ผ ๋ฑ๊ณผ ๊ฐ์ด ์๋์ผ๋ก ์์ฑํ ์ ์๋ ์ํฉ์ผ ๋ ์ด๋ฌํ ์ต์ ์ ์ฌ์ฉํฉ๋๋ค. ์ฆ, ํ ์คํธ ์์ด ์ด๋ฏธ์ง๋ ์์, ์ค๋์ค ํ์ผ ๋ฑ์ ๋ณด๋ผ ๋ ์ฌ์ฉํฉ๋๋ค.
๐ 5. GraphQL
GraphQL์ด๋ Facebook์์ ๋ง๋ ์ดํ๋ฆฌ์ผ์ด์ ๋ ์ด์ด ์ฟผ๋ฆฌ ์ธ์ด๋ผ๊ณ ํฉ๋๋ค. ์น ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฐ์ ธ์ค๊ธฐ ์ํ ์ธ์ด์ ๋๋ค. GraphQL์ GraphQL ๊ฐ๋ ์ก๊ธฐ์์ ๋ ์์ธํ๊ฒ ๋ณด์ค ์ ์์ต๋๋ค.
๋๋งบ์ ์ด๋ ๊ฒ ์ค๋์ ์ฌ๋ฌ ๊ฐ์ง์ ์์ฒญ ์ ํ์ ๋ํด ์์๋ณด์์ต๋๋ค. ์ ๋ ์ค์ ๋ก ์ฌ์ฉํ ๋ JSON์ ์์ฒญ์ด ๋ง๋ค ๋ณด๋, raw์ form-data๋ฅผ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๊ฒ ๋๋๊ตฐ์. ํ์์๋ ์๊ฐ์ง๋ ๋ชปํ ๋ถ๋ถ๋ค์ด์๋๋ฐ, ๊ฐ์๊ธฐ ์ด๊ฒ๋ค์ ๋ํ ์ฐจ์ด๊ฐ ๋ญ์ง..? ๋ผ๋ ์๊ฐ์ ๊ฐ์ง๊ฒ ๋์๊ณ , ๊ทธ๋ ๊ฒ ์ด๋ฒ์ ๊ณต๋ถ๋ฅผ ํ๋ฉฐ ์๋ฃ๋ฅผ ์ ๋ฆฌํ๋ค๋ณด๋ ์๊ฐ๋ณด๋ค ํฅ๋ฏธ๋ก์ด ๋ถ๋ถ๋ค์ด ๋ง์๋ ๊ฒ ๊ฐ์ต๋๋ค.๐
[์ฐธ๊ณ ์๋ฃ]