- 쿠키 : 서버에서 클라이언트에 데이터를 저장하는 방법의 하나
> 단순히 서버에서 클라이언트에 쿠키를 전송하는 것만 의미하지 않고 클라이언트에서 서버로 쿠키를 전송하는 것도 포함
>단, 데이터를 저장한 이후 아무 때나 데이터를 가져올 수 없음. > 특정 조건을 충족해야 함
★ 쿠키 옵션
1. Domain
- www.google.com과 같은 서버에 접속할 수 있는 이름
서브 도메인 : www
도메인 : google.com
> 도메인 정보가 존재한다면 클라이언트에서는 쿠키의 도메인 옵션과 서버의 도메인이 일치해야만 쿠키를 전송
2. Path
: 라우팅할 때 사용하는 경로
> path를 전부 만족하는 경우 요청하는 Path가 추가로 더 존재하더라도 쿠키를 서버에 전송
3. MaxAge or Expires
: 쿠키가 유효한 기간을 정하는 옵션
: Expires 은 MaxAge와 비슷
: 지정된 시간, 날짜를 초과하게 되면 쿠키는 자동으로 파괴
: 두 옵션이 모두 지정되지 않는 경우에는 브라우저의 탭을 닫아야만 쿠키가 제거
4. Secure
: 쿠키를 전송해야 할 때 사용하는 프로토콜에 따른 쿠키 전송 여부를 결정
: 옵션이 true로 설정된 경우, 'HTTPS' 프로토콜을 이용하여 통신하는 경우에만 쿠키를 전송
5. HttpOnly
: 자바스크립트에서 브라우저의 쿠키에 접근 여부를 결정
: 옵션이 true로 설정된 경우, 자바스크립트에서는 쿠키에 접근이 불가
: 명시되지 않는 경우 기본으로 false
: 옵션이 false인 경우 자바스크립트에서 쿠키에 접근이 가능하므로 'XSS' 공격에 취약
6. SameSite
: Cross-Origin 요청을 받은 경우 요청에서 사용한 메소드와 해당 옵션의 조합으로 서버의 쿠키 전송 여부를 결정
: Lax - Cross-Origin 요청이면 'GET' 메소드에 대해서만 쿠키를 전송
: Strict - Cross-Origin이 아닌 same-site 인 경우에만 쿠키를 전송
: None - 항상 쿠키를 보내줄 수 있습니다. 다만 쿠키 옵션 중 Secure 옵션이 필요
> 서버에서 클라이언트 : Set-Cookie라는 프로퍼티에 쿠키를 담아 쿠키를 전송,
클라이언트 혹은 서버에서 쿠키를 전송해야 한다면 : 클라이언트는 헤더에 Cookie라는 프로퍼티에 쿠키를 담아 서버에 쿠키를 전송
'DevOps BootCamp > HTTP' 카테고리의 다른 글
HTTPS (0) | 2023.03.26 |
---|---|
REST API (0) | 2023.03.22 |
HTTP 주요 헤더 (0) | 2023.03.22 |