Cookie

katsukichi·2021년 4월 14일
0

CodeStates_IM

목록 보기
44/48

쇼핑몰에서 장바구니가 유지되는것..

HTTP는 무상태성(stateless)인데 어떻게 가능하지 ?

쿠키란 ?

  • 서버가 웹브라우저에 정보를저장하고 불러올수있는 수단

  • 해당 도메인에 대해 쿠키가 존재하면, 웹브라우저는 도메인에게 http요청시 쿠키를 함께 전달

어떤걸 쿠키해야할까

쿠키의 특성은

장시간 보존해야하는 정보 저장에 적합

사용자선호,테마 등등..

30일동안 로그인상태유지 등등 ..

로그인 로그아웃을 위해서 인증정보를 쿠키에 저장하는경우가 많다.

쿠키는 보안상의 이유로 무조건 암호화해서 넣어야한다.

이 마저도 조금 불안하다.

"고객님의 쿠키정보를 허락하는가?" 이런팝업을 본적도있다.

쿠키 전달 방법


Set-Cookie: UserId=kimcoding path = / Expire=...

Set-Cookie: email= ...path / Expire=...
서버가 클라이언트에게


그이후 클라이언트는 들고있는 쿠키를

계속 자동으로 함께 전송된다.

쿠키 옵션

  • Domain : 서버와 요청의 도메인이 일치하는 경우 쿠키 전송
  • Path : 서버와 요청의 세부경로가 일치하는 경우 쿠키 전송

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

    • 피시방에서 내가 로그아웃을 안한경우, 유효기한을 지정해주면 일정 시간후 자동 소멸!
  • HttpOnly : 스크립트의 쿠키 접근 가능 여부 결정

    • <script>태그로 접근가능한것을 막는다.
  • Secure : HTTPS 프로토콜에서만 쿠키 전송 여부 결정

    • 해당옵션이 true 인경우 https 프로토콜을 이용하여 통신하는경우에만 쿠키를 전송할수있다.
  • SameSite : CORS 요청의 경우 ㅇ옵션 및 메서드에 따라 쿠키 전송 여부 결정

    • CSRF 란? 간단하게 설명하면 : cross site request forgery ?? CSRF요청을 막을수있다.
    • 옵션에따른 서버의 쿠키전송 여부
    • Lax : Get메서드 요청만 쿠키전송가능
    • Strict : 쿠키전송 불가
    • None : 모든 메서드 요청에 대해 쿠키 전송가능
      • sameSite="none" 옵션은 Secure쿠키 옵션이 필요하다.
profile
front-back / end developer / Let's be an adaptable person

0개의 댓글