먼저 HTTP 프로토콜의 특성이자 약점을 보완하기 위해서 쿠키 또는 세션을 사용합니다.
텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다.
웹 페이지를 방문할 때마다 컴퓨터는 HTTP(Hypertext Transfer Protocol)를 사용하여 인터넷 어딘가에 있는 다른 컴퓨터에서 해당 페이지를 다운로드한다.
HTTP/0.9 : GET 메서드만 지원, HTTP 헤더 없음
HTTP/1.0 : 메서드, 헤더 추가(⇒ HTML 이외 다른 파일 전송 가능)
HTTP/1.1 : 현재 HTTP/1.1 주로 사용, 우리에게 가장 중요한 버전
HTTP/2 : 성능 개선
HTTP/3 : 진행중, TCP 대신에 UDP 사용, 성능 개선
HTTP/1.1, HTTP/2는 TCP 기반이며 HTTP/3는 UDP 기반 프로토콜이다.
둘다 전송 프로토콜이다.
TCP
UDP
1. HTTP 1.1
단점
2. HTTP 2.0
성능 뿐만 아니라 속도면에서도 월등하게 빠르다.
Multiplexed Streams(하나의 커넥션에 여러 개의 메세지를 동시에 주고 받을 수 있음)
Stream Prioritization (요청 리소스간 우선순위 설정)
Server Push (HTML 문서상에 필요한 리소스를 클라이언트 요청없이 보내줄 수 있음)
Header Compression (Header 크기를 압축 하여 전송)
TCP/ IP를 이용하는 응용 프로토콜입니다.
(컴퓨터와 컴퓨터간에 데이터를 전송 할 수 있도록 하는 장치로 인터넷이라는 거대한 통신망을 통해 원하는 정보(데이터)를 주고 받는 기능을 이용하는 응용 프로토콜)
HTTP 프로토콜 환경은 "connectionless, stateless"한 특성을 가지기 때문에 서버는 클라이언트가 누구인지 매번 확인해야합니다. 이 특성을 보완하기 위해서 쿠키와 세션을 사용하게됩니다.
HTTP는 연결을 유지하지 않는 프로토콜이기 때문에 요청/응답 방식으로 동작합니다.
클라이언트가 요청을 한 후 응답을 받으면 그 연결을 끊어 버리는 특징
통신이 끝나면 상태를 유지하지 않는 특징
쿠키와 세션을 사용하지 않으면 쇼핑몰에서 옷을 구매하려고 로그인을 했음에도, 페이지를 이동할 때 마다 계속 로그인을 해야 합니다.
쿠키와 세션을 사용했을 경우, 한 번 로그인을 하면 어떠한 방식에 의해서 그 사용자에 대한 인증을 유지하게 됩니다.