[CS] 2.5 HTTP

이아현·2023년 9월 12일
0
post-thumbnail

2.5 HTTP

HTTP는 애플리케이션 계층으로서 웹 서비스 통신에 사용

2.5.1 HTTP/1.0

  • 기본적으로 연결당 하나의 요청을 처리하도록 설계

  • RTT (Round Trip Time : 패킷이 목적지에 도달 후 다시 출발지로 돌아오기까지 걸리는 시간)가 증가하는 단점이 있음

  • RTT 증가에 대한 해결 방법

    • 이미지 스플리팅
    • 코드 압축
    • 이미지 Base64 인코딩

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
  • SEO (Search Engine Optimazation) : 검색 엔진 최적화

    • SEO 관리를 위해 캐노니컬 설정, 메타 설정, 페이지 속도 개선, 사이트맵 관리 등이 있음

2.5.5 HTTP/3

  • QUIC이라는 계층 위에서 돌아가며 TCP 기반이 아닌 UDP 기반으로 돌아감
  • 멀티플렉싱을 가지고 있으며 초기 연결 설정 시 지연 시간 감소라는 장점이 있음
profile
PM을 지향하는 FE 개발자 이아현입니다 :)

0개의 댓글

Powered by GraphCDN, the GraphQL CDN