모든 것이 HTTP
이 포스트는 김영한님의 ‘모든 개발자를 위한 HTTP 웹 기본 지식’을 수강하고 작성하였습니다.
HTTP (HyperText Transfer Protocol)
HTTP 메시지에서 전송할 수 있는 것들
- HTML, TEXT
- IMAGE, 음성, 영상, 파일
- JSON, XML (API)
- 거의 모든 형태의 데이터 전송 가능
- 서버 간에 데이터를 주고 받을 때도 대부분 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 버전 확인하기
- 크롬의 개발자도구를 켠다.
- 아무거나 검색한다
-
개발자 도구의 탭을 우클릭하고 ‘Protocol’을 체크한다.
- ‘Protocol’에서 HTTP의 버전을 확인할 수 있다. 그런데 왜 구글은 죄다 data와 HTTP/3로만 범벅이지
내가 좋아하는 게임 홈페이지의 경우, HTTP/2 >> HTTP/3 > HTTP/1.1을 쓰고 있다.
HTTP 특징
- 클라이언트 서버 구조
- 무상태 프로토콜(stateless; 스테이트리스), 비연결성
- HTTP 메시지
- 단순함, 확장 가능
댓글남기기