elice/study

[DB] HTTP Method | GET, POST

๊ฑด๋ง๋”” 2022. 2. 7. 14:40

0. HTTP Method

  • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ์ด๋ฃจ์–ด์ง€๋Š” ์š”์ฒญ(Request)๊ณผ ์‘๋‹ต(Response) ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ์„œ๋ฒ„์—๊ฒŒ ์‚ฌ์šฉ์ž ์š”์ฒญ์˜ ๋ชฉ์ ์ด๋‚˜ ์ข…๋ฅ˜๋ฅผ ์•Œ๋ฆฌ๋Š” ์ˆ˜๋‹จ
  • ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•
  • GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, CONNECT

 

1. GET

  • ํด๋ผ์ด์–ธํŠธ โžก ์„œ๋ฒ„ ์–ด๋– ํ•œ ๋ฆฌ์†Œ์Šค๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ
  • ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜(Read), ๊ฒ€์ƒ‰(Retrieve)ํ•  ๋•Œ ์‚ฌ์šฉ
  • URL Parameter๋ฅผ ํ†ตํ•ด ์ •๋ณด๋ฅผ ๋„˜๊ธฐ๋Š” ๋ฐฉ์‹
  • ์š”์ฒญ ์ „์†กํ•  ๋•Œ, URL ์ฃผ์†Œ ๋’ค์— ์ด๋ฆ„๊ณผ ๊ฐ’์ด ๊ฒฐํ•ฉ๋œ ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง(query string)์„ ํฌํ•จ
  • www.example-url.com/resources?name1=value1&name2=value2

ํŠน์ง•

  • ์บ์‹œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ๋ถˆํ•„์š”ํ•œ ์š”์ฒญ์„ ์ œํ•œํ•˜๊ธฐ ์œ„ํ•ด (js, css, ์ด๋ฏธ์ง€ ๊ฐ™์€ ์ •์  ์ปจํ…์ธ  ์š”์ฒญ โžก ์บ์‹œ โžก ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ)
    • ๊ฐ™์€ ์š”์ฒญ ์—ฌ๋Ÿฌ๋ฒˆ ํ•ด๋„ ํ•ญ์ƒ ๊ฐ™์€ ์‘๋‹ต ๋ฐ˜ํ™˜
    • HTTP ํ—ค๋”์—์„œ cache-control ํ—ค๋”๋ฅผ ํ†ตํ•ด ์บ์‹œ ์˜ต์…˜์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ € ํžˆ์Šคํ† ๋ฆฌ์— ๋‚จ๋Š”๋‹ค.
  • ๋ถ๋งˆํฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ๊ธธ์ด์— ๋Œ€ํ•œ ์ œํ•œ์ด ์žˆ๋‹ค. (๋ธŒ๋ผ์šฐ์ € ๊ธฐ์ค€์— ๋”ฐ๋ผ ๋‹ค๋ฆ„)
  • ์„ฑ๊ณต ์‹œ, 200(Ok) HTTP ์‘๋‹ต ์ฝ”๋“œ๋ฅผ XML, JSON ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ(html, txt ๋“ฑ)์™€ ํ•จ๊ป˜ ๋ฐ˜ํ™˜
  • POST ๋ฐฉ์‹๋ณด๋‹ค ์ƒ๋Œ€์ ์œผ๋กœ ์ „์†ก ์†๋„๊ฐ€ ๋น ๋ฆ„

 

2. POST

  • ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ
  • HTTP Body ์•ˆ์— ์ •๋ณด๋ฅผ ๋‹ด์•„์„œ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹ (์•”ํ˜ธํ™”๊ฐ€ ๋œ๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹˜)
  • ์ผ์ • ํฌ๊ธฐ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ
  • ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๊ธฐ ์ „์— ์ธ์ฝ”๋”ฉ, ์ „์†ก ํ›„ ์„œ๋ฒ„์—์„œ๋Š” ๋‹ค์‹œ ๋””์ฝ”๋”ฉ

์ถœ์ฒ˜: https://webscraping.pro/http-hyper-text-transfer-protocol-1/
์ถœ์ฒ˜: https://webscraping.pro/http-hyper-text-transfer-protocol-1/

์œ„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•œ ์ •๋ณด๋“ค์„ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์•”ํ˜ธํ™”๋˜๋Š” ๊ฒƒ์€ ์•„๋‹˜

