📌 1991
HTTP/0.9
GET 메서드만 지원
HTTP 헤더 없음
📌 1996
HTTP/1.0
메서드, 헤더 추가
📗 TCP
📌 1997 ~ 2014
HTTP/1.1
현재 주로 사용
1997 RFC2068
1999 RFC2616
2014 RFC7230~7235
📌 2015
HTTP/2.0
성능 개선
📗 UDP
📌 현재
HTTP/3.0 진행중
📗 클라이언트 서버 구조
Request/Response 구조
클라이언트는 서버에 요청을 보내고 응답을 대기,
서버가 요청에 대한 결과를 만들어 응답
📗 무상태 프로토콜
Stateless 서버가 클라이언트의 상태를 보존하지 않음
장점 서버의 확장성이 높음(스케일 아웃) - 무한 서버 증설
단점 클라이언트가 추가 데이터 전송
Stateless
로그인이 필요없는 단순 소개 서비스
상태 유지(Stateful)
로그인이 필요한 서비스. 브라우저 쿠키, 서버 세션, 토큰을 이용
필요 최소한으로 이용
📗 비연결성
Connectionless
HTTP는 실제로 요청을 주고받을 때만 연결을 유지(HTTP 1.0 기준)
응답을 주고 나면 TCP/IP 연결을 끊도록 함
트래픽이 많지 않고, 빠른 응답을 제공할 수 있는 경우 유리
Connection Oriented
TCP/IP는 기본적으로 연결을 유지함(요청이 없어도)
서버의 자원이 소모되는 단점이 있음
비연결성 한계 극복
웹 브라우저로 사이트를 요청하면 HTML, css, JS, 각종 이미지 등도 함께 다운로드 되는데 자원들을 각각 보낼때 마다 연결을 끊고 다시 연결하는 것은 비효율적
➡️ HTTP 지속 연결(Persistent Connections)로 문제를 해결