ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Web] HTTP? GET vs POST
    Web 2020. 8. 3. 19:01
    ๋ฐ˜์‘ํ˜•

    HTTP๋ž€?

    HTTP( HyperText Transfer Protocol )๋Š” WWW ์ƒ์—์„œ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.  ์ฆ‰, HTTP๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ์ด๋ฃจ์–ด์ง€๋Š” ์š”์ฒญ/์‘๋‹ต (request/response) ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ํด์•„์ด์–ธํŠธ์ธ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTTP๋ฅผ ํ†ตํ•˜์—ฌ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ํŠน์ • ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๊ฒŒ ๋˜๋ฉด, ์„œ๋ฒ„๋Š” ์ด ์š”์ฒญ์— ์‘๋‹ตํ•˜์—ฌ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ํ•ด๋‹น ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ, HTTP ์š”์ฒญ์— ํฌํ•จ๋˜๋Š” HTTP ๋ฉ”์†Œ๋“œ๋Š” ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•ด์•ผํ•  ํ–‰๋™์„ ํ‘œ์‹œํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.  ์ด HTTP ๋ฉ”์†Œ๋“œ ์ค‘ GET๊ณผ POST์˜ ํŠน์ง•๊ณผ ์ฐจ์ด์ ์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

     

    GET

    GET์€ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๋ ค๊ณ  ์„ค๊ณ„๋œ ๋ฉ”์†Œ๋“œ์ž…๋‹ˆ๋‹ค.

    GET์€ ์š”์ฒญ์„ ์ „์†กํ•  ๋•Œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ Body์— ๋‹ด์ง€ ์•Š๊ณ , ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์„ ํ†ตํ•ด ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์ด๋ž€, URL์˜ ๋์— ?์™€ ํ•จ๊ป˜ Key, Value ๊ฐ™์€ ์Œ์„ ์ด๋ฃจ๋Š” ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

    www.example-url/tistory?id=1&name=pp )

    ๋‹ค์Œ์€ URL ๋’ค์— id ์ •๋ณด์™€ name ์ •๋ณด๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ๋ผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด &๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

     

    ํŠน์ง•

    • GET์€ Idempotent(๋ฉฑ๋“ฑ) ํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Idempotent๋ž€ ๋™์ผํ•œ ์—ฐ์‚ฐ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ˆ˜ํ–‰ํ•˜๋”๋ผ๋„ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋กœ์„œ GET์œผ๋กœ ์„œ๋ฒ„์— ๋™์ผํ•œ ์š”์ฒญ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ „์†กํ•˜๋”๋ผ๋„ ๋™์ผํ•œ ์‘๋‹ต์ด ๋Œ์•„์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • ๋”ฐ๋ผ์„œ GET์€ ์„ค๊ณ„์›์น™์— ๋”ฐ๋ผ ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋‚˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค์ง€ ์•Š์•„์•ผ Idempotentํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ๋กœ ์กฐํšŒ๋ฅผ ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

     

    POST

    POST๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑ/๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ๋ฉ”์†Œ๋“œ์ž…๋‹ˆ๋‹ค. GET๊ณผ๋Š” ๋‹ฌ๋ฆฌ ์ „์†กํ•ด์•ผ๋  ๋ฐ์ดํ„ฐ๋ฅผ HTTP ๋ฉ”์„ธ์ง€์˜ Body์— ๋‹ด์•„์„œ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. 

    POST๋กœ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์š”์ฒญ ํ—ค๋”์˜ Content-Type์— ์š”์ฒญ ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž… ํ‘œ์‹œ๋ฅผ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์—†์„ ๊ฒฝ์šฐ, ์„œ๋ฒ„๋Š” ๋‚ด์šฉ์ด๋‚˜ URL์— ํฌํ•จ๋œ ๋ฆฌ์†Œ์Šค์˜ ํ™•์žฅ์ž๋ช…์œผ๋กœ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์œ ์ถ”ํ•ฉ๋‹ˆ๋‹ค.

     

    ํŠน์ง•

    • POST๋Š” URL์ด ์•„๋‹Œ Body์— ์š”์ฒญํ•  ์ •๋ณด๋ฅผ ๋‹ด๊ธฐ ๋•Œ๋ฌธ์— ๊ธธ์ด ์ œํ•œ์—†์ด ๋ฐ์ดํ„ฐ ์ „์†ก์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    • POST๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ Body๋กœ ์ „์†ก๋˜๊ธฐ ๋•Œ๋ฌธ์— GET์— ๋น„ํ•˜๋ฉด ๋ณด์•ˆ์ ์ธ ๋ฉด์—์„œ ์•ˆ์ „ํ•˜๋‹ค๊ณ  ๋งํ•  ์ˆ˜๋Š” ์žˆ์œผ๋‚˜, POST ์š”์ฒญ๋„ ํฌ๋กฌ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ํˆด๋กœ ์š”์ฒญ ๋‚ด์šฉ์„ ํ™•์ธ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋Š” ์•”ํ˜ธํ™”๋ฅผ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

    • POST๋Š” Non-idempotentํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์—๊ฒŒ ๋™์ผํ•œ ์š”์ฒญ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ „์†กํ•ด๋„ ์‘๋‹ต์€ ํ•ญ์ƒ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

     

    HTTP ํ†ต์‹ 

    HTTP์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ–ˆ์œผ๋‹ˆ HTTP ํ†ต์‹ ์€ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

    HTTP ํ†ต์‹ ์€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ์žˆ์„ ๋•Œ๋งŒ ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•˜์—ฌ ํ•ด๋‹น ์ •๋ณด๋ฅผ ์ „์†กํ•˜๊ณ  ๊ณง๋ฐ”๋กœ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

    ์ด๋Ÿฌํ•œ ์—ฐ๊ฒฐ ๋ฐฉ์‹์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ผ ๊ฒฝ์šฐ ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•˜๋Š” ๋‹จ๋ฐฉํ–ฅ์ ์ธ ํ†ต์‹ ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ๋Š” ๋ฐ์ดํ„ฐ ์š”์ฒญ์„ ํ•  ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

    ๋”ฐ๋ผ์„œ, HTTP ํ†ต์‹ ์€ ์‹ค์‹œ๊ฐ„ ์—ฐ๊ฒฐ์ด ์•„๋‹Œ, ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์„œ๋ฒ„๋กœ ์ ‘๊ทผํ•˜๋Š” ๋ชจ๋ฐ”์ผ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜, ์›น ์œ„์ฃผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค. 

     

     

    ๋ฐ˜์‘ํ˜•
Designed by Tistory.