๊ฐ๋
Request ๊ฐ์ฒด๋ API๋ฅผ ์ปจํธ๋กคํ๊ธฐ ์ํ ๋ฉ์๋๋ก ์๋ ์ธ๊ฐ์ง๋ฅผ ๋ด๊ณ ์๋ค.
- param
- query
- body
req.param
- ์ฃผ์์ ํฌํจ๋ ๋ณ์๋ฅผ ๋ด๋๋ค. ์๋ฅผ ๋ค์ด https://naver.com/post/12345 ๋ผ๋ ์ฃผ์๊ฐ ์๋ค๋ฉด 12345๋ฅผ ๋ด๋๋ค.
- ์๋ฒ์์ Path Variable ๋ก ์นญํ๋ค.
req.query
- ์ฃผ์ ๋ฐ๊นฅ, ? ์ดํ์ ๋ณ์๋ฅผ ๋ด๋๋ค. ์๋ฅผ ๋ค์ด https://naver.com/post?post_id=12345 ์ผ ๊ฒฝ์ฐ Node.js๋ฅผ ๋ด๋๋ค.
- &๋ก ์ฐ๊ฒฐํ์ฌ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋๊ธธ ์ ์๋ค. https://naver.com/post?post_id=1235&key=value
- ์๋ฒ์์ Query parameter ๋ก ์นญํ๋ค.
req.body
- XML, JSON, Multi Form ๋ฑ์ ๋ฐ์ดํฐ๋ฅผ ๋ด๋๋ค. ๋น์ฐํ ์ฃผ์์์ ํ์ธํ ์ ์๋ค.
- ํ์ง๋ง ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ, Fiddler์ ๊ฐ์ ํด๋ก ์์ฒญ ๋ด์ฉ์ ํ์ธํ ์ ์๋ค. ๋ฏผ๊ฐํ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ๋ฐ๋์ ์ํธํํด ์ ์กํด์ผ ํ๋ค.
param vs query
- resource๋ฅผ ์๋ณํด์ผํ๋ ์ํฉ์์๋Path Variable๊ฐ ๋ ์ ํฉํ๋ค.
- ์ ๋ ฌ์ด๋ ํํฐ๋ง์ ํด์ผํ๋ ์ํฉ์์๋ Query Parameter๊ฐ ๋ ์ ํฉํ๋ค.
query string(query/parameter) vs body
body์ ์ฌ์ฉํ ๋ :
- ์ธ์์ ํ๋ซ ํค-๊ฐ ๊ตฌ์กฐ๊ฐ ์๋ ๊ฒฝ์ฐ
- ์ง๋ ฌํ ๋ ์ด์ง ๋ฐ์ดํฐ์ ๊ฐ์ด ๊ฐ์ด ์ฌ๋์ด ์ฝ์ ์์๋ ๊ฒฝ์ฐ
- ๋งค์ฐ ๋ง์ ์์ ์ธ์๊ฐ์์ ๋(์ผ๋ถ ์น ์๋ฒ์๋ URI ๊ธธ์ด์ ์ ํ์ด ์๋ค.) body์๋ ์ ํ์ด ์์
query string์ ์ฌ์ฉํ ๋ :
- ์ธ์๊ฐ ๋๋ฒ๊น ํ๋ ๋์๋ณด๊ณ ์ถ์ ๋
- ์ฝ๋๋ฅผ ๊ฐ๋ฐํ๋ ๋์ ์๋์ผ๋ก ํธ์ถ ํ ์ ์๊ธฐ๋ฅผ ์ํ ๋
- ex) curl
- ์ฌ๋ฌ ์น ์๋น์ค์์ ์ธ์๊ฐ ๊ณตํต์ ์ธ ๊ฒฝ์ฐ
- ๋ค์๊ณผ ๊ฐ์ ๋ค๋ฅธ ์ฝํ ์ธ ์ ํ์ ์ด๋ฏธ ๋ณด๋ด๊ณ ์๋ ๊ฒฝ์ฐ application/octet-stream
ํผํฉํ์ฌ ์ผ์น์ํฌ ์ ์์ต๋๋ค. ๊ณตํต๋ ํญ๋ชฉ, ๋๋ฒ๊ทธ ๊ฐ๋ฅํด์ผํ๋ ํญ๋ชฉ์ ์ฟผ๋ฆฌ ๋ฌธ์์ด์ ๋ฃ๊ณ ๋๋จธ์ง๋ json์ ๋ชจ๋ ๋ฃ์ต๋๋ค.
์ฐธ๊ณ
- medium.com/@bouncewind0105/request-param-query-body-%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-2e7e4fddd8b9
- ssungkang.tistory.com/entry/Web-Path-Variable-VS-Query-Parameter
- stackoverflow.com/questions/25385559/rest-api-best-practices-args-in-query-string-vs-in-request-body
- ryan-han.com/post/translated/pathvariable_queryparam/
'๐CS > Web' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
CSRF(Cross-site Request Forgery) ๊ณต๊ฒฉ (0) | 2021.04.25 |
---|---|
XSS(Cross-site Scripting) ๊ณต๊ฒฉ (0) | 2021.04.25 |
[Web] CORS(Cross-Origin Resource Sharing) (0) | 2021.04.18 |
[Web] HTTP, HTTPS, HTTP ๋ฒ์ (1) | 2021.04.08 |
[Web] ์ฟ ํค์ ์ธ์ (0) | 2021.04.04 |
๋๊ธ