HTTP 버전별 차이

이신성·2023년 11월 5일



  • Tim Berners-Lee 초창기 웹 창시
  • 초창기 웹의 핵심, 하이퍼 텍스트
  • 논문(문서) 형식을 예로 제목, 내용, 참고 문헌 등의 항목에서 참고 문헌의 다른 논문을 또 확인해야 한다.
  • 이런 개념을 적용한 것이 하이퍼 텍스트 즉, 링크
  • 이것이 HTTP의 시작



HTTP 0.9

  • GET 문서 요청, 문서 응답

HTTP 1,0 / HTTP 1.1

HTTP 1.0과 HTTP 1.1의 차이

  • HTTP 1.0과 HTTP 1.1의 가장 큰 차이는 연결

HTTP 1.0

  • 클라이언트가 웹 서버에 접속하여 HTML 응답을 받는다.
  • HTML을 파싱 후 화면에 출력하는데 사진, CSS 등의 정보도 필요하다.
  • 그 때 다시 웹 서버에 요청을 하게 된다.
  • TCP/IP기반으로 작동, 클라이언트가 정보 응답을 받을 때 마다 TCP를 연결하고 끊는다.
  • 즉, 연결과 끊음을 반복한다.

HTTP 1.1

  • 연결을 1회만 시행
  • HTML + CSS + JS + ... 정보를 받은 후 연결을 끊는다.
  • 즉, 커넥션(TCP) 재사용
  • TCP연결을 유지하여 응답이너 속도를 개선시켰다.
  • 호스트 헤더 추가

HTTP 2.0

  • 구글, SPDY 프로토콜 -> HTTP 2.0
  • HTTP 2.0의 핵심은 SPDY로부터 왔다.
  • HTTP 2.0은 멀티 세션을 지원하여 IO 멀티플렉싱이 가능하다.
  • HTTP 1.1에서는 Request 리소스에 1,2,3의 순서로 전송, 1번의 순서를 가져오기 전까지는 2번을 전송하지 못한다.
  • HTTP 2.0에서는 Request를 보내면 2,1,3이런 순서로 도착할 수 있다. 그 후 클라이언트에서 받은 정보를 조립한다.
  • 기존의 HTTP문서에 사진, 영상 등의 정보가 너무 많아 Binary Framing Layer를 사용
  • 이전 클라이언트/서버 환경에서으 유저 모드 어플리케이션 프로토콜 디자인의 형태
  • [ 헤더 / 데이터 ]
  • 헤더 안에 여러 정보가 있어 Request별로 조립이 가능
  • 즉, IO 멀티플렉싱이 일어나며 성능이 좋아지고 스피드가 빨라졌다.
  • 헤더의 크기를 압축하여 줄이고, Request가 오면 같은 것을 제외시키고 두번째 전송시에 나머지만 전송하는 방식
  • 즉, huffman coding방식으로 압축을 한다.

HTTP 3.0

  • HTTP 2.0까지의 가장 중요한 특징은 TCP를 이용한다는 것
  • HTTP 3.0의 핵심은 UDP
  • HTTP 2.0까지 TCP를 사용했기 때문에 속도의 한계가 존재한다.

UDP의 장점

  • 예를 들어 유튜브의 경우 MP4로 되어있는 동영상을 시청, MP4의 특징은 장면 하나가 있으면 그 다음 장면을 모두 전송하는 것이 아닌 바뀐 부분만 전송하는 방식으로 압축을 한다.
    만약 1,2,3번 화면에서 네트워크 문제로 2번이 유실되면 2번을 받을까? 3번을 출력할까?
    영상이 끊겨 멈춰있다가 재생되는 것은 문제, 또한 라이브 스트리밍의 경우 네트워크 환경에 따라 속도 차이 발생

  • TCP가 가지고 있는 연결 지향에서 가장 중요한 특징중 하나, 혼잡 제어 능력
    하지만 TCP에서는 2번의 화면을 버리는 행위가 고려되어 있지 않다.

  • UDP의 경우 브라우저 수준에서의 일부 버림을 인정, 혼잡 제어라는 로직 자체를 어플리케이션 수준에서 재정의 '퀵'의 등장

  • UDP의 경우 TLS필수, HTTP 3.0에서는 https 암호화 필수

0개의 댓글