J1Yun
ZU-TECHLOG
J1Yun
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ“‘ Category (135)
    • Algorithm (61)
      • ๐Ÿ“š Concept (6)
      • ๐Ÿ“˜ Baekjoon Judge (53)
      • ๐Ÿ“— Programmers (2)
    • Computer Science (42)
      • ๐Ÿ”’ Operating System (14)
      • ๐Ÿ“ก Network (15)
      • ๐Ÿ’พ Database (8)
      • ๐Ÿงฉ Design Pattern (4)
      • ๐Ÿ”‘ Security (1)
    • Activities (12)
      • ๐Ÿฆ ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ (6)
      • ๐Ÿ’ป SW๋งˆ์—์ŠคํŠธ๋กœ 13๊ธฐ (6)
    • Infra (1)
      • โ˜๏ธ AWS (1)
    • Languages (1)
      • ๐Ÿ’™ Python (1)
    • Backend (7)
      • ๐Ÿ”ต Django (4)
      • ๐ŸŸข Node.js (3)
    • Ect. (8)
      • ๐Ÿ’ฌ Talk (0)
      • ๐Ÿ—‚๏ธ ๊ฐœ๋ฐœ์ง๊ตฐ ์ทจ์—… ์ค€๋น„์ž๋ฃŒ (8)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

250x250
hELLO ยท Designed By ์ •์ƒ์šฐ.
J1Yun

ZU-TECHLOG

[๋„คํŠธ์›Œํฌ] HTTP/1.X, HTTP2, HTTP3 ๋ฒ„์ „ ์ฐจ์ด, ํŠน์ง•
Computer Science/๐Ÿ“ก Network

[๋„คํŠธ์›Œํฌ] HTTP/1.X, HTTP2, HTTP3 ๋ฒ„์ „ ์ฐจ์ด, ํŠน์ง•

728x90

โ€ป HTTP ๊ฐœ์š”: https://zu-techlog.tistory.com/60

 

[๋„คํŠธ์›Œํฌ] HTTP์™€ HTTPS ํ”„๋กœํ† ์ฝœ

HTTP (Hyper Text Transfer Protocol) ์›น ์ƒ์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ์š”์ฒญ(request)๊ณผ ์‘๋‹ต(response)์œผ๋กœ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ TCP์™€ UDP ์‚ฌ์šฉ, 80๋ฒˆ ํฌํŠธ ์‚ฌ์šฉ ๋น„์—ฐ๊ฒฐ(Connectionless) ํด๋ผ์ด์–ธํŠธ๊ฐ€

zu-techlog.tistory.com

 

HTTP ๋ฒ„์ „ - HTTP/1.X, HTTP2, HTTP3

 

HTTP/1.0

  • ํ•œ ์—ฐ๊ฒฐ๋‹น ํ•˜๋‚˜์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„
  • ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ ์‹œ ๋งค๋ฒˆ ์—ฐ๊ฒฐ๊ณผ ํ•ด์ œ์˜ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์•ผ ํ–ˆ๊ธฐ์— RTT๊ฐ€ ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค๋Š” ๋ฌธ์ œ
    • RTT: ํŒจํ‚ท์ด ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ•˜๊ณ  ๋‚˜์„œ ๋‹ค์‹œ ์ถœ๋ฐœ์ง€๋กœ ๋Œ์•„์˜ค๊ธฐ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ (ํŒจํ‚ท ์™•๋ณต ์‹œ๊ฐ„)

 

HTTP/1.1

  • Persistent Connection ์ถ”๊ฐ€
    • HTTP/1.0์„ ๋ณด์™„ํ•˜์—ฌ ๋งค๋ฒˆ TCP ์—ฐ๊ฒฐ์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ•œ ๋ฒˆ TCP ์ดˆ๊ธฐํ™”๋ฅผ ํ•œ ์ดํ›„์— keep-alive๋ผ๋Š” ์˜ต์…˜์œผ๋กœ ์ผ์ • ์‹œ๊ฐ„๋™์•ˆ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ์œ ์ง€

Persistent Connection ๋„์‹ํ™”

 

  • Pipelining ์ถ”๊ฐ€
    • TCP์˜ ํŠน์„ฑ์ƒ ์š”์ฒญ ํ›„ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ ค์•ผํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๋ณด์™„
    • ํด๋ผ์ด์–ธํŠธ๋Š” ์•ž ์š”์ฒญ์˜ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์ˆœ์ฐจ์ ์œผ๋กœ ์š”์ฒญ ์ „์†ก, ์„œ๋ฒ„๋Š” ์š”์ฒญ์ด ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ์‘๋‹ต

