이 포스트는 김영한님의 ‘모든 개발자를 위한 HTTP 웹 기본 지식’을 수강하고 작성하였습니다.

HTTP (HyperText Transfer Protocol)

HTTP 메시지에서 전송할 수 있는 것들

  1. HTML, TEXT
  2. IMAGE, 음성, 영상, 파일
  3. JSON, XML (API)
  4. 거의 모든 형태의 데이터 전송 가능
  5. 서버 간에 데이터를 주고 받을 때도 대부분 HTTP 사용

HTTP의 역사

  • HTTP/0.9 (1991년): GET 메서드만 지원, HTTP 헤더 없음
  • HTTP/1.0 (1996년): 메서드, 헤더 추가
  • HTTP/1.1 (1997년): 가장 많이 사용
    • RFC2068 (1997년) → RFC2616 (1999년) → RFC7230~7235 (2014년)
  • HTTP/2 (2015년): 성능 개선
  • HTTP/3 (진행중): TCP 대신에 UDP 사용, 성능 개선

현재 HTTP/1.1을 주로 사용하지만, HTTP/2, HTTP/3의 사용률도 증가하는 추세
(왠지 현재 Java 17까지 나왔음에도 불구하고 Java 8, Java 11을 많이 쓰는 현상같다.)

HTTP 버전 별 기반 프로토콜

  • TCP: HTTP/1.1, HTTP/2
  • UDP: HTTP/3

웹에서 HTTP 버전 확인하기

  1. 크롬의 개발자도구를 켠다.
  2. 아무거나 검색한다
  3. 개발자 도구의 탭을 우클릭하고 ‘Protocol’을 체크한다. http1

  4. ‘Protocol’에서 HTTP의 버전을 확인할 수 있다. 그런데 왜 구글은 죄다 data와 HTTP/3로만 범벅이지 http2-google
    내가 좋아하는 게임 홈페이지의 경우, HTTP/2 >> HTTP/3 > HTTP/1.1을 쓰고 있다. http1-loa

HTTP 특징

  1. 클라이언트 서버 구조
  2. 무상태 프로토콜(stateless; 스테이트리스), 비연결성
  3. HTTP 메시지
  4. 단순함, 확장 가능

태그:

카테고리:

최초작성:

댓글남기기