HTTP는 애플리케이션 계층으로 써 웹 서비스 통신에 사용됩니다
하나의 연결당 하나의 요청을 처리하도록 설계되어있으며,
이는 RTT
의 증가를 불러오게되었습니다
서버로부터 파일을 가져올 때마다 TCP의 3-way handshake를 계속 열어야하기때문에
RTT가 증가하는 단점이 있습니다
RTT (Round Trip Time)
패킷이 목적지에 도달하고나서 다시 출발지로 되돌아오기까지 걸리는 시간
(패킷 왕복 시간)
인코딩
정보의 형태나 형식을 표준화, 보안, 처리속도 향상, 저장공간 절약 등을 위해 다른 형태나 형식으로 변환하는 처리 방식
TCP 초기화를 한 이후에 keep-alive
옵션으로 여러개의 파일을 송/수신 할 수 있습니다 (keep-alive는 이전에도 존재했으나 1.1부터 표준화 됨)
HTTP/1.1 에서는 한번 3-way handshake가 발생하면 그 이후에는 발생하지 않습니다
하지만 다수의 리소스를 처리하게 되면 대기 시간이 길어지는 단점이 있습니다
기존 SPDY 프로토콜에서 파생된 HTTP/1.X 보다 지연시간을 줄이고, 응답 시간을 더 빠르게 할 수 있으며 멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리를 지원하는 프로토콜입니다
여러개의 스트림을 사용하여 송수신하는 것으로 특정 스트림의 패킷이 손실 되어도 나머지 스트림은 영향없이 정상적으로 동작
스트림
시가닝 지남에 따라 사용할 수 있게 되는 일련의 데이터 요소를 가리키는 데이터 흐름
1.X 의 무거운 헤더구조를 해결하기위해, HTTP/2 에서는 허프만코딩 압축 알고리즘을 사용하는 HPACK 압축형식을 가집니다
무손실 압축 알고리즘으로 빈도가 높은 정보는 적은 비트 수를, 빈도가 낮은 정보는 비트 수를 많이 사용하여 전체 테이터 표현에 필요한 비트 수를 줄이는 원리
클라이언트의 요청없이도 서버에서 바로 리소스를 푸시할 수 있습니다
HTTPS는 HTTP/2 위에서 동작합니다
HTTPS는 애플리케이션 계층과 전송계층 사이에 신뢰계층인 SSL/TLS계층을 넣은 신뢰할 수 있는 HTTP 요청을 말합니다
SSL/TLS는 handshake를 통해 보안세션을 생성하고 이를 기반으로 상태 정보를 공유합니다
세션
운영체제가 어떠한 사용자로부터 자신의 자산 이용을 허락하는 일정한 기간
클라이언트에서 사이퍼 슈트를 서버에 전달하면 서버는 암호화 알고리즘 리스트를 제공할 수 있는지 확인한 후 클라이언트에 인증서를 보내는 인증 매커니즘이 시작됩니다
이후 해싱 알고리즘으로 암호화된 데이터의 송수신이 시작됩니다
사이퍼슈트
프로토콜, AEAD 사이퍼 모드, 해싱알고리즘 이 나열된 규악
- TLS_AES_128_GCM_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
- TLS_AES_128_CCM_SHA256
- TLS_AES_128_CCM_8_SHA256
AEAD 사이퍼 모드
Authenticated Encryption with Assosicated Data
- AES_128_GCM - 128비트의 키를 사용한 암호화 기술과 병렬계산 용이한 알고리즘 GCM이 결합된 알고리즘
인증 매커니즘은 CA(Certificate Authorities)에서 발급한 인증서를 기반으로 이루어집니다
클라이언트에게 공개키
를 제공하고 사용자가 접속한 서버가 신뢰 할수 있는 서버 임을 보장합니다
CA 발급 기업
- Comodo
- GoDaddy
- GlobalSign
- Amazon
CA 발급과정
- 사이트정보와 공개키 제출
- CA의 비밀키를 기반으로 인증서 발급
디피-헬만 키 교환 암호화 알고리즘
y=g^x mod p
참조URL - https://injae-kim.github.io/dev/2020/08/07/diffie-hellman-algorithm.html
데이터를 추정하기 힘든 더 작고, 섞여 있는 조각으로 만드는 알고리즘입니다
해시
다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑한 값
해싱
임의의 데이터를 해시로 바꿔주는 일
해시 함수
임의의 데이터를 해시값으로 바꾸어주는 함수
HTTPS를 사용하는 사이트가 SEO순위가 더 높습니다
SEO 검섹엔진을 최적하면 사이트 유입이 증가합니다
<link rel="canonical">
<meta>
QUIC이라는 계층 위에서 돌아가며, UDP기반으로 돌아갑니다
TCP를 사용하지 않기 때문에 번거로운 3-way handshake 과정이 필요없습니다
순방향 오류 수정 매커니즘이 적용되기때문에 전송한 패킷이 손실되었다면 수신 측에서 에러를 검출하고 수정하는 방식이며 열악한 네트워크 환경에서도 낮은 패킷 손실률을 자랑합니다