HTTP

U_Uracil·2024년 4월 16일
0

CS

목록 보기
8/9

HTTP(Hypertext Transfer Protocol)


  • 웹에서 데이터를 주고 받는 서버-클라이언트 모델의 프로토콜
  • 80번 포트를 사용함
  • 응용 레벨의 프로토콜로 TCP/IP 위에서 작동함
  • 상태를 가지지 않은 Stateless 프로토콜

HTTP 구조

  • Method, Path, Version, Headers, Body로 구성됨

HTTP 버전


HTTP/1.0

  • 유용한 초기 개념 도입
    • 메세지 포맷 규격화
    • HTTP 헤더
    • HTTP 메소드
    • HTTP 응답 코드
    • 텍스트 파일 이외의 다양한 파일 전송
    • 리다이렉트, 비지속 연결 등
  • 하나의 연결 당 하나의 요청을 처리하도록 구현되었기 때문에 서버로부터 파일을 가져올 때마다 3-way handshake 과정을 수행해야 해서 RTT가 증가함
  • 이미지 스플리팅, 코드압축, 이미지 base64 인코딩 등의방법으로 RTT 증가를 해결하고자 함

HTTP/1.1

  • HTTP 1.0에서 한 번 TCP 초기화 이후 keep-alive 옵션으로 여러 개의 파일을 송수신 할 수 있게끔 됨
  • 여러 TCP 커넥션을 통한 동시 HTTP 처리
  • 블록 단위 인코딩 전송
  • SSL/TLS에 의한 암호화 통신 지원

HTTP/2

  • SPDY 프로토콜에서 파생되어 HTTP/1.x 보다 지연 시간을 줄이고 응답 시간을 더 빠르게 함
  • 멀티플렉싱, HPACK, 헤더 압축(허프만 코딩), 서버 푸시, 요청 우선순위 지원

HTTP/3

  • TCP 위에서 동작하는 HTTP/2와는 달리 QUIC이라는 계층 위에서 UDP 기반으로 동작해 빠른 속도를 가짐
  • QUIC의 순방향 오류 수정 메커니즘(FEC, Forword Error Correction)

HTTPS


  • HTTP는 암호화되지 않은 텍스트로 통신하기 때문에 누군가 통신 내용을 가로채거나 사용자 정보를 탈취할 수 있음
  • HTTPS는 애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL/TLS를 넣어 암호화해 통신

References
https://docs.tosspayments.com/resources/glossary/http-protocol
https://aws.amazon.com/ko/compare/the-difference-between-https-and-http/
https://developer.mozilla.org/ko/docs/Web/HTTP/Overview
http://www.ktword.co.kr/test/view/view.php?m_temp1=6378
https://mangkyu.tistory.com/98

profile
기억은 유한, 기록은 무한

0개의 댓글

관련 채용 정보