HTTP의 약점을 보완하기 위해 사용
→ 비연결성을 보완하기 위한 방안
비연결성 (Connectionless)
클라이언트가 서버의 응답을 받으면 연결을 끊는 특성
무상태성(Stateless)
서버와 클라이언트 사이의 통신이 끝나면 상태를 유지하지 않는 특성
서로 상태를 모르는 상황이면 계속해서 로그인 등의 인증 과정을 반복해야함
- 위와 같은 두 특성 때문에 HTTP에서는 모든 요청 간의 의존성이 없음 → 현재 접속자가 이전의 접속자와 같은 사람인지 알 수 없음
- 연결을 유지하지 않는 것이 리소스 낭비를 줄이는 장점은 있지만 통신할 때 마다 새로 연결해야하기 때문에 자원이 낭비됨
- 이전 요청과 현재 요청이 같은 사용자인지 알기 위해서는 상태를 유지해야 함
쿠키
- 클라이언트 로컬에 저장되는 key-value 형태의 작은 데이터 파일
- 사용자 인증의 유효기간을 설정할 수 있고 유효 기간 동안은 브라우저가 종료되어도 유지됨
- 클라이언트의 상태 정보를 로컬에 저장하고 참조 (브라우저에 저장)
- request시 따로 설정하지 않아도 자동으로 헤더를 통해 서버로 전달
세션
- 쿠키를 기반으로 하지만 사용자 정보를 서버에서 관리