애플리케이션 계층으로서 웹 서비스 통신에 사용됨
한 연결당 하나의 요청을 처리 → RTT 증가를 불러옴
RTT (패킷 왕복 시간)
RTT 증가 (→ 서버에 부담, 사용자 응답 시간이 길어짐)
서버로부터 파일을 가져올 때마다 TCP의 3-웨이 핸드셰이크를 계속해서 열어야 하기 때문에 RTT가 증가하는 단점
해결 방법
이미지 스플리팅 : 많은 이미지를 다운받게 되면 과부하가 걸리므로 많은 이미지가 합쳐 있는 하나의 이미지를 다운 받고 background-image의 position을 이용하여 이미지 표기하는 방법
코드 압축 : 코드를 압축해서 개행 문자, 빈칸을 없애서 코드의 크기를 최소화하는 방법
이미지 Base64 인코딩 : 이미지 파일을 64진법으로 이루어진 문자열로 인코딩하는 방법
장점 : 서버와의 연결을 열고 이미지에 대해 서버에 HTTP 요청을 할 필요가 없음
단점 : 37% 정도 크기가 더 커짐
인코딩: 정보의 형태나 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해 다른 형태나 형식으로 변환하는 처리 방식
HTTP/1.0에서 발전한 것
SPDY 프로토콜에서 파생된 HTTP/1.x보다 지연 시간을 줄이고 응답 시간을 더 빠르게 할 수 있으며 멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리를 지원하는 프로토콜
멀티플렉싱
여러 개의 스트림을 사용하여 송수신
스트림(stream): 시간이 지남에 따라 사용할 수 있게 되는 일련의 데이터 요소를 가리키는 데이터 흐름
단일 연결을 사용하여 병렬로 여러 요청을 받고 응답을 줄 수 있음 → HTTP/1.x에서 발생하는 HOL Blocking 문제 해결 가능
헤더 압축
HPACK 압축 형식: 허프만 코딩 압축 알고리즘 사용
허프만 코딩(huffman coding): 문자열을 문자 단위로 쪼개 빈도수를 세어 빈도가 높은 정보는 적은 비트 수를 사용하여 표현, 빈도가 낮은 정보는 비트 수를 많이 사용하여 표현하여 전체 데이터의 표현에 필요한 비트양을 줄이는 원리
서버 푸시
애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL/TLS 계층을 넣은 신뢰할 수 있는 HTTP 요청 → 이를 통해 통신을 암호화 함
SSL/TLS
보안 세션
보안이 시작되고 끝나는 동안 유지되는 세션
핸드셰이크를 통해 보안 세션을 생성하고 이를 기반으로 상태 정보 등을 공유함
세션: 운영체제가 어떠한 사용자로부터 자신의 자산 이용을 허락하는 일정한 기간을 뜻함
세션: 운영체제가 어떠한 사용자로부터 자신의 자산 이용을 허락하는 일정한 기간을 뜻함
사이퍼 슈트
AEAD 사이퍼 모드
인증 메커니즘
암호화 알고리즘
해싱 알고리즘
SEO (Search Engine Optimization): 검색엔진 최적화. 사용자들이 검색엔진으로 웹사이트를 검색했을 때 그 결과를 페이지 상단에 노출시켜 많은 사람이 볼 수 잇도록 최적화 하는 방법
HTTPS 구축 방법
UDP 기반으로 QUIC이라는 계층 위에서 돌아감