Pipelining ๋„์‹ํ™”

 

  • HOL Blocking (Head Of Line Blocking) ๋ฌธ์ œ
    • ์•ž์˜ ์š”์ฒญ(ํŒจํ‚ท)์— ๋Œ€ํ•œ ์‘๋‹ต์ด ๋Šฆ์–ด์ง€๋ฉด ๋’ค์˜ ๋ชจ๋“  ์š”์ฒญ๋“ค์€ ๋ชจ๋‘ blocking๋˜์–ด ์‘๋‹ต์ด ์ง€์—ฐ๋จ
  • ์—ฐ์†๋œ ์š”์ฒญ ๊ฐ„์— ํ—ค๋”์˜ ๋งŽ์€ ์ค‘๋ณต์ด ์ƒ๊ธด๋‹ค๋Š” ๋ฌธ์ œ

 

HTTP/2.0

  • HTTP/1.x์˜ ์‹œ๊ฐ„ ์ง€์—ฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ
  • Multiplexed streams (๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ)
    • HTTP/1.1์˜ Pipelining์€ ํ•œ๋ฒˆ์˜ ์—ฐ๊ฒฐ์—์„œ ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜๋Š” ์žˆ์—ˆ์ง€๋งŒ ๋™์‹œ์— ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์ง„ ๋ชปํ–ˆ์Œ
    • ํ•˜๋‚˜์˜ ์ปค๋„ฅ์…˜ ๋‚ด์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ŠคํŠธ๋ฆผ(stream, ์–‘๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„)์„ ์‚ฌ์šฉํ•˜์—ฌ ์†ก์ˆ˜์‹ 
    • ๋ฉ”์‹œ์ง€๊ฐ€ ์ด์ง„ํ™”๋œ ํ…์ŠคํŠธ์ธ ํ”„๋ ˆ์ž„(frame)์œผ๋กœ ๋‚˜๋‰˜์–ด ์š”์ฒญ๋งˆ๋‹ค ๊ตฌ๋ถ„๋˜๋Š” ์ŠคํŠธ๋ฆผ(stream)์„ ํ†ตํ•ด ์ „๋‹ฌ
    • ํ”„๋ ˆ์ž„(frame)์ด ๊ฐ ์š”์ฒญ์˜ ์ŠคํŠธ๋ฆผ(stream)์„ ํ†ตํ•ด ์ „๋‹ฌ๋˜๋ฉฐ, ํ•˜๋‚˜์˜ ์ปค๋„ฅ์…˜ ์•ˆ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ŠคํŠธ๋ฆผ(stream)์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ๋˜์–ด ๋‹ค์ค‘ํ™”(multiplexing)๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง
    • ์ŠคํŠธ๋ฆผ(stream)์„ ํ†ตํ•ด ๊ฐ ์š”์ฒญ์˜ ์‘๋‹ต ์ˆœ์„œ๊ฐ€ ์˜๋ฏธ๊ฐ€ ์—†์–ด์ ธ HTTP/1.x์˜ HOL Blocking ๋ฌธ์ œ ํ•ด๊ฒฐ

Multiplexing ๋„์‹ํ™”

 

  • Header Compression (ํ—ค๋” ์••์ถ•)
    • ์š”์ฒญ๊ณผ ์‘๋‹ต ํ—ค๋”์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•ํ•ด์„œ ๊ธฐ์กด์˜ ์—ฐ์†๋œ ์š”์ฒญ์—์„œ์˜ ์ค‘๋ณต ํ—ค๋”๋กœ ์ธํ•œ ์˜ค๋ฒ„ํ—ค๋“œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ
    • ์ด์ „์— ํ‘œ์‹œ๋œ ํ—ค๋”๋ฅผ ์ œ์™ธํ•œ ํ•„๋“œ๋ฅผ ํ—ˆํ”„๋งŒ ์ฝ”๋”ฉ์„ ํ™œ์šฉํ•ด์„œ ์••์ถ•
  • Server Push (์„œ๋ฒ„ ํ‘ธ์‹œ)
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญํ•˜์ง€ ์•Š์•„๋„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์„œ๋ฒ„๊ฐ€ ์ถ”๊ฐ€์ ์œผ๋กœ pushํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ
  • ๊ฐ ์š”์ฒญ๋งˆ๋‹ค stream์œผ๋กœ ๊ตฌ๋ถ„ํ•ด ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•จ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  TCP ๊ณ ์œ ์˜ HOL Blocking์ด ์—ฌ์ „ํžˆ ์กด์žฌํ•˜๋Š” ๋ฌธ์ œ
    • ์„œ๋กœ ๋‹ค๋ฅธ stream์ด ์ „์†ก๋˜๊ณ  ์žˆ์„ ๋•Œ, ํ•˜๋‚˜์˜ Stream์—์„œ ์œ ์‹ค์ด ๋ฐœ์ƒ๋˜๊ฑฐ๋‚˜ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๊ฒฐ๊ตญ ๋‹ค๋ฅธ Stream๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋  ๋•Œ ๊นŒ์ง€ ์ง€์—ฐ๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒ

 

