배경
HTTP 프로토콜의 특징
- 비연결(Connectionsless) 지향 : 클라이언트가 요청을 서버에 보내고 서버가 적절한 응답을 클라이언트에 보내면 바로 연결이 끊긴다
- 상태정보 유지 안 함(Stateless) : 연결을 끊는 순간 클라이언트와 서버의 통신은 끝나며 상태 정보를 유지하지 않음
쿠키와 세션의 필요성
- HTTP 프로토콜은 위와 같은 특징으로 모든 요청 간 의존관계가 없음
- 즉, 현재 접속한 사용자가 이전에 접속했던 사용자와 같은 사용자인지 등을 알 수 있는 방법이 없음
- 클라이언트는와 서버는 매 요청마다 handshake를 해야한다는 단점이 있음
쿠키(Cookie)
개념
- 클라이언트 로컬에 저장되는 키와 값이 들어있는 파일
- 이름, 값, 유효 시간, 경로 등을 포함하고 있음
- 클라이언트의 상태 정보를 브라우저에 저장하여 참조함
구성 요소
- 쿠키의 이름(name)
- 쿠키의 값(value)
- 쿠키의 만료 시간(Expires)
- 쿠키를 전송할 도메인 이름(Domain)
- 쿠키를 전송할 경로(Path)
- 보안 연결 여부(Secure)