JiwonDev

HTTP #4 ํŠน์ง•๊ณผ ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐ

by JiwonDev

Hypertext Transfer Protocol, ํ•˜์ดํผ ํ…์ŠคํŠธ ๋ฌธ์„œ(HTML)์„ ์ „์†กํ•˜๋Š” ํ†ต์‹  ๊ทœ์•ฝ

์›น ๋ธŒ๋ผ์šฐ์ €๋Š” HTTP ์ŠคํŽ™(ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋งŒ๋“  ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

์ฆ‰, ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ HTTP ์ŠคํŽ™์„ ์ด์šฉํ•˜๋ฉด ๋‹ค๋ฅธ ๊ณณ๊ณผ ํ†ต์‹ ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

# HTTP์˜ ์‹œ๋Œ€

์ธํ„ฐ๋„ท์˜ ๋ฐ˜์‘์†๋„๊ฐ€ ์ •๋ง ์ค‘์š”ํ•œ ์ผ๋ถ€ ์„œ๋ฒ„(ex ์˜จ๋ผ์ธ PC๊ฒŒ์ž„)๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ํ˜„๋Œ€์˜ ๋Œ€๋ถ€๋ถ„์˜ ์„œ๋น„์Šค๋Š” HTTP๋ฅผ ์ด์šฉํ•ด ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ํ•œ๋‹ค. ์›น์— ์‚ฌ์šฉ๋˜๋Š” [HTML, ์ด๋ฏธ์ง€, ์˜์ƒ]์€ ๊ธฐ๋ณธ์ด๊ณ  [Json, XML] ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋„คํŠธ์›Œํฌ์— ์ „์†กํ•˜๊ณ , ์—ฌ๋Ÿฌ ์„œ๋ฒ„๊ฐ„์— ํ†ต์‹ ์„ ํ•  ๋•Œ๋„ HTTP ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

HTTP์˜ ์—ญ์‚ฌ

HTTP 1.1 ๋ถ€ํ„ฐ ์ œ๋Œ€๋กœ ํ‘œ์ค€ํ™” ๋˜๊ธฐ ์‹œ์ž‘ํ•˜์—ฌ ์ธํ„ฐ๋„ท ํ†ต์‹  ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ์ด ๋˜์—ˆ๋‹ค.
์œ ํŠœ๋ธŒ๋‚˜ ํŽ˜์ด์Šค๋ถ ๊ฐ™์ด ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•œ ํ”Œ๋žซํผ๋“ค์€ HTTP3 (h3) ๋ฅผ ์ด๋ฏธ ์ ์šฉํ•œ ๊ณณ๋„ ๋งŽ๋‹ค.

 

HTTP๋Š” ๋น„์—ฐ๊ฒฐ์„ฑ, ๋ฌด์ƒํƒœ์„ฑ, ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค. ์ด๋ฅผ ํ•˜๋‚˜์”ฉ ์•Œ์•„๋ณด์ž.

 


# ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„ ๊ตฌ์กฐ

HTTP๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ตฌ์กฐ๋ฅผ ์ƒ๊ฐํ•˜๊ณ  ์„ค๊ณ„๋˜์—ˆ๋‹ค. ์ฆ‰, ์„œ๋ฒ„, ํด๋ผ ์–‘์ชฝ์ด ๋…๋ฆฝ์ ์œผ๋กœ ์„ค๊ณ„๋œ๋‹ค. ๋‹น์—ฐํ•œ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๊ณผ๊ฑฐ์—๋Š” ์ธํ„ฐ๋„ท์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ธฐ ์ „์—๋Š” ๊ตณ์ด ์„œ๋ฒ„ ๋กœ์ง๊ณผ ํด๋ผ์ด์–ธํŠธ ๋กœ์ง์„ ๊ตฌ๋ถ„์ง€์–ด ๋ถ„๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ๋‹ค.

 


# ์ƒํƒœ์œ ์ง€, ๋ฌด์ƒํƒœ์„ฑ(Stateful, Stateless)

HTTP๋Š” ๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ(Stateless)๋ฅผ ์ง€ํ–ฅํ•œ๋‹ค. ์ฆ‰ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๋ชฐ๋ผ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„ค๊ณ„ํ•œ๋‹ค. 

  • Stateful, ์ƒํƒœ์œ ์ง€
    ์„œ๋ฒ„์—์„œ ์„ธ์…˜์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค. ์ฆ‰ ํด๋ผ์ด์–ธํŠธ์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ๊ณ„์†ํ•ด์„œ ํ†ต์‹ ํ•œ๋‹ค.
  • Stateless, ๋ฌด์ƒํƒœ
    ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์ด์ „ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ฐ๊ฐ์˜ HTTP ์š”์ฒญ์€ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค.

์šฐ๋ฆฌ์˜ ์ผ์ƒ์€ ์ „๋ถ€ Statefulํ•˜๊ฒŒ ์ง„ํ–‰๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‹ ๋ฐœ ๊ฐ€๊ฒŒ์— ๋ฐฉ๋ฌธํ•˜์—ฌ ์›ํ•˜๋Š” ์‹ ๋ฐœ์„ ์‚ฐ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.

๋‚˜ : ๊ฐ™์€ ์‹ ๋ฐœ์„ 2์ผค๋ ˆ ๊ตฌ๋งคํ•˜๊ณ  ์‹ถ์€๋ฐ..
A : ์–ด๋–ค ์‹ ๋ฐœ์„ ์›ํ•˜์„ธ์š”? ๋นจ๊ฐ•๊ณผ ๊ฐˆ์ƒ‰์ด ์žˆ์Šต๋‹ˆ๋‹ค. (์„ธ์…˜์ƒํƒœ : ์‹ ๋ฐœ 2)

๋‚˜: (5๋ถ„ ๋’ค) ๋นจ๊ฐ•์ƒ‰์œผ๋กœ ์‚ฌ์ด์ฆˆ 270์„ ์›ํ•ด์š”
A : ๋นจ๊ฐ„์ƒ‰ ์‹ ๋ฐœ๋Š” 5๋งŒ์›์ž…๋‹ˆ๋‹ค. ๊ฒฐ์ œ๋Š” ์–ด๋–ป๊ฒŒ ํ•˜์‹œ๊ฒ ์–ด์š”? (์„ธ์…˜์ƒํƒœ : ์‹ ๋ฐœ 2, ๋นจ๊ฐ„์ƒ‰, 270)

๋‚˜: 5๋งŒ์›์„ ์‹ ์šฉ์นด๋“œ๋กœ ๊ฒฐ์ œํ• ๊ฒŒ์š”!
A : 10๋งŒ์› ๊ฒฐ์ œ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (์„ธ์…˜์ƒํƒœ : ์‹ ๋ฐœ 2, ๋นจ๊ฐ„์ƒ‰, 270, ์‹ ์šฉ์นด๋“œ)

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ณ ๊ฐ์ž…์žฅ์—์„œ๋Š” ํŽธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด๋ฅผ ์ œ๊ณตํ•˜๋Š” ํŒ๋งค์›(์„œ๋ฒ„)์˜ ์ž…์žฅ์—์„œ๋Š” ๊ณ ๊ฐ๋‹น ๋ณ„๋„์˜ ์„ธ์…˜ ์ƒํƒœ์„ ์œ ์ง€ํ•ด์•ผํ•˜๊ณ  ์š”์ฒญ์˜ ๋ถ„์‚ฐ์ฒ˜๋ฆฌ(์—ฌ๋Ÿฌ ์ ์›์ด ๋„์™€์ฃผ๊ธฐ)๊ฐ€ ์–ด๋ ค์›Œ ์„œ๋ฒ„์˜ ํ™•์žฅ์ด ์–ด๋ ต๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ณ  ์„œ๋ฒ„ ํ™•์žฅ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์›น ์„œ๋น„์Šค๋Š” Stateless ํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.

๋‚˜ : ๊ฐ™์€ ์‹ ๋ฐœ๋ฅผ 2์ผค๋ ˆ ๊ตฌ๋งคํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
A : ์–ด๋–ค ์‹ ๋ฐœ์„ ์›ํ•˜์„ธ์š”? ๋นจ๊ฐ•๊ณผ ๊ฐˆ์ƒ‰์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜ : (5๋ถ„ ๋’ค) ๊ฐ™์€ ์‹ ๋ฐœ์„ 2์ผค๋ ˆ, ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ์‚ฌ์ด์ฆˆ 270์œผ๋กœ ๊ตฌ๋งคํ•˜๊ณ  ์‹ถ์–ด์š”.
B : ๋นจ๊ฐ„์ƒ‰ ์‹ ๋ฐœ์€ 5๋งŒ์›์ž…๋‹ˆ๋‹ค. ๊ฒฐ์ œ๋Š” ์–ด๋–ป๊ฒŒ ํ•˜์‹œ๊ฒ ์–ด์š”? (์„ธ์…˜ ์—†์Œ. ๋‹ค๋ฅธ ์ ์› B๊ฐ€ ๋Œ€์‹ ์ฒ˜๋ฆฌ๊ฐ€๋Šฅ)

๋‚˜: ๊ฐ™์€ ์‹ ๋ฐœ์„ 2์ผค๋ ˆ, ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ์‚ฌ์ด์ฆˆ270์œผ๋กœ ํ•ด์„œ ์‹ ์šฉ์นด๋“œ๋กœ ๊ตฌ๋งคํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
C : 10๋งŒ์› ๊ฒฐ์ œ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (์„ธ์…˜ ์—†์Œ. ๋‹ค๋ฅธ ์ ์› C๊ฐ€ ๋Œ€์‹  ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ)

 

์ด๋ฅผ ์ ์›์ด ์•„๋‹Œ ์„œ๋ฒ„๋กœ ๋ง์„ ๋ฐ”๊พธ๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ง•์„ ์ง€๋‹Œ๋‹ค.

  • stateful ๋ฐฉ์‹์€ ๊ธฐ๋Šฅ ๊ตฌํ˜„์ƒ ํŽธํ•˜์ง€๋งŒ ์ƒํƒœ๋ฅผ ๊ณ„์†ํ•ด์„œ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์บ์‹œ์˜ ํ™œ์šฉ๋„๊ฐ€ ๋–จ์–ด์ง€๊ณ  ์ƒํƒœ ์œ ์ง€๋Š” ์„œ๋ฒ„์— ๋ถ€๋‹ด์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค. (๋˜ํ•œ ์„ธ์…˜๋•Œ๋ฌธ์— ์ƒ๊ธฐ๋Š” ๋ณด์•ˆ ์ทจ์•ฝ์ ๋„ ์กด์žฌํ•œ๋‹ค.)
  • ๋Œ€๋ถ€๋ถ„์˜ ์›น ์„œ๋ฒ„๋Š” ์›น ์„œ๋ฒ„๋Š” ๋„คํŠธ์›Œํฌ ๋น„์šฉ์„ ๊ณ ๋ คํ•œ Stateless๊ฐ€ ์ ํ•ฉํ•˜๋‹ค. ํ•˜์ง€๋งŒ MMOPRG์™€ ๊ฐ™์ด ๋Œ€๊ทœ๋ชจ ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ „ํˆฌํ•  ๋•Œ ๊ณ ์„ฑ๋Šฅ์˜ ์ฒ˜๋ฆฌ๋Šฅ๋ ฅ๊ณผ ์ƒํƒœ ์•ˆ์ •์„ฑ์ด ๋ณด์žฅ๋˜์–ด์•ผ ํ•˜๋Š”๊ฒฝ์šฐ Stateful Server๊ฐ€ ์ ํ•ฉํ•˜๋‹ค.
  • stateless ๋ฐฉ์‹์€ ๋งค ์š”์ฒญ ์‹œ๋งˆ๋‹ค ์ƒํƒœ ์ •๋ณด๋ฅผ ์ €์žฅํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋„คํŠธ์›Œํฌ ๋ฆฌ์†Œ์Šค๋ฅผ ์„œ๋ฒ„ ์ชฝ์—์„œ ์†Œ๋ชจํ•ด์•ผ ํ•˜๊ณ  ์ƒํƒœ ๊ฐ’ ์ €์žฅ ๊ธฐ๋Šฅ์„ ์œ„ํ•œ ์‚ฌ์ „ ์ž‘์—…์ด ํ•„์š”ํ•˜์ง€๋งŒ [์„œ๋ฒ„ ์žฅ์•  ๋Œ€์‘, ์บ์‹ฑ, ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ, ์„œ๋ฒ„ ํ™•์žฅ]์— ์šฉ์ดํ•˜๋‹ค.

 

@ ์ƒํƒœ๊ฐ€ ์–ด์ฉ”์ˆ˜์—†์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๊ณ  Stateless๊ฐ€ ๋งŒ๋Šฅ์ธ๊ฑด ์•„๋‹ˆ๋‹ค.

  • ๋‹จ์ˆœ ์†Œ๊ฐœํ™”๋ฉด์ฒ˜๋Ÿผ ๋ฌด์ƒํƒœ๊ฐ€ ๋”ฑํžˆ ํ•„์š”์—†๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.
  • HTTP ์—์„œ ์—ฌ๋ŸฌํŽ˜์ด์ง€์˜ ๋กœ๊ทธ์ธ ์ƒํƒœ ์œ ์ง€์ฒ˜๋Ÿผ ์„ธ์…˜ ์ƒํƒœ์œ ์ง€๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.
    โžก ์ด ๊ฒฝ์šฐ์—๋Š” ์ฟ ํ‚ค์™€ ์„ธ์…˜, ๊ทธ๋ฆฌ๊ณ  ํ† ํฐ์„ ์ด์šฉํ•˜์—ฌ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.
  • ๋‹ค๋งŒ ์ด๋Ÿฐ ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋Œ€๋ถ€๋ถ„ ๋ฆฌ์†Œ์Šค ์š”์ฒญ์€ ์ตœ๋Œ€ํ•œ Stateless๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ๊ฒŒ ๋งž๋‹ค.

 


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

HTTP๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋ธ์ด๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด, ํ•ด๋‹น ์š”์ฒญ์„ ๋น ๋ฅด๊ฒŒ ์‘๋‹ตํ•˜๊ณ  ๋ฐ”๋กœ ์„œ๋ฒ„์—์„œ๋Š” ์—ฐ๊ฒฐ์„ ๋Š์–ด๋ฒ„๋ฆฐ๋‹ค.
  • HTTP๋Š” ์ธํ„ฐ๋„ท ์ƒ์—์„œ ๋ถˆํŠน์ • ๋‹ค์ˆ˜์˜ ํ†ต์‹  ํ™˜๊ฒฝ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ๋‹ค.
    โžก ์• ์ดˆ์— ์›น ์„œ๋น„์Šค์—์„œ๋Š” ํ•œ ์‚ฌ๋žŒ์ด ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๋Š” ์š”์ฒญ์ด ๋งŽ์ง€๊ฐ€ ์•Š๋‹ค. (ex. ๊ฒ€์ƒ‰๋ฒ„ํŠผ์„ ์ดˆ๋‹น 10๋ฒˆ์”ฉ ์š”์ฒญ)

 

ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ์—ฐ๊ฒฐ์„ ๋น ๋ฅด๊ฒŒ ๋Š์–ด๋ฒ„๋ฆฌ๋ฉด, ์š”์ฒญ์ด ๋“ค์–ด ์˜ฌ ๋•Œ๋งˆ๋‹ค TCP/IP์—ฐ๊ฒฐ์„ ์ƒˆ๋กœ ๋งบ์–ด ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

  • HTTP ์ง€์† ์—ฐ๊ฒฐ(Persistent Connections)๋ผ๋Š” ๊ฐœ๋…์„ ๋„์ž…ํ–ˆ๋‹ค.
    โžก ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‚ฌ์ดํŠธ๋ฅผ ์š”์ฒญํ•˜๋ฉด ์ •ํ•ด์ง„ ์‹œ๊ฐ„๋™์•ˆ (HTML, JS, CSS๋“ฑ) ์—ฐ๊ฒฐ์„ ๋Š์ง€ ์•Š๊ณ  ์‘๋‹ต์„ ๋ฐ›๋Š”๋‹ค.
  • ์ด ๋ถ€๋ถ„์€ HTTP2, HTTP3๋กœ ๋„˜์–ด์˜ค๋ฉฐ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ด ์„ฑ๋Šฅ์„ ์ตœ์ ํ™” ์‹œํ‚ค๊ณ  ์žˆ๋‹ค. 

๋ฌผ๋ก  ๋น„์—ฐ๊ฒฐ์„ฑ๋„ ์ž ๊น๋™์•ˆ ์—ฐ๊ฒฐ์„ ํ•ด์•ผ ํ†ต์‹ ์„ ํ•œ๋‹ค. [ํ•œ ์š”์ฒญ์ด ๋๋‚˜๋ฉด ๋ฐ”๋กœ ์—ฐ๊ฒฐ์„ ๋Š์–ด๋ฒ„๋ฆฐ๋‹ค]๋Š” ์˜๋ฏธ๋กœ ๋ฐ›์•„๋“ค์ด์ž.

 


# HTTP ๋ฉ”์‹œ์ง€

HTTP์—์„œ๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ–ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“ค์–ด ์ „์†กํ• ๊นŒ?

HTTP ํ—ค๋”์™€ ๋ฐ”๋””๋Š” ๊ณต๋ฐฑ ๋ผ์ธ์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. (๊ทธ๋ž˜์„œ ๊ณต๋ฐฑ๋ผ์ธ์ด ํ•„์ˆ˜)


# 1. Start-line (ํŒŒ๋ผ๋ฉ”ํƒ€, ์ƒํƒœ์ฝ”๋“œ)

Requset ๋ฉ”์‹œ์ง€ : HTTP ๋ฉ”์„œ๋“œ, host(์˜ˆ: naver.com)์— ๋ณด๋‚ผ ๊ฒฝ๋กœ์™€ ์ฟผ๋ฆฌ๋ฌธ, HTTP ๋ฒ„์ „๋“ฑ์„ ํ‘œ๊ธฐํ•œ๋‹ค.

GET /search?q=hello&hl=ko HTTP/1.1

 

Respone ๋ฉ”์‹œ์ง€ : HTTP ๋ฒ„์ „, HTTP ์ƒํƒœ์ฝ”๋“œ๋“ฑ์„ ํ‘œ๊ธฐํ•œ๋‹ค.

HTTP/1.1 200 OK

 


# 2. Header

ํ—ค๋”์—๋Š” [ key: value ]๋กœ HTTP ์ „์†ก์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋ถ€๊ฐ€์ •๋ณด๋ฅผ ์ „์†กํ•œ๋‹ค.

  • ํ•œ key์— ์—ฌ๋Ÿฌ value๋ฅผ ๋„ฃ์–ด ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ  ์ž˜ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ์ œ๊ณต ํ—ค๋”์—๋Š” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜๊ฐ€ ์žˆ์œผ๋ฉฐ, ํ•„์š”ํ•˜๋‹ค๋ฉด ์ž„์˜์˜ ํ—ค๋”๊ฐ’์„ ์ถ”๊ฐ€ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
    โžก Body ํƒ€์ž…, ๋ฐ˜ํ™˜๋ฐ›์„ ํƒ€์ž…(Accpet), ๋ฉ”์‹œ์ง€ ํฌ๊ธฐ, ์••์ถ•์—ฌ๋ถ€, ์บ์‹œ ์ •๋ณด, ์ฟ ํ‚ค ๋“ฑ..

Requset ๋ฉ”์‹œ์ง€

GET /search?q=hello&hl=ko HTTP/1.1
Host: www.google.com

<ํ•œ์ค„ ๋„์šฐ๊ณ  Body ์‹œ์ž‘, Body๊ฐ€ ์—†์–ด๋„ ํ•œ์ค„์€ ๋ฐ˜๋“œ์‹œ ๋„์›Œ์•ผํ•จ.>

 

Respone ๋ฉ”์‹œ์ง€

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length:3423

<ํ•œ์ค„ ๋„์šฐ๊ณ  Body ์‹œ์ž‘>

 

 


# 3. Body

ํ—ค๋” ์ž…๋ ฅ์ด ๋๋‚˜๋ฉด, ํ•œ์ค„ ๊ณต๋ฐฑ์„ ๋„์šฐ๊ณ  ๋ฐ”๋กœ Body์— ๋„ฃ์„ ๋ฐ์ดํ„ฐ๋ฅผ ์ ๋Š”๋‹ค.

  • GET ์ฒ˜๋Ÿผ ๋‹จ์ˆœ ๋ฆฌ์†Œ์Šค ์š”์ฒญ์—๋Š” Body๋ฅผ ์ ์ง€ ์•Š๋Š”๋‹ค. ์ตœ์‹  HTTP ์ŠคํŽ™์—๋Š” ์ ์„ ์ˆ˜ ์žˆ๊ธดํ•˜๋‚˜, ์ž˜ ์‚ฌ์šฉ์•ˆํ•œ๋‹ค.
  • ๋งŒ์•ฝ Body๊ฐ€ ์—†๋‹ค๋ฉด, ํ—ค๋” ๋งˆ์ง€๋ง‰์— ๊ณต๋ฐฑ ํ•œ์ค„๋งŒ ๋„ฃ๊ณ  ๋น„์›Œ์„œ ๋ณด๋‚ธ๋‹ค.
  • Body๋Š” Text, ์ด์ง„๋ฐ์ดํ„ฐ, HTML, JSON๋“ฑ ๊ฑฐ์˜ ๋ชจ๋“  ํƒ€์ž…์„ ์ง€์›ํ•˜๋ฉฐ, ํ—ค๋”์— Content-type์„ ๋ช…์‹œํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length:3423

<html>
    <body>
    ...์‹ค์ œ ์ „์†กํ•  ๋ฐ์ดํ„ฐ, ๋ฐ”์ดํŠธ๋กœ ํ‘œํ˜„๊ฐ€๋Šฅํ•œ ๋ชจ๋“ ๋ฐ์ดํ„ฐ
    ์••์ถ•ํ•ด์„œ ์ „์†กํ•˜๊ธฐ๋„ ํ•œ๋‹ค.
    </body>
</html/>

 

 

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

JiwonDev

JiwonDev

ํ™œ๋™ํ•˜๊ธฐ