2021년 9월 13일에 작성된 문서 2번 입니다.
http 배운 내용을 정리했습니다.
HTTP
HTTP 역사는 다음과 같습니다.

- HTTP/1.1, HTTP/2는 TCP 기반
- HTTP/3는 UDP 기반 프로토콜
HTTP 특징 1: 클라이언트 서버 구조
클라이언트가 서버에 요청을 보내면 서버는 그에 대한 응답을 보내는 클라이언트 서버 구조로 이루어져 있다.

- Request-Response 구조
- 클라이언트: 서버에 요청을 보내고 응답을 대기
- 서버: 요청에 대한 결과를 만들어 응답
HTTP 특징 2: 무상태 프로토콜(Stateless), 비연결성(Connectionless)
2-1. 무상태 프로토콜(Stateless)
- 서버가 클라이언트의 상태를 보존하지 않음
- 장점 : 서버 확장성이 높음 (스케일 아웃)

- 단점: 클라이언트가 추가 데이터 전송
2-2. 상태유지 VS 무상태
아래의 그림을 참조하자.

2-3. 비연결성(Connectionless)
- HTTP는 기본적으로 연결을 유지하는 모델
- 일반적으로 초단위 이하의 빠른 응답을 보임
- 1시간동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 작음
2-4. 비연결성 한계와 극복
한계 | 극복 |
---|
TCP/IP연결을 새로 맺어야함. | 3 way handshake 시간 추가 |
웹브라우저로 사이트 요청시 수많은 자원이 함께 다운로드 | HTTP 지속 연결로 해결 |
2-5. HTTP 지속 연결(Persistent Connections)
- HTTP 초기에는 각각의 자원을 다운로드하기 위해 연결과 종료를 반복.

- HTTP 지속 연결에서는 연결이 이루어지고 난 뒤 각각의 자원들을 요청하고 모든 자원에 대한 응답이 돌아온 후에 연결을 종료.

HTTP 특징 3: 단순함, 확장 가능
아래의 그림을 참조하자.

Written with StackEdit.