[TIL] HTTP/1.1 과 HTTP/2 비교하기!

yurinnn·2024년 1월 27일
0

Today I Learn

목록 보기
3/11

HTTP (Hyper-Text Transfer Protocol) 프로토콜

HTML 문서를 TCP/IP 규격 위에서 송수신하기 위한 프로토콜 (애플리케이션 계층)

  • HTTP 프로토콜 :
    섹션이 연결되고 끊어지기 전까지 데이터 교환이 가능하지만, 브라우저 요청(HTTP request)마다 연결을 맺고 끊는 비연결성을 가지고 있다.
    요청 명령 중 GET, POST 를 가장 많이 사용하고, PUT, DELETE 를 더해 생성, 조회, 수정, 삭제의 CRUD 개념으로 구현할 수 있다.

  • TCP (데이터 전송 컨트롤 프로토콜, 전송 계층)
  • IP (인터넷 프로토콜, 인터넷 계층)

네트워크에서 통신이 일어나는 과정

전송 프로토콜

TCP (Transmission Control Protocol)

신뢰성 바탕의 3 Way Handshake 를 한다.

  • 3 Way Handshake TCP/IP 프로토콜을 이용해서 통신하는 응용프로그램은 데이터를 주고받기 전에 먼저 연결을 진행하는데, 3-Way Handshake는 이 연결 과정을 의미한다.
    • ACK(Acknowledgement) : 응답을 할 때 사용
    • SYN(Synchronize Sequence Number) : 연결을 요청할 때 사용

UDP (User Datagram Protocol)

신뢰성을 신경쓰지 않고 데이터를 보내지만 전송 속도가 빠르다.

HTTP/1.1

특징

  1. Persistent Connection : 지정한 시간 동안 커넥션을 닫지 않는 방식
  2. Pipelining : 응답을 기다리지 않고 여러 요청을 연속적으로 보내 그 순서에 맞춰 응답을 받는 방식으로 지연 시간을 줄이는 방법

문제점

  1. Head of Line Blocking
  2. Header 구조의 중복

HTTP/2

기존 HTTP/1.x 버전의 성능 향상에 초점을 두고 확장한 프로토콜

특징

  1. HTTP 메시지 전송 방식의 변화
    → 바이너리 프레이밍 계층 사용
    → 파싱, 전송 속도를 높이고, 오류 발생 가능성을 낮춤
  2. Request & Response Multiplexing
    → frame, stream 의 존재
    → Head of Line Blocking 문제 해결
  3. Stream Prioritization
    → 리소스간 우선 순위 설정 가능
  4. Server Push
    → 클라이언트가 요청하지 않은 부분까지 보냄
  5. Header Compression
    → static dynamic table로 헤더의 크기를 줄여 페이지 로드 시간 감소

HTTP에 대해서는 더 자세히 다룰 예정이다.

profile
슬기로운 개발 생활

0개의 댓글

관련 채용 정보