728x90
이번에는 HTTP 1.1 vs 2.0 의 차이에 대해 정리해보려고 합니다.
HTTP
- HTTP는 웹상에서 클라이언트와 웹서버간 통신을 위한 프로토콜 중 하나
HTTP/1.1이 느린 이유
- 연결당 하나의 요청과 응답을 처리하기 때문에 동시 전송 문제와 다수의 리소스를 처리하기에 속도와 성능 이슈가 존재
- HOL(Head Of Line) Blocking (특정 응답 지연)
- HTTP/1.1의 사양상의 제한으로 클라이언트의 리퀘스트의 순서와 서버의 응답순서는 동기화해야 됨
- RTT(Round Trip TIme) 증가 (양방향 지연)
- 헤더가 크다 (특히 쿠키 때문)
- http/1.1의 헤더에는 많은 메타 정보들이 저장되어 있음.
- 사용자가 방문한 웹페이지는 다수의 http 요청이 발생하게 되는데 이 경우 매 요청시 마다 중복된 헤더 값을 전송하게 되며 각 도메인에 설정된 쿠키 정보도 매 요청시 마다 헤더에 포함되어 전송
문제점들을 해결하기 위하여 프론트엔드 개발자가 해야할 일
- 이미지 스프라이트
- 여러 개의 이미지를 하나의 이미지로 합쳐서 관리하는 이미지 (사용할 때는 좌표 범위로 구분하여 사용)
- 도메인 샤딩
- 리소스를 여러 개의 도메인 으로 나누어 저장하여, 페이지 로드 시간을 빠르게하는 일종의 트릭 혹은 방법.
- 여러 개의 도메인으로 나누어진 리소스를 다운받기 때문에 browser 는 더 많은 리소스를 한번에 더 많이 받을 수 있다.
- 최신 브라우저들은 보통 한 도메인에 약 6개의 동시 다운로드를 제공한다.
- 이 갯수를 초과하는 페이지의 경우 초과하는 갯수를 6으로 나눈 도메인에 리소스를 뿌려두면, 병렬적으로 리소스들을 다운받을 수 있다.
- CSS/JavaScript 압축
- Data URI
HTTP/2.0의 등장
- SDPY(구글 제안 프로토콜) 기반으로 HTTP/2.0 등장
- HTTP/2.0은 HTTP/1.1이 느려서 버전을 개선한 것
HTTP/2.0이 빠른 이유
- Multiplexed Streams (한 커넥션에 여러개의 메세지를 동시에 주고 받을 수 있음)
- 요청이 커넥션 상에서 다중화 되므로 HOL(Head Of Line) Blocking 이 발생하지 않음
- Stream Prioritization (요청 리소스간 의존관계를 설정)
- Header Compression (Header 정보를 HPACK 압축 방식을 이용하여 압축 전송)
- Server Push (HTML문서 상에 필요한 리소스를 클라이언트 요청없이 보내줄 수 있음)
- 프로토콜 협상 메커니즘 - 프로토콜 선택, 예. HTTP / 1.1, HTTP / 2 또는 기타.
- HTTP / 1.1과의 높은 수준의 호환성 - 메소드, 상태 코드, URI 및 헤더 필드
- 페이지 로딩 속도 향상
HTTP 1.1 vs 2.0 차이
지금까지 알아본 내용으로 두 버전의 가장큰 차이점은 "속도" 입니다.
2.0은 헤더를 압축해서 보낼수가 있고, 한번의 연결로 에러 메시지를 주고 받을 수 있습니다.
728x90
'개발 라이프' 카테고리의 다른 글
[면접] 함수형 프로그래밍이란? (0) | 2022.04.17 |
---|---|
[면접] 절차지향 언어 vs 객체치향 언어 (0) | 2022.04.17 |
[면접] 웹 접근성, 웹 표준 (0) | 2022.04.16 |
[면접] 프레임워크와 라이브러리 (0) | 2022.04.14 |
[면접] 개발 방법론이란? (0) | 2022.04.14 |