Cookie

이윤근·2021년 8월 5일
0

cookie

1)의미

:어떤 웹사이트에 들어갔을 때 서버가 일방적으로 클라이언트에 전달하는 작은 데이터
브라우저에 그 데이터 조각들을 저장해 놓았다가 동일한 서버에 재 요청시 저장된 데이터를 함꼐 전송한다.쿠키는 두 요청이 동일한 브라우저에서 들어왔는지 아닌지를 판단할 때 주로 사용한다. 이를 이용하면 로그인 상태 유지할 수 있다. 상태가 없는 HTTP 프로토콜에서 상태 정보를 기억시켜준다. 사용자 선호,테마 등 장시간 보존해야하는 정보 저장에 적합

2)전달방법

1.서버가 응답헤더에 쿠키의 값등을 클라이언트에 보내게됨
2.클라이언트가 요청할때마다 서버로 간다.

3)cookie Options

-domain :서버와 요청의 도메인이 일치하는 경우 쿠키 전송

-path : 서버의 요청의 세부경로가 일치하는 경우 쿠키 전송

-MaxAge or Expires : 쿠키의 유효기간 설정

-Secure :HTTPS 프로토콜에서만 쿠키 전송 여부결정 (HTTPS만 가능함)

-HttpOnly : 스크립트의 쿠키 접근 가능 여부 결정
true: 자바스크립트 쿠키 접근 불가
false: 자바스크립트 쿠키 접근 가능(XSS 공격에 취약)

-SameSite : CORS 요청의 경우 옵션 및 메서드에 따라 쿠키 전송 여부 결정
Lax: GET 메소드에 대해서만 쿠키를 전송할 수 있다.
Strict: Cross-Origin이 아닌 same-site인 경우에만 쿠키를 전송할 수 있다
None:항상 쿠키를 보내줄 수 있음. 다만 쿠키 옵션 중 Secure 옵션이 필요함

이러한 옵션들을 지정한 다음 서버에서 클라이언트로 쿠키를 처음 전송하게 된다면 헤더에 Set-Cookie라는 프로퍼티에 쿠키를 담아 쿠키를 전송하게 된다. 이후 클라이언트 혹은 서버에서 쿠키를 전송해야 한다면 클라이언트는 헤더에 Cookie라는 property에 쿠키를 담아 서버에 쿠키를 전송하게 된다.

4)쿠키를 이용한 상태 유지

쿠키를 통해서 stateless한 인터넷 연결을 Stateful하게 유지할 수 있다. 하지만 기본적으로 쿠키는 오랜 시간 동안 유지될 수 있고, 자바스크립트를 이용해서 쿠키에 접근할 수 있기 떄문에 쿠키에 민감한 정보를 담는 것은 위험하다.

profile
성실한코딩러

0개의 댓글