HTTP
HTTP(HyperText Transfer Protocol)
는 W3(www)
웹에서 HTML 문서 또는 이미지와 같은 리소스인 데이터 정보를 주고받기 위한 프로토콜이다.
HTTP
프로토콜은 TCP/IP
프로토콜을 기반으로 하고 있다. 즉, HTTP
프로토콜은 TCP/IP
프로토콜을 사용하여 클라이언트와 서버 간의 연결을 유지하고, 데이터를 주고받는다. TCP
프로토콜은 신뢰성 있는 스트림 전송 서비스를 제공한다.
HTTP 통신 방식의 특징
Connectionless 비연결성
- 클라이언트가 서버에 요청을 보내면, 서버가 클라이언트에 응답을 보내고 연결을 끊는다.
- 이후, 다시 클라이언트는 다른 요청을 보내기 위해 새로운 연결을 시작한다.
Stateless 무상태성
- 서버는 클라이언트의 이전 요청에 대한 정보를 가지고 있지 않는다.
- 즉, 클라이언트가 이전 요청과 다음 요청이 독립적으로 처리된다.
- 이를 해결하기 위해 쿠키와 세션 등의 기술이 사용된다.
Request/Response 요청/응답
- 클라이언트가 서버에 요청을 보내면, 서버는 클라이언트에 응답을 보낸다.
- 이 과정에서 데이터는 HTTP 메시지 형태로 전송되며, 이 메시지는 요청 메시지와 응답 메시지로 구분된다.
HTTP/2
HTTP/2
는 HTTP/1
의 단점을 보완하기 위해 나온 프로토콜이다.
HTTP/1
의 단점은 단일 연결을 유지하는 방식으로 인해 연결이 많아질수록 성능이 저하되는 문제가 있었다.
이를 해결하기 위해 HTTP/2
는 연결을 최적화하고, 데이터 전송 최적화를 위해 여러 요청을 한 번에 보내는 등의 방식을 사용한다.
HTTP/2 통신 방식의 특징
Multiplexing 다중화
- 하나의
TCP
연결을 통해 여러 개의 요청과 응답을 동시 처리 가능하다. - 이를 통해 네트워크 연결의 수를 줄이고, 성능을 향상시킬 수 있다.
Header Compression 헤더 압축
HPACK
압축 포맷을 사용하여 헤더 데이터를 압축한다.- 전송 데이터의 크기를 줄일 수 있다.
Server Push 서버 푸시
- 서버가 클라이언트의 요청을 기다리지 않고 능동적으로 리소스를 클라이언트에게 보낼 수 있다.
- 클라이언트가 리소스를 미리 받아 처리하여 추가적인 라운드 트립을 줄일 수 있다.
Stream Prioritization 스트림 우선순위
HTTP/2
는 리소스 간의 우선순위를 설정하고, 중요한 리소스를 먼저 로드할 수 있다.
Conclusion
HTTP/2
는HTTP/1
의 단점을 보완하기 위해 나온 프로토콜이다.HTTP/2
는 연결을 최적화하고, 데이터 전송 최적화를 위해 여러 요청을 한 번에 보내는 등의 방식을 사용한다.HTTP/2
는 하나의TCP
연결을 통해 여러 개의 요청과 응답을 동시 처리 가능하다.HTTP/2
는 헤더 압축을 사용하여 헤더 데이터를 압축한다.HTTP/2
는 서버 푸시를 사용하여 클라이언트가 리소스를 미리 받아 처리하여 추가적인 라운드 트립을 줄일 수 있다.HTTP/2
는 스트림 우선순위를 사용하여 중요한 리소스를 먼저 로드할 수 있다.