๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
CS/๋„คํŠธ์›Œํฌ

5. HTTP

by wooksss 2025. 6. 20.

๐ŸŸฉ HTTP

  • ์ „์†ก ๊ณ„์ธต ์œ„์— ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์œผ๋กœ์„œ ์›น ์„œ๋น„์Šค ํ†ต์‹ ์— ์‚ฌ์šฉ๋จ
  1. HTTP/1.0
    • ํ•œ ์—ฐ๊ฒฐ ๋‹น ํ•˜๋‚˜์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋จ
    • ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ๋งˆ๋‹ค TCP์˜ 3-way-handshake๋ฅผ ๊ณ„์†ํ•ด์„œ ์—ด์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— RTT๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ๋‹จ์ ์ด ์žˆ์Œ
    • RTT๋ž€ ํŒจํ‚ท์ด ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ•˜๊ณ  ๋‚˜์„œ ๋‹ค์‹œ ์ถœ๋ฐœ์ง€๋กœ ๋Œ์•„์˜ค๊ธฐ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด๋ฉฐ ํŒจํ‚ท ์™•๋ณต ์‹œ๊ฐ„
    • RTT ์ฆ๊ฐ€๋ฅผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
      • ์ด๋ฏธ์ง€ ์Šคํ”Œ๋ฆฌํŒ… : ๋งŽ์€ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋ฐ›๊ฒŒ ๋˜๋ฉด ๊ณผ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ์ง€๊ฐ€ ํ•ฉ์ณ ์žˆ๋Š” ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด ๋ฐ›๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ backgroud-image์˜ position์„ ์ด์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€ ํ‘œ๊ธฐ
      • ์ฝ”๋“œ ์••์ถ• : ์ฝ”๋“œ๋ฅผ ์••์ถ•ํ•ด์„œ ๊ฐœํ–‰ ๋ฌธ์ž, ๋นˆ์นธ์„ ์ œ๊ฑฐํ•˜์—ฌ ์ฝ”๋“œ์˜ ํฌ๊ธฐ๋ฅผ ์ตœ์†Œํ™” ํ•˜๋Š” ๋ฐฉ๋ฒ•
      • ์ด๋ฏธ์ง€ Base64 ์ธ์ฝ”๋”ฉ : ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ 64์ง„๋ฒ•์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด๋กœ ์ธ์ฝ”๋”ฉํ•˜๋Š” ๋ฐฉ๋ฒ•. ์„œ๋ฒ„์˜ ์—ฐ๊ฒฐ์„ ์—ด๊ณ  ์„œ๋ฒ„์— HTTP ์š”์ฒญ์„ ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ ํฌ๊ธฐ๊ฐ€ ์ปค์ง
  2. HTTP/1.1
    • ๋งค๋ฒˆ TCP ์—ฐ๊ฒฐ์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ TCP๋ฅผ ์ดˆ๊ธฐํ™” ํ•œ ์ดํ›„ keep-alive๋ผ๋Š” ์˜ต์…˜์œผ๋กœ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํŒŒ์ผ์„ ์†ก์ˆ˜์‹ 
    • ํ•œ ๋ฒˆ 3-way-handshake๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ทธ ๋‹ค์Œ๋ถ€ํ„ฐ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ
    • ๋ฌธ์„œ ์•ˆ์— ํฌํ•จ๋œ ๋‹ค์ˆ˜์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด ์š”์ฒญํ•  ๋ฆฌ์†Œ์Šค ๊ฐœ์ˆ˜์— ๋น„๋ก€ํ•˜์—ฌ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง
    • HOL Blocking : ๋„คํŠธ์›Œํฌ์—์„œ ๊ฐ™์€ ํ์— ์žˆ๋Š” ํŒจํ‚ท์ด ๊ทธ ์ฒซ ๋ฒˆ์งธ ํŒจํ‚ท์— ์˜ํ•ด ์ง€์—ฐ๋  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์„ฑ๋Šฅ ์ €ํ•˜ ํ˜„์ƒ
    • ๋ฌด๊ฑฐ์šด ํ—ค๋” ๊ตฌ์กฐ : HTTP/1.1์˜ ํ—ค๋”์—๋Š” ์ฟ ํ‚ค ๋“ฑ ๋งŽ์€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด ์žˆ๊ณ  ์••์ถ•์ด ๋˜์ง€ ์•Š์•„ ๋ฌด๊ฑฐ์›€
  3. HTTP/2
    • SPDY ํ”„๋กœํ† ์ฝœ์—์„œ ํŒŒ์ƒ๋จ
    • HTTP/1.x ๋ณด๋‹ค ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ค„์ด๊ณ  ์‘๋‹ต ์‹œ๊ฐ„์„ ๋” ๋น ๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Œ
    • ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ : ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์†ก์ˆ˜์‹ ํ•œ๋‹ค๋Š” ๊ฒƒ. ํŠน์ • ์ŠคํŠธ๋ฆผ์˜ ํŒจํ‚ท์ด ์†์‹ค๋˜์–ด๋„ ํ•ด๋‹น ์ŠคํŠธ๋ฆผ์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  ๋‚˜๋จธ์ง€ ์ŠคํŠธ๋ฆผ์„ ๋ฉ€์ฉกํ•˜๊ฒŒ ๋™์ž‘
    • ํ—ค๋” ์••์ถ• : HTTP/1.x์˜ ํ—ค๋” ํฌ๊ธฐ ๋ฌธ์ œ๋ฅผ ํ—ˆํ”„๋งŒ ์ฝ”๋”ฉ ์••์ถ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” HPACK ์••์ถ• ํ˜•์‹์œผ๋กœ ํ•ด๊ฒฐ
    • ์„œ๋ฒ„ ํ‘ธ์‹œ : HTTP/2์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์—†์ด ์„œ๋ฒ„๊ฐ€ ๋ฐ”๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ํ‘ธ์‹œํ•  ์ˆ˜ ์žˆ์Œ
  4. HTTPS
    • HTTP/2๋Š” HTTPS ์œ„์—์„œ ๋™์ž‘ํ•จ.
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต๊ณผ ์ „์†ก ๊ณ„์ธต ์‚ฌ์ด์— ์‹ ๋ขฐ ๊ณ„์ธต์ธ SSL/TLS ๊ณ„์ธต์„ ๋„ฃ์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” HTTP ์š”์ฒญ์„ ๋งํ•จ.
    • ์ด๋ฅผ ํ†ตํ•ด ํ†ต์‹ ์„ ์•”ํ˜ธํ™”ํ•จ
    • SSL/TLS
      • SSL์€ 1.0๋ถ€ํ„ฐ TLS 1.3๊นŒ์ง€ ๋ฒ„์ „์ด ์˜ฌ๋ผ๊ฐ€๋ฉฐ TLS๋กœ ๋ช…์นญ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์œผ๋‚˜ SSL/TLS๋ผ๊ณ  ๋ถ€๋ฆ„
      • ์ „์†ก ๊ณ„์ธต์—์„œ ๋ณด์•ˆ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœํ† ์ฝœ๋กœ ์ œ 3์ž๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋„์ฒญํ•˜๊ฑฐ๋‚˜ ๋ณ€์กฐํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•จ
      • ๊ณต๊ฒฉ์ž๊ฐ€ ์„œ๋ฒ„์ธ ์ฒ™ ํ•˜๋ฉฐ ์ •๋ณด๋ฅผ ๊ฐ€๋กœ์ฑ„๋Š” ๋„คํŠธ์›Œํฌ ์ƒ์˜ ‘์ธํ„ฐ์…‰ํ„ฐ’๋ฅผ ๋ฐฉ์ง€ ๊ฐ€๋Šฅ
      • ๋ณด์•ˆ ์„ธ์…˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋ฉฐ ๋ณด์•ˆ ์„ธ์…˜์ด ๋งŒ๋“ค์–ด์งˆ ๋•Œ ์ธ์ฆ ๋งค์ปค๋‹ˆ์ฆ˜, ํ‚ค ๊ตํ™˜ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜, ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‚ฌ์šฉ๋จ
      • ๋ณด์•ˆ ์„ธ์…˜ : ๋ณด์•ˆ์ด ์‹œ์ž‘๋˜๊ณ  ๋๋‚˜๋Š” ๋™์•ˆ ์œ ์ง€๋˜๋Š” ์„ธ์…˜์„ ๋งํ•˜๋ฉฐ SSL/TLS๋Š” handshake๋ฅผ ํ†ตํ•ด ๋ณด์•ˆ ์„ธ์…˜์„ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒํƒœ ์ •๋ณด ๋“ฑ์„ ๊ณต์œ ํ•จ
    • HTTPS ๊ตฌ์ถ• ๋ฐฉ๋ฒ•
      • ์ง์ ‘ CA์—์„œ ๊ตฌ๋งคํ•œ ์ธ์ฆํ‚ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•
      • ์„œ๋ฒ„ ์•ž๋‹จ์˜ HTTPS๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ๋ฐฐ์น˜
      • ์„œ๋ฒ„ ์•ž๋‹จ์— HTTPS๋ฅผ ์ œ๊ณตํ•˜๋Š” CDN์„ ๋ฐฐ์น˜
  5. HTTP/3
    • World Wide Web์—์„œ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” HTTP์˜ ์„ธ ๋ฒˆ์งธ ๋ฒ„์ „
    • TCP ์œ„์—์„œ ๋Œ์•„๊ฐ€๋Š” HTTP/2์™€ ๋‹ฌ๋ฆฌ QUIC ๊ณ„์ธต ์œ„์—์„œ UDP ๊ธฐ๋ฐ˜์œผ๋กœ ๋Œ์•„๊ฐ
    • ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์ดˆ๊ธฐ ์—ฐ๊ฒฐ ์„ค์ • ์‹œ ์ง€์—ฐ ์‹œ๊ฐ„ ๊ฐ์†Œ๋ผ๋Š” ์žฅ์ ์ด ์žˆ์Œ
    • TCP๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋Œ€๋ฌธ์— ํ†ต์‹ ์„ ์‹œ์ž‘ํ•  ๋•Œ ๋ฒˆ๊ฑฐ๋กœ์šด 3-way-handshake๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š์•„๋„ ๋จ
    • QUIC๋Š” ์ˆœ๋ฐฉํ–ฅ ์˜ค๋ฅ˜ ์ˆ˜์ • ๋งค์ปค๋‹ˆ์ฆ˜์ด ์ ์šฉ๋˜์–ด ์ˆ˜์‹ ์ธก์—์„œ ์—๋Ÿฌ๋ฅผ ๊ฒ€์ถœํ•˜๊ณ  ์ˆ˜์ •ํ•˜์—ฌ ์—ด์•…ํ•œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ๋„ ๋‚ฎ์€ ํŒจํ‚ท ์†์‹ค๋ฅ ์„ ์ž๋ž‘ํ•จ

'CS > ๋„คํŠธ์›Œํฌ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

4. IP์ฃผ์†Œ  (3) 2025.06.20
3. ๋„คํŠธ์›Œํฌ ๊ธฐ๊ธฐ  (0) 2025.06.20
2. TCP/IP 4๊ณ„์ธต ๋ชจ๋ธ  (0) 2025.06.20
1. ๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ  (0) 2025.06.20