HTTP는 응용계층의 프로토콜이며, TCP는 전송계층의 프로토콜입니다.

HTTP는 무상태성을 지향하는 반면, TCP는 대표적인 상태지향 프로토콜입니다.

TCP는 연결과정에서 송신된 패킷헤더를 파싱하여, 앞으로 수신해야할 데이터의 크기(window)를 저장하게 됩니다. 그리고 해당 크기의 데이터가 모두 수신될 때 까지 Client와 세션을 유지하게 됩니다.

즉, 송수신과정에서 상호간의 상태를 유지하고 데이터를 주고받게 됩니다.

반면 HTTP는 기본적으로 무상태성을 지향합니다. 따라서 인증 인가의 이슈는 빈번하게 발생할 수 밖에 없습니다. 그래서 그 과정에서 세션, 쿠키, JWT등 다양한 인증방법에 대한 고민이 있어왔죠.