쿠키
HTTP는 Stateless 프로토콜! 그렇지만?
HTTP는 기본적으로 스테이트리스 프로토콜 → 모든 HTTP 요청 메시지를 독립된 메시지로 간주
•
쿠키는 HTTP의 stateless 특성을 보완하기 위한 대표적 수단
•
서버에서 생성 & 클라이언트 측에 저장되는 <이름, 값> 쌍 형태의 데이터
(이름,값 외에도 추가적인 속성값도 보유 가능)
◦
Name, Value, Domain, Path, Expires / Max-Age
•
서버는 쿠키를 생성해 클라이언트에 전송, 클라이언트는 쿠키를 저장해 두었다가 이후 같은 서버에 요청을 보낼 때 요청 메시지에 쿠키를 포함해 전송
◦
서버 → 클라이언트 : 응답 메시지의 Set-Cookie 헤더 활용
•
여러 쿠키를 전달할 때는 여러 개의 Set-Cookie 헤더를 사용하기도 함
•
; 를 활용해 쿠키의 속성을 명시 가능
◦
클라이언트 → 서버 : 요청 메시지의 Cookie 헤더 활용
유의사항
특정 서버로부터 쿠키를 전달받았다면 다음부터 해당 서버에 요청을 보낼 때 전달받은 쿠키를 자동으로 전송한다는 점
여러 쿠키 속성
•
domain, path : 쿠키를 전송할 도메인과 경로를 제한 가능
•
Expires : 쿠키의 만료시점 명시
◦
[요일, DD-MM-YY HH:MM:SS GMT] 형식
•
Max-Age : 쿠키의 유효기간 명시
◦
초 단위 유효기간
•
Secure : HTTPS를 통해서만 쿠키 송수신이 가능하도록 하는 속성
•
HttpOnly : JS를 통한 쿠키의 접근을 제한하고, 오직 HTTP 송수신을 통해서만 쿠키에 접근하도록 하는 방식
참고) 웹 스토리지 : 로컬 스토리지와 세션 스토리지
캐시
응답받은 자원의 사본을 임시 저장하여 불필요한 대역폭 낭비와 응답 지연을 방지하는 기술