HTTP/3.0

  • TCP ์œ„์—์„œ ๋Œ์•„๊ฐ€๋Š” HTTP/2.0์™€๋Š” ๋‹ฌ๋ฆฌ QUIC๋ผ๋Š” ๊ณ„์ธต ์œ„์—์„œ ๋Œ์•„๊ฐ€๋ฉฐ TCP๊ธฐ๋ฐ˜์ด ์•„๋‹Œ UDP ๊ธฐ๋ฐ˜
  • HTTP/2.0์˜ ์žฅ์ (๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ ๋“ฑ)์˜ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
  • ์ดˆ๊ธฐ ์—ฐ๊ฒฐ ์„ค์ • ์‹œ ์ง€์—ฐ ์‹œ๊ฐ„ ๊ฐ์†Œ๋ผ๋Š” ๋Œ€ํ‘œ์  ํŠน์ง• (UTP๊ธฐ๋ฐ˜)
    • ์ดˆ๊ธฐ ์—ฐ๊ฒฐ(ํ†ต์‹  ์‹œ์ž‘) ์‹œ 3-way handshaking ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€ ์•Š์•„ 1-RTT๋งŒ ์†Œ์š”
    • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฑฐ ํ•œ๋ฒˆ ์‹ ํ˜ธ๋ฅผ ์ฃผ๊ณ ๋ฐ›์€ ํ›„ ๋ฐ”๋กœ ํ†ต์‹  ์‹œ์ž‘
  • TCP์˜ stream์€ ํ•˜๋‚˜์˜ chain์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ ๊ฐ stream๋‹น ๋…๋ฆฝ๋œ stream chain์„ ๊ตฌ์„ฑํ•˜์—ฌ TCP์˜ HOL Blocking์„ ํ•ด๊ฒฐ

 

728x90
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Computer Science > ๐Ÿ“ก Network' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋„คํŠธ์›Œํฌ] ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ(+JWT), ์„œ๋ฒ„(์„ธ์…˜)๊ธฐ๋ฐ˜ ์ธ์ฆ  (0) 2023.02.10
[๋„คํŠธ์›Œํฌ] SSL/TLS ํ•ธ๋“œ์‰์ดํฌ - TLS 1.3  (0) 2023.02.09
[๋„คํŠธ์›Œํฌ] TCP/IP ํ๋ฆ„์ œ์–ด์™€ ํ˜ผ์žก์ œ์–ด  (0) 2023.02.06
[๋„คํŠธ์›Œํฌ] HTTP ์ƒํƒœ/์‘๋‹ต ์ฝ”๋“œ ์ •๋ฆฌ  (0) 2023.02.02
[๋„คํŠธ์›Œํฌ] REST, REST API, RESTful ์•Œ์•„๋ณด๊ธฐ  (0) 2023.02.01
    'Computer Science/๐Ÿ“ก Network' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€์ด๋‹ค
    • [๋„คํŠธ์›Œํฌ] ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ(+JWT), ์„œ๋ฒ„(์„ธ์…˜)๊ธฐ๋ฐ˜ ์ธ์ฆ
    • [๋„คํŠธ์›Œํฌ] SSL/TLS ํ•ธ๋“œ์‰์ดํฌ - TLS 1.3
    • [๋„คํŠธ์›Œํฌ] TCP/IP ํ๋ฆ„์ œ์–ด์™€ ํ˜ผ์žก์ œ์–ด
    • [๋„คํŠธ์›Œํฌ] HTTP ์ƒํƒœ/์‘๋‹ต ์ฝ”๋“œ ์ •๋ฆฌ
    J1Yun
    J1Yun
    ๊ฐœ๋ฐœ ๊ด€๋ จ ๊ธฐ์ˆ  ๋ฐ ๊ณต๋ถ€ ๋‚ด์šฉ ๊ธฐ๋ก์žฅ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”