ํŠน์ง•

  • ์บ์‹œ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ € ํžˆ์Šคํ† ๋ฆฌ์— ๋‚จ์ง€ ์•Š๋Š”๋‹ค.
  • ๋ถ๋งˆํฌํ•  ์ˆ˜ ์—†๋‹ค.
  • ๋ฐ์ดํ„ฐ ๊ธธ์ด์— ๋Œ€ํ•œ ์ œํ•œ์ด ์—†๋‹ค.
  • POST ์š”์ฒญ ์ค‘ ์ž์› ์ƒ์„ฑ์€ 201(Created) HTTP ์‘๋‹ต ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ์ฃผ์†Œ์ฐฝ์— ์ „์†กํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ •๋ณด ๋…ธ์ถœ X โžก GET ๋ฐฉ์‹์— ๋น„ํ•ด ๋ณด์•ˆ์„ฑ์ด ๋†’์Œ
  • ์†๋„๊ฐ€ GET ๋ฐฉ์‹๋ณด๋‹ค ๋А๋ฆผ
  • ์ฟผ๋ฆฌ์ŠคํŠธ๋ง(๋ฌธ์ž์—ด) ๋ฐ์ดํ„ฐ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋ผ๋””์˜ค ๋ฒ„ํŠผ, ํ…์ŠคํŠธ ๋ฐ•์Šค ๊ฐ™์€ ๊ฐ์ฒด๋“ค์˜ ๊ฐ’๋„ ์ „์†ก ๊ฐ€๋Šฅ

 

๐Ÿ”น GET์€ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ, POST๋Š” ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ
๐Ÿ”น GET์€ SELECT๋ฌธ๊ณผ ๋น„์Šทํ•˜๊ณ , POST๋Š” DB์— ๊ฐ’์„ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉ

 

3. ์ฐจ์ด์ 

  GET POST
ํžˆ์Šคํ† ๋ฆฌ parameter๊ฐ€ URL์˜ ์ผ๋ถ€ โžก ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ก์— ๋‚จ์Œ parameter ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅ x
๋ถ๋งˆํฌ URL๋กœ ์ธ์ฝ”๋”ฉ ๋˜๋ฏ€๋กœ ๋ถ๋งˆํฌ ๊ฐ€๋Šฅ ์š”์ฒญ parameter๊ฐ€ req body์— ํฌํ•จ โžก ๋ถ๋งˆํฌ x
parameter ์ „์†ก ๊ฐ€๋Šฅ
 URL์— 2K ์ดํ•˜๋กœ ๋„ฃ๋Š”๊ฒŒ ์•ˆ์ „
query string์œผ๋กœ URL ๋’ค์˜ ? ๋’ค์— ๋ถ™์Œ
์„œ๋ฒ„์— ํŒŒ์ผ ์—…๋กœ๋“œ ๋“ฑ์„ ํฌํ•จํ•ด์„œ ๊ฐ€๋Šฅ
form data type ASCII ๋ฌธ์ž ์ œํ•œ ์—†์Œ
ํ•ดํ‚น ์‰ฌ์›€ (script kiddles) GET๋ณด๋‹ค ํ•ดํ‚น ์–ด๋ ค์›€
์‚ฌ์šฉ ๋ฆฌ์†Œ์Šค ์š”์ฒญ
๋ฏผ๊ฐํ•œ ์ •๋ณด ์ „์†ก ์‹œ ์‚ฌ์šฉ x
๋ฆฌ์†Œ์Šค ์ƒ์„ฑ
๋น„๋ฐ€๋ฒˆํ˜ธ ์ „์†ก ๋“ฑ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅ
์บ์‹œ Idempotent
๊ฐ™์€ ์š”์ฒญ ์—ฌ๋Ÿฌ๋ฒˆ ํ•ด๋„ ํ•ญ์ƒ ๊ฐ™์€ ์‘๋‹ต
Not idempotent
์š”์ฒญ ์—ฌ๋Ÿฌ๋ฒˆ ํ•ด๋„ ๋‹ค๋ฅธ ์‘๋‹ต ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
HTTP ์‘๋‹ต ์ฝ”๋“œ 200 (Ok) 201 (Created)
encode-type application/x-www-form-urlencoded multipart/form-data, application/x-www-form-urlencoded ๋“ฑ

 

 

 

์ฐธ๊ณ 

https://newbiecs.tistory.com/243

 

https://velog.io/@kk1112k/%EB%B0%B1%EC%97%94%EB%93%9C-%EA%B0%9C%EB%B0%9C-%EA%B8%B0%EC%88%A0%EB%A9%B4%EC%A0%91-%EC%A0%95%EB%A6%AC-%EA%B0%9C%EB%B0%9C%EA%B8%B0%EB%B3%B8

 

https://donologue.tistory.com/379