개발일기
모든 것이 HTTP 본문
HTTP (HyperText Transfer Protocol)
HyperText 문서간의 링크를 연결할 수 있는 HTML전송하는 프로토콜로 시작했는데,
모든 것을 HTTP 메시지에 담아서 전송한다.
- HTML, TEXT
- IMAGE, 음성, 영상, 파일
- JSON, XML(API)
- 거의 모든 형태의 데이터 전송 가능
- 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용
- 지금은 HTTP 시대이다.
TCP를 직접 연결해서 하는 경우는 게임 서버, 특별한 경우 심지어 요즘은 모바일 서버는 HTTP로 하는 경우도 많다.
HTTP 역사
- HTTP/0.9 1991년 : GET메서드만 지원, HTTP 헤더 X
- HTTP/1.0 1996년 : 메서드, 헤더추가
- HTTP/1.1 1997년 : 가장 많이 사용, 우리에게 가장 중요한 버전
- RFC2068(1997) -> RFC2616 (1999) -> RFC7239~7235(2014)
- HTTP/2 2015년: 성능 개선
- HTTP/3 진행중 : TCP 대신에 UDP 사용, 성능 개선
기반 프로토콜
- TCP : HTTP/1.1, HTTP/2 (TCP프로토콜 위에서 동작을 한다.) 3 way handshake도 해야되고 데이터가 많아서
조금 느림
- UDP : HTTP/3 => 이러한 문제점들을 성능을 최적화해서 나올 수 있음 즉, 직접 위에와 같은 것들을 구현할 수 있음.
- 현재 HTTP/1.1 주로 사용
- HTTP/2, HTTP/3 도 점점 증가
우리에게 중요한건 HTTP/1.1의 성능을 개선한게 HTTP/2, HTTP/3 을 성능개선한거여서 HTTP/1.1만 어느정도 알면 해결됨.
HTTP 특징
- 클라이언트 서버 구조
- 무상태 프로토콜(스테이스리스), 비연결성
- HTTP 메시지
- 단순함, 확장 가능
'Spring > (김영한님)HTTP웹 기본 지식' 카테고리의 다른 글
Stateful, Stateless (0) | 2023.03.09 |
---|---|
클라이언트 서버 구조 (0) | 2023.03.09 |
웹 브라우저 요청 흐름 (0) | 2023.03.06 |
URI(Uniform Resource Identifier) (1) | 2023.03.03 |
DNS (0) | 2023.03.03 |