HTTP/1.1, HTTP/2는 TCP 기반
이며 HTTP/3는 UDP 기반
프로토콜이다.
상태유지
무상태
모든 것을 무상태로 설계할 수 있는 경우도 있고 없는 경우도 있다. 로그인이 필요 없는 단순한 서비스 소개 화면 같은 경우엔 무상태로 설계할 수 있지만 로그인이 필요한 서비스라면 로그인했다는 상태를 서버에 유지해야 하기 때문에 브라우저 쿠키, 서버 세션, 토큰 등을 이용해 상태를 유지해야 한다.
TCP/IP는 기본적으로 연결을 유지하여 서버의 자원이 계속 소모되지만, 비연결성을 가지는 HTTP에서는 실제 요청을 주고받을 때만 연결을 유지하고 응답을 주고 나면 TCP/IP 연결을 끊어 최소한의 자원으로 서버 유지를 가능하게 한다.
웹 브라우저로 사이트를 요청하면 HTML뿐만 아니라 자바스크립트, css 추가 이미지 등 많은 자원이 함께 다운로드 된다. 해당 자원들을 각각 보낼 때마다 연결 끊고 다시 연결하고를 반복하는 것은 비효율적이기 때문에 지금은 HTTP 지속 연결로 문제를 해결한다.
HTTP 초기에는 각각의 자원을 다운로드하기 위해 연결과 종료를 반복해야 했다.
HTTP 지속 연결에서는 연결이 이루어지고 난 뒤 각각의 자원들을 요청하고 모든 자원에 대한 응답이 돌아온 후에 연결을 종료한다.