02. HTTP ๊ธฐ๋ณธ

Hyper Text Transfer Protocol : ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ํ†ต์‹ ํ•  ๋•Œ ์“ฐ์ด๋Š” ํ”„๋กœํ† ์ฝœ๋กœ, ๊ฑฐ์˜ ๋ชจ๋“  ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค. (ํ…์ŠคํŠธ ๋ฟ๋งŒ์ด ์•„๋‹Œ ์ด๋ฏธ์ง€, ์Œ์„ฑ, ์˜์ƒ, ํŒŒ์ผ, JSON, XML ๋ฐ์ดํ„ฐ๊นŒ์ง€ ์ „์†ก ๊ฐ€๋Šฅ) ์„œ๋ฒ„ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ๋„ ๋Œ€๋ถ€๋ถ„ HTTP ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿ“ง ย  01. ํŠน์ง•

  • ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„ ๊ตฌ์กฐ
  • ๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ(stateless), ๋น„์—ฐ๊ฒฐ์„ฑ
  • HTTP ๋ฉ”์‹œ์ง€

๐Ÿ“ง ย  02. ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„ ๊ตฌ์กฐ

  • ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์— ์š”์ฒญ(request)์„ ๋ณด๋‚ด๊ณ , ์„œ๋ฒ„๋Š” ๊ทธ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‘๋‹ต(response)ํ•œ๋‹ค.

๐Ÿ“ง ย  03. ๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ (stateless)

  • ํ†ต์‹ ํ•  ๋•Œ ์ƒํƒœ๊ฐ€ ์œ ์ง€๋˜์ง€ ์•Š๋Š”๋‹ค. (์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ •๋ณด๋ฅผ ๋ณด์กดํ•˜์ง€ ์•Š๋Š”๋‹ค.)
  • ์žฅ์  : ์„œ๋ฒ„ ํ™•์žฅ์„ฑ์ด ๋†’๋‹ค.
  • ๋‹จ์  : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ด์•ผ ํ•œ๋‹ค.
๐Ÿค” ๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ์ด ๋ญ์ง€? ์˜ˆ์‹œ๋กœ ์„ค๋ช… !

๊ณ ๊ฐ : ๋…ธํŠธ๋ถ ์–ผ๋งˆ์—์š”?
์ ์›A : 100๋งŒ์› ์ž…๋‹ˆ๋‹ค.

๊ณ ๊ฐ : ๋…ธํŠธ๋ถ 2๊ฐœ ์‚ด๊ฒŒ์š”.
์ ์›B : 200๋งŒ์› ์ž…๋‹ˆ๋‹ค. ๊ฒฐ์ œ๋Š” ์–ด๋–ป๊ฒŒ ํ•˜์‹œ๊ฒ ์–ด์š”? ์‹ ์šฉ์นด๋“œ, ํ˜„๊ธˆ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ณ ๊ฐ : ๋…ธํŠธ๋ถ 2๊ฐœ ์‹ ์šฉ์นด๋“œ๋กœ ๊ฒฐ์ œํ• ๊ฒŒ์š”.
์ ์›C : ๊ฒฐ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

๐Ÿ’ฌ ๋ฌผ๋ก  ๋ชจ๋“  ์„œ๋น„์Šค๋ฅผ ๋ฌด์ƒํƒœ๋กœ ์šด์˜ํ•  ์ˆ˜๋Š” ์—†๋‹ค. (๋กœ๊ทธ์ธ ํ•˜๋Š” ๊ฒฝ์šฐ ๋กœ๊ทธ์ธํ•œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—โ€ฆ) ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ๋ธŒ๋ผ์šฐ์ € ์ฟ ํ‚ค, ์„œ๋ฒ„ ์„ธ์…˜ ๋“ฑ์„ ์‚ฌ์šฉํ•ด์„œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.

๐Ÿ“ง ย  04. ๋น„์—ฐ๊ฒฐ์„ฑ

  • HTTP๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์™œ๋ƒํ•˜๋ฉด, 1์‹œ๊ฐ„๋™์•ˆ ์ˆ˜์ฒœ๋ช…์ด ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค ํ•ด๋„ ์‹ค์ œ ์„œ๋ฒ„์—์„œ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๋Š” ์š”์ฒญ์€ ์ˆ˜์‹ญ๊ฐœ ์ดํ•˜๋กœ ๋งค์šฐ ์ ๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒƒ์ด๋‹ค. (์˜ˆ์‹œ : ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์—ฐ์†ํ•ด์„œ ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์ง€ ์•Š์Œ)

  • ๊ทธ๋Ÿฌ๋‚˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ์„ ๋‹ค์‹œ ๋ˆ„๋ฅผ ๊ฒฝ์šฐ, TCP/IP ์—ฐ๊ฒฐ์„ ์ƒˆ๋กœ ๋งบ์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰ ์‹œ๊ฐ„์ด ์ถ”๊ฐ€๋œ๋‹ค.

  • ์ด๋Ÿฌํ•œ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ง€๊ธˆ์€ ์ง€์† ์—ฐ๊ฒฐ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์žˆ๋‹ค.