2.5 HTTP
HTTP는 애플리케이션 계층으로서 웹 서비스 통신에 사용
2.5.1 HTTP/1.0
2.5.2 HTTP/1.1
- 한 번 TCP 초기화를 한 이후에 keep-alive라는 옵션으로 여러 개의 파일을 송수신 가능
- 문서 안에 포함된 다수의 리소스를 처리하려면 요청할 리소스 개수에 비례해서 대기 시간이 길어지는 단점
HOL Blocking (Head Of Line Blocking)
- 네트워크에서 같은 큐에 있는 패킷이 그 첫 번째 패킷에 의해 지연될 때 발생하는 성능 저하 현상
무거운 헤더 구조
- HTTP/1.1의 헤더에는 많은 메타 데이터가 있고 압축이 되지 않아 무거움
2.5.3 HTTP/2
- 앞선 HTTP/1.x보다 지연 시간을 줄이고 응답 시간을 더 빠르게 할 수 있음
- 멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리를 지원하는 프로토콜
멀티플렉싱
- 여러 개의 스트림을 사용하여 송수신
- 애플리케이션에서 받아온 메시지를 독립된 프레임으로 조각내어 서로 송수신한 후 이후 다시 조립하여 데이터를 주고받음
2.5.4 HTTPS
- 애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL/TLS 계층을 넣은 신뢰할 수 있는 HTTP 요청
- '통신을 암호화'
SSL/TLS
- 전송 계층에서 보안을 담당하는 프로토콜
- 클라이언트와 서버가 통신할 때 SSL/TLS를 통해 제 3자가 메시지를 도청하거나 변조하지 못하도록함
- 보안 세션을 기반으로 데이터를 암호화하며, 보안 세션이 만들어질 때 인증 메커니즘, 키 교환 암호화 알고리즘, 해싱 알고리즘이 사용
SEO에도 도움이 되는 HTTPS
2.5.5 HTTP/3
- QUIC이라는 계층 위에서 돌아가며 TCP 기반이 아닌 UDP 기반으로 돌아감
- 멀티플렉싱을 가지고 있으며 초기 연결 설정 시 지연 시간 감소라는 장점이 있음