๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“ŒCS/Web

[Web] param vs query vs body

by dar0m! 2021. 4. 18.

๊ฐœ๋…

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์— ๋ชจ๋‘ ๋„ฃ์Šต๋‹ˆ๋‹ค.

 

์ฐธ๊ณ 

 

'๐Ÿ“Œ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

๋Œ“๊ธ€