CS/λ„€νŠΈμ›Œν¬

[λ„€νŠΈμ›Œν¬] HTTP/1.1

1eehyunji 2023. 8. 19. 17:17

HTTP/1.0μ—μ„œ λ°œμ „ν•œ 것이 HTTP/1.1이닀.

HTTP/1.0처럼 데이터λ₯Ό 주고받을 λ•Œλ§ˆλ‹€ TCP 연결을 ν•˜λŠ” 것이 μ•„λ‹ˆλΌ, ν•œ 번 TCPλ₯Ό μ΄ˆκΈ°ν™”ν•œ 후에 'keep-alive'λΌλŠ” μ˜΅μ…˜μœΌλ‘œ μ—¬λŸ¬ 개의 νŒŒμΌμ„ μ†‘μˆ˜μ‹ ν•  수 있게 λ°”λ€Œμ—ˆλ‹€. 

이λ₯Ό 'νŒŒμ΄ν”„λΌμ΄λ‹'이라 ν•œλ‹€. νŒŒμ΄ν”„λΌμ΄λ‹μ€ λΈŒλΌμš°μ €κ°€ μ›Ή μ„œλ²„μ— μ—¬λŸ¬ 개의 μ½˜ν…μΈ λ₯Ό μš”μ²­ν–ˆμ„ λ•Œ, 이전 μš”μ²­μ— λŒ€ν•œ 응닡을 μ™„μ „ν•˜κ²Œ λ°›μ§€ μ•Šλ”λΌλ„ 지속적 μ—°κ²°λ‘œ ν™•λ³΄ν•œ ν•˜λ‚˜μ˜ TCP μ—°κ²° λ‚΄μ—μ„œ 미리 λ‹€μŒ μš”μ²­μ— λŒ€ν•œ 처리λ₯Ό μ‹œμž‘ν•˜λ©΄μ„œ 전체적인 전달 μ‹œκ°„μ„ μ€„μ΄λŠ” 방식이닀.

참고둜, HTTP/1.0에도 keep-alive μ˜΅μ…˜μ€ μžˆμ—ˆμ§€λ§Œ ν‘œμ€€ν™”λ˜μ–΄ μžˆμ§€ μ•Šμ•˜κ³ , HTTP/1.1λΆ€ν„° ν‘œμ€€ν™”λ˜μ–΄ κΈ°λ³Έ μ˜΅μ…˜μœΌλ‘œ μ„€μ •λ˜μ—ˆλ‹€.

μœ„ 그림처럼, TCP μ΄ˆκΈ°ν™”κ°€ 된 이후엔 TCP 3 way handshakeκ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€. ν•˜μ§€λ§Œ, λ¬Έμ„œ μ•ˆμ— ν¬ν•¨λœ λ‹€μˆ˜μ˜ λ¦¬μ†ŒμŠ€(이미지, λ™μ˜μƒ, css 파일, js 파일 λ“±)λ₯Ό μ²˜λ¦¬ν•˜λ €λ©΄ μš”μ²­ν•  λ¦¬μ†ŒμŠ€ κ°œμˆ˜μ— λΉ„λ‘€ν•΄μ„œ λŒ€κΈ° μ‹œκ°„μ΄ κΈΈμ–΄μ§€λŠ” 단점이 μžˆλ‹€. 

 

HOL Blocking(Head Of Line Blocking)

λ„€νŠΈμ›Œν¬μ—μ„œ 같은 큐에 μžˆλŠ” νŒ¨ν‚·μ΄ κ·Έ 쀑 첫 번째 νŒ¨ν‚·μ— μ˜ν•΄ 지연될 λ•Œ λ°œμƒν•˜λŠ” μ„±λŠ₯ μ €ν•˜ ν˜„μƒμ΄λ‹€.

예λ₯Ό λ“€μ–΄, μœ„ 그림처럼 image.jpg, style.css, data.xml을 λ‹€μš΄λ°›μ„ λ•Œ 보톡은 순차적으둜 잘 λ°›μ•„μ§€μ§€λ§Œ, image.jpgλ₯Ό λ‹€μš΄λ°›μœΌλ©΄μ„œ 지연이 λ°œμƒν•΄μ„œ 느리게 λ°›μ•„μ§„λ‹€λ©΄ κ·Έ λ‹€μŒ μˆœμ„œμΈ style.cssλ‚˜ data.xml이 λŒ€κΈ°ν•˜κ²Œ λ˜λ©΄μ„œ λ‹€μš΄λ‘œλ“œκ°€ μ§€μ—°λ˜λŠ” μƒνƒœκ°€ λ˜λŠ” 것을 λ§ν•œλ‹€.

 

무거운 헀더 ꡬ쑰

HTTP/1.1의 ν—€λ”μ—λŠ” μΏ ν‚€ λ“± λ§Žμ€ 메타데이터가 λ“€μ–΄ 있고, 압좕이 λ˜μ§€ μ•Šμ•„ 무거웠닀.