CS/네트워크

HTTP(HTTP 1,2,3, HTTPS)

씩씩한 IT블로그 2023. 1. 24. 21:55
반응형

HTTP란?

인터넷 상에서 정보를 주고받는 규칙 및 프로토콜

 

HTTP/1.0

- 하나의 연결당 하나의 요청만 처리하도록 설계

- RTT(패킷이 목적지에 도달하고 다시 출발지로 돌아오기 까지 걸리는 시간)이 증가함

- 이를 해결하기위해 이미지 스플리팅, 코드압축, Base64인코딩 등의 기법을 사용

  * 이미지 스플리팅 : 이미지가 합쳐있는 하나의 이미지를 다운로드 받는것

  * 코드압축 : 코드의 빈칸, 개행을 없애는 것

  * base64인코딩 : 64진법 문자열로 인코딩 하는 방법. 이미지에 대한 서버에 HTTP요청을 할 필요 없어짐. 하지만 크기가 커진다. 

   * 인코딩 : 정보의 형태나 형식을 표준화, 보안, 처리속도향상, 저장공간 절약을 위해 다른 형태나 형식으로 변환하는 것

 

HTTP/1.1

- Keep-alive 옵션 : 여러개의 파일을 송수신 가능하게 하는 옵션(TCP 연결, 해제를 위한 3-handshake 불필요)

- HOL blocking(head of line blocking) : 네트워크에서 같은 큐에 있는 첫번째 패킷이 지연되여 뒤의 패킷에 영향을 주는 것

 

HTTP/2

- 멀티플랙싱 : 여러개의 스트림으로 송수신. HOL blocking을 해결한다.

 * 스트림 : 시간이 지남에 따라 사용할 수 있게 되는 일련의 데이터요소

- 해더압축 : 허프만 코딩을 통해 큰 해더로 인한 문제점 해결

 * 허프만 코딩 : 문자열을 문자단위로 쪼개서 빈도수를 세고, 빈도가 높은 음절은 적은 비트를 사용하고 빈도가 낮은 음절은 높은 비트를 사용하여 전체 데이터에 필요한 비트수를 줄이는 것

- 서버푸시 : 클라이언트의 요청없이 서버에서 푸시하는 것(HTML 파일 요청시 HTML, CSS모두 받는 것)

 

HTTP/3

- UDP를 기반으로 돌아감

- 초기연결 설정시 지연시간 감소

 

HTTPS

- 애플리케이션 계층과 전송 계층 사이에 신뢰계층인 SSL/TLS를 넣은 것

- SSL/TLS(Secure Socket Layer/ Transport Layer Secure) : 전송계층에서 보안을 제공하는 프로토콜

- 클라이언트와 서버가 통신할 때 제 3자가 메시지를 도청하거나 변조하지 못하게 하는 것

반응형