HTTP/1.1
1997년: 가장 많이 사용, 우리에게 가장 중요한 버전
HTTP/2
2015년: 성능 개선
HTTP/3
진행중: TCP 대신에 UDP 사용, 성능 개선
현재는 HTTP1.1 주로 사용
클라이언트 서버 구조
무상태 프로토콜
비연결성
HTTP 메세지
단순함, 확장가능
Request, Response 구조
클라이언트는 서버에 요청을 보내고, 응답을 대기
서버가 요청에 대한 결과를 만들어서 응답
서버가 클라이언트의 상태를 보존하지 않음
장점은 서버 확장성이 높음(Scale out)
단점은 클라이언트가 추가 데이터를 전송해야함
Stateful: 중간에 다른 서버로 바뀌면 안된다
Stateless: 중간에 다른 서버로 바뀌어도 된다
하지만 모든 걸 무상태로 설계할 수는 없다
상태유지는 최소한만 사용
HTTP는 기본이 연결을 유지하지 않는 모델
일반적으로 초 단위 이하의 빠른 속도로 응답
서버 자원을 매우 효율적으로 사용할 수 있음
TCP/IP 연결을 새로 맺어야함 - 3way handshake 시간 추가
지금은 HTTP 지속연결로 문제 해결
HTTP/2, HTTP/3 에서 더 많은 최적화
