Computer Science/๐Ÿ“ก Network

[๋„คํŠธ์›Œํฌ] GET ๋ฉ”์„œ๋“œ์™€ POST ๋ฉ”์„œ๋“œ ํŠน์ง•, ์ฐจ์ด

J1Yun 2022. 3. 31. 20:54
728x90

  GET๊ณผ POST๋Š” HTTP ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๊ฐ๊ฐ GET๊ณผ POST ๋ฉ”์„œ๋“œ์˜ ํŠน์ง• ๋ฐ ์ฐจ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

GET ๋ฉ”์„œ๋“œ

  •   ๊ฐœ๋…
    • ์ •๋ณด ์กฐํšŒ๋ฅผ ์œ„ํ•œ ๋ฉ”์„œ๋“œ
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
    • ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ (Select)
  • ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
    • URL ๋์— '?'๋ฅผ ํฌํ•จํ•ด key=value ํ˜•์‹์˜ ์ฟผ๋ฆฌ์ŠคํŠธ๋ง(Query String)๋ฅผ ๋ถ™ํ˜€ ์„œ๋ฒ„์— ์ „์†ก
    • ์š”์ฒญ ์ •๋ณด์ธ ์ฟผ๋ฆฌ์ŠคํŠธ๋ง(Query String)์ด ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๊ฒฝ์šฐ '&'๋กœ ๊ตฌ๋ถ„
    • ex) www.example.com?name1=value1&name2=value2
  • ํŠน์ง•
    • URL์— ์ฟผ๋ฆฌ์ŠคํŠธ๋ง(๋ฐ์ดํ„ฐ)๋ฅผ ๋ถ™ํ˜€ ์ „์†ก
    • ๋ฐ์ดํ„ฐ๋ฅผ ํ—ค๋”(Header)์— ํฌํ•จํ•˜์—ฌ ์ „์†ก
    • HTTP ํŒจํ‚ท์˜ body๋Š” ๋น„์–ด์žˆ๋Š” ์ƒํƒœ๋กœ ์ „์†ก
      • body์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ํ‘œํ˜„ํ•˜๋Š” 'Content-Type' ํ•„๋“œ๋„ HTTP Request Header์— ๋“ค์–ด๊ฐ€์ง€ ์•Š์Œ
    • URL์— ๋ถ™ํž ์ˆ˜ ์žˆ๋Š” ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ(์š”์ฒญ ์ •๋ณด) ์–‘์— ํ•œ๊ณ„๊ฐ€ ์žˆ์Œ
    • URL์— ์ •๋ณด๋“ค์ด ๊ทธ๋Œ€๋กœ ๋…ธ์ถœ๋˜๊ธฐ ๋•Œ๋ฌธ์— POST ๋ฐฉ์‹์— ๋น„ํ•ด ๋ณด์•ˆ์— ์ทจ์•ฝ
    • ์š”์ฒญ๊ณผ ์‘๋‹ต์ด ์บ์‹ฑ๋˜์–ด POST ๋ฐฉ์‹๋ณด๋‹ค ์ „์†ก์†๋„๊ฐ€ ๋น ๋ฆ„
    • ๋ธŒ๋ผ์šฐ์ € ํžˆ์Šคํ† ๋ฆฌ์— ๊ธฐ๋ก์ด ๋‚จ์Œ

 

POST ๋ฉ”์„œ๋“œ

  • ๊ฐœ๋…
    • ์„œ๋ฒ„์˜ ๊ฐ’์ด๋‚˜ ์ƒํƒœ๋ฅผ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•œ ๋ฉ”์„œ๋“œ 
    • ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์— ์ œ์ถœํ•˜์—ฌ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
    • ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ (Insert , Update, Delete)
  • ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
    • ๋ฐ์ดํ„ฐ(์š”์ฒญ ์ •๋ณด)๋ฅผ HTTP ํŒจํ‚ท์˜ body ์•ˆ์— ์ˆจ๊ฒจ์„œ ์„œ๋ฒ„๋กœ ์ „์†ก
    • Request Header์˜ 'Content-Type'์— ํ•ด๋‹น ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ํ‘œ์‹œ๋˜๊ณ , ์ „์†กํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ ์–ด์ฃผ์–ด์•ผํ•จ
      • Default: application/octet-stream
      • ๋‹จ์ˆœ ํ…์ŠคํŠธ: text/plain
      • ํŒŒ์ผ: multipart/form-date
  • ํŠน์ง•
    • ๋ฐ์ดํ„ฐ๋ฅผ URL ๋’ค๊ฐ€ ์•„๋‹Œ HTTP ํŒจํ‚ท์˜ body์— ๋‹ด์•„ ์ „์†กํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์–‘์˜ ์ œํ•œ ์—†์Œ (๋Œ€์šฉ๋Ÿ‰ ๊ฐ€๋Šฅ)
    • ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์ฝ”๋”ฉํ•˜์—ฌ ์„œ๋ฒ„๋กœ ์ „์†ก, ์ด๋ฅผ ๋ฐ›์€ ์„œ๋ฒ„๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ๋””์ฝ”๋”ฉ
    • ์ •๋ณด๊ฐ€ URL์— ๋…ธ์ถœ๋˜์ง€ ์•Š์•„ GET ๋ฐฉ์‹๋ณด๋‹ค ๋ณด์•ˆ์„ฑ์ด ๋†’์Œ
    • ์ •๋ณด๊ฐ€ URL์— ๋…ธ์ถœ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์บ์‹ฑ ๋ถˆ๊ฐ€
    • ์š”์ฒญ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„ ์ œํ•œ ์กด์žฌ
    • ๋ธŒ๋ผ์šฐ์ € ํžˆ์Šคํ† ๋ฆฌ์— ๊ธฐ๋ก์ด ๋‚จ์ง€ ์•Š์Œ

 

GET vs POST

HTTP Method GET ๋ฐฉ์‹ POST ๋ฐฉ์‹
URL ์˜ˆ์‹œ http://localhost:3000/login?id=admin&pw=1234 http://localhost:3000/login
๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธฐ๋Š” ๊ณณ HTTP ํŒจํ‚ท Header HTTP ํŒจํ‚ท body
๋ฆฌ์†Œ์Šค ์ „๋‹ฌ ๋ฐฉ์‹ ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง HTTP body
HTTP ์‘๋‹ต ์ฝ”๋“œ 200 201
URL์— ๋ฐ์ดํ„ฐ ๋…ธ์ถœ ์—ฌ๋ถ€ O X
์บ์‹ฑ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ O X
๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ก O X
๋ถ๋งˆํฌ ์ถ”๊ฐ€ O X
๋ฐ์ดํ„ฐ ๊ธธ์ด ์ œํ•œ O X
728x90