Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Network] 13. HTTP1.1와 HTTP2.0 차이점은 무엇인가요? #65

Open
CMSSKKK opened this issue Nov 8, 2022 · 1 comment
Open

[Network] 13. HTTP1.1와 HTTP2.0 차이점은 무엇인가요? #65

CMSSKKK opened this issue Nov 8, 2022 · 1 comment
Labels
NETWORK 네트워크 질문

Comments

@CMSSKKK
Copy link
Member

CMSSKKK commented Nov 8, 2022

HTTP1.1와 HTTP2.0 차이점은 무엇인가요?

키워드

HOL Blocking, TCP

@CMSSKKK CMSSKKK added the NETWORK 네트워크 질문 label Nov 8, 2022
@CMSSKKK
Copy link
Member Author

CMSSKKK commented Nov 8, 2022

HTTP 1.0과 HTTP 1.1 차이 키워드 : HTTP Pipelining, Keep-Alive

HTTP 1.1

  • HTTP 1.1은 HTTP 1.0을 개선해서 하나의 TCP Connection에 여러 요청을 보낼 수 있도록 했습니다.
    이 것을 HTTP Pipelining이라 부릅니다.

  • 하지만 HTTP Pipelining으로 인해서 HOL Blocking 문제가 발생합니다.
    HOL(Head Of Line) Blocking은 여러 요청 중 앞 선 요청이 처리되지 않으면 다른 요청들도 모두 지연되는 것을 말합니다.

  • 또한 모든 요청마다 동일한 Header를 전송하고 응답했기 때문에 네트워크 자원을 낭비합니다.

  • 이러한 문제를 해결하기위해 Image Spriting, Domain Sharding 그리고 CSS, JS 최소화 등으로 그 문제를 해결하고자했습니다.

HTTP 2.0

구글의 SPDY 프로토콜을 기반으로 2015년 승인되었습니다.

Multiplexed Streams

  • 하나의 Connection으로 여러 요청을 보내는 것은 동일하나, 요청 순서와 관계없이 Stream으로 응답을 받게 되어 HOL Blocking 문제를 해결하였습니다.

Server push

  • 클라이언트의 요청없이 서버가 자원을 보내는 것을 뜻합니다.
  • 예를 들어 클라이언트가 자원 A를 요청했을 때, 자원 B가 연관되어있다면 서버가 자동적으로 자원 B를 응답해주는 것입니다.

Stream Prioritization

  • 응답의 우선순위를 정해서 우선으로 필요로하는 리소스를 먼저 응답하는 것을 뜻합니다.

Header Compression

  • 중복되는 Header를 다시 보내지 않고 클라이언트, 서버 모두 Header Table을 관리하는 방식입니다.
  • HPACK 압축 방식을 사용하여 Header를 경량화합니다.

Reference

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
NETWORK 네트워크 질문
Projects
None yet
Development

No branches or pull requests

1 participant