[๐ŸŽCS] HTTP

h-a-n-aยท2023๋…„ 5์›” 31์ผ
1

๐ŸŽCS

๋ชฉ๋ก ๋ณด๊ธฐ
3/15

HTTP

์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ†ต์‹ ๊ทœ์•ฝ

์›น๋ฌธ์„œ๊ฐ„์— ๋งํฌ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ, HTML, TEXT, ์ด๋ฏธ์ง€, JSON ๋“ฑ ๊ฑฐ์˜ ๋ชจ๋“  ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ธํ„ฐ๋„ท ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ• ๋•Œ http://www.naver.com ์™€ ๊ฐ™์ด ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์€ www.naver.com์ด๋ผ๋Š” ์ธํ„ฐ๋„ท ์ฃผ์†Œ๊ฐ€ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ ์ •๋ณด ๋“ฑ์˜ ๊ตํ™˜์„ http์˜ ํ†ต์‹  ๊ทœ์•ฝ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

*ํ”„๋กœํ† ์ฝœ: ์ปดํ“จํ„ฐ๋‚˜ ์›๊ฑฐ๋ฆฌ ํ†ต์‹  ์žฅ๋น„ ์‚ฌ์ด์—์„œ ๋ฉ”์„ธ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ์–‘์‹๊ณผ ๊ทœ์น™์˜ ์ฒด๊ณ„๋ฅผ ๋งํ•œ๋‹ค. ์ฆ‰, ์ƒํ˜ธ ํ•ฉ์˜ํ•˜์— ์ •ํ•ด์ง„ ์กฐ๊ฑด์„ ์•ฝ์†ํ•œ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฒƒ!

HTTP์˜ ํŠน์ง•

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ๋ฒจ์˜ ํ”„๋กœํ† ์ฝœ๋กœ TCP/IP๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ์—์„œ ์š”์ฒญ(request)์„ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ด์„œ ์‘๋‹ต(response)

  • ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š์€ ๋ฌด์ƒํƒœ& ๋น„์—ฐ๊ฒฐ์„ฑ(stateless,connectionless) ํ”„๋กœํ† ์ฝœ

    ๋น„์—ฐ๊ฒฐ์„ฑ(connectionless)

    ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ํ•œ ๋ฒˆ ์—ฐ๊ฒฐ์„ ๋งบ์€ ํ›„ ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•˜๋ฉด ์—ฐ๊ฒฐ์„ ๋Š์–ด๋ฒ„๋ฆฐ๋‹ค. (ํ•˜์ง€๋งŒ ํ†ต์‹ ์—๋Š” ๋ณดํ†ต ์—ฐ๊ฒฐ์ง€ํ–ฅ ํ”„๋กœํ† ์ฝœ์ธ TCP๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค)

    -> ์ด์™€ ๊ฐ™์€ ๋น„์—ฐ๊ฒฐ์„ฑ์˜ ํŠน์„ฑ์œผ๋กœ ์—ฐ๊ฒฐ์ด ํ•ด์ œ๋จ๊ณผ ๋™์‹œ์— ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด์ „์— ์š”์ฒญํ•œ ๊ฒฐ๊ณผ์— ๋Œ€ํ•ด์„œ ์žŠ์–ด๋ฒ„๋ฆฌ๊ฒŒ ๋œ๋‹ค. ์ด๋ฅผ ๋ฌด์ƒํƒœ๋ผ๊ณ  ํ•œ๋‹ค.(stateless)

  • ์žฅ์ 
    ์„œ๋ฒ„์ž์›์„ ๋งค์šฐ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ์‘๋‹ต์‹œ๊ฐ„์ด ๋น ๋ฅด๋‹ค.

  • ๋‹จ์ 
    ๋งค๋ฒˆ ์ƒˆ๋กœ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋ฏ€๋กœ 3 way handshake ์‹œ๊ฐ„์ด ์ถ”๊ฐ€๋œ๋‹ค -> persistent connections์œผ๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐ!





    ์ด์ œ stateless๋ฅผ ์ข€ ๋” ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ stateful์— ๋Œ€ํ•ด ์ž ์‹œ ์•Œ์•„๋ณด์ž.

    stateful์€ ํ•ญ์ƒ ๊ฐ™์€ ์„œ๋ฒ„๊ฐ€ ์œ ์ง€๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค. ์•„๋ž˜ ์˜ˆ์‹œ๋Š” statefulํ•œ ์ƒํ™ฉ์˜ ๋Œ€ํ™”์ด๋‹ค.

    ๋ณดํ†ต ๋ฌผ๊ฑด์„ ๊ตฌ๋งคํ•˜๋ฉด ์ ์› ํ•œ ๋ช…๋งŒ ํ†ตํ•˜๋ฏ€๋กœ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ณ„์† ์•Œ๊ณ  ์žˆ์–ด ๋ฐ”๋กœ ์†Œํ†ต์ด ๋œ๋‹ค.


    ํ•˜์ง€๋งŒ ์ ์› A์—๊ฒŒ ๋ฌผ์–ด๋ณด๋˜ ๋‚ด์šฉ์„ ์ ์› B,C์—๊ฒŒ ์ด์–ด์„œ ๋ฌผ์–ด๋ณธ๋‹ค๋ฉด ๋‘˜์€ ๋ฌด์ฒ™ ๋‹นํ™ฉ์Šค๋Ÿฌ์šธ ๊ฒƒ์ด๋‹ค. B์™€ C๋Š” ์ปจํ…์ŠคํŠธ๋ฅผ ๋ชจ๋ฅด๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

    stateless(๋ฌด์ƒํƒœ, ์ƒํƒœ์œ ์ง€X)

    ๊ทธ๋Ÿผ stateless๋Š” ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•˜์ง€ ์•Š๋Š”๋‹ค ๋ผ๋Š” ๋ง๋กœ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์—ฌ๊ธฐ์„œ๋Š” ์ ์›์ด ๊ณ ๊ฐ์˜ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๊ณ ๊ฐ์€ ๋ฌผ์–ด๋ณผ ๋•Œ๋งˆ๋‹ค ์–ด๋–ค ๋ฌผ๊ฑด์„, ๋ช‡ ๊ฐœ, ์–ด๋–ค ๊ฒฐ์ œ ์ˆ˜๋‹จ์„ ์‚ฌ์šฉํ• ์ง€ ๋งํ•ด์ค˜์•ผ ํ•œ๋‹ค.


    ๋ฌด์ƒํƒœ๋Š” ์ ์›์ด ๋ฐ”๋€Œ๋”๋ผ๋„ ๊ณ ๊ฐ์ด ๋งค๋ฒˆ ๋ช…ํ™•ํ•˜๊ฒŒ ๋งํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์˜ฌ๋ฐ”๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌด์ƒํƒœ๋กœ ์„ค๊ณ„ํ•˜๋ฉด ๋ฌดํ•œ์  ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์ƒ๊ธด๋‹ค.

  • ์žฅ์ 
    ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•œ ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ ์š”์ฒญ์ด ์„œ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌ๊ฐ€ ๋˜๋ฉฐ,
    ์ด์ „ ๋ฐ์ดํ„ฐ ์š”์ฒญ๊ณผ ๋‹ค์Œ ๋ฐ์ดํ„ฐ ์š”์ฒญ์ด ์„œ๋กœ ๊ด€๋ จ์ด ์—†์–ด์ ธ ์„œ๋ฒ„๋Š” ์„ธ์…˜๊ณผ ๊ฐ™์€ ๋ณ„๋„์˜ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์•„๋„ ๋˜๊ณ  ๋‹ค์ˆ˜์˜ ์š”์ฒญ ์ฒ˜๋ฆฌ ๋ฐ ์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
    ๊ทธ๋ž˜์„œ ์ ‘์† ์œ ์ง€๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ  ๋ถˆํŠน์ • ๋‹ค์ˆ˜๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ์„œ๋น„์Šค์— ์œ ๋ฆฌํ•˜๋‹ค.

  • ๋‹จ์ 
    ์—ฐ๊ฒฐ์„ ๋Š์–ด๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ์˜ ์ด์ „ ์ƒํƒœ๋ฅผ ์•Œ ์ˆ˜ ์—†์–ด ๋กœ๊ทธ์ธ์„ ํ•ด๋„ ์ •๋ณด์œ ์ง€๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋Ÿฐ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session)์ด ์ƒ๊ฒจ๋‚ฌ๋‹ค.


๊ธ€์ด ๋„ˆ๋ฌด ๊ธธ์–ด์ ธ์„œ ๋‚˜๋ˆ ์„œ ์ž‘์„ฑํ–ˆ๋‹ค.
2ํƒ„์€ ์—ฌ๊ธฐ์—...


์˜ค๋Š˜ ์•Œ๊ฒŒ ๋œ ๊ฒƒ

  • HTTP๋Š” stateless, conntectionless ํ•˜๋‹ค
  • ๊ทธ๋ž˜์„œ ์ค‘๊ฐ„์— ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ์˜ ๊ต์ฒด๊ฐ€ ์‰ฝ๊ฒŒ ๊ฐ€๋Šฅํ•˜๊ณ , ๊ฐ‘์ž๊ธฐ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ํญ์ฃผํ•ด๋„ ์„œ๋ฒ„ ๋Œ€๊ฑฐ ํˆฌ์ž… ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” Cookie ์™€ Session์„ ์‚ฌ์šฉํ•œ๋‹ค

์˜ค๋Š˜์˜ ์†Œ๊ฐ

CS ๊ณต๋ถ€ ์ด๋Œ€๋กœ ๊ณ„์† ๊ณ ๊ณ ~~

์ฐธ๊ณ ์‚ฌ์ดํŠธ
๋ฝ€๋ธ”๋กœ๊ทธ
Inpa dev
HTTP 3.0 ์†Œ๊ฐœ & ํ†ต์‹  ๊ธฐ์ˆ  ์•Œ์•„๋ณด๊ธฐ

profile
ํ•˜๋ฃจํ•˜๋ฃจ๊ฐ€ ์—ฐ์Šต์ด๋‹ˆ ๋‚ด์ผ์€ ๋” ๊ฐ•ํ•ด์งˆ ๊ฒ๋‹ˆ๋‹ค

0๊ฐœ์˜ ๋Œ“๊ธ€