쿠키

Siwoo Pak·2021년 10월 21일
0

http/네트워크

목록 보기
10/12
  • 서버에서 클라이언트에 데이터를 저장하는 방법의 하나(쿠키,세션,토큰)
  • 클라이언트에서 서버로 쿠키를 이용해 데이터를 가져올 수 있음.
  • 쿠키를 이요하는 것은 단순히 서버에서 클라이언트에 쿠키를 전송하는 것만 의미하지 않고 클라이언트에서 서버로 쿠키를 전송하는 것도 포함됨.
  • 쿠키 옵션
    • domain: 쿠키의 도메인 옵션과 서버의 도메인이 일치해야만 쿠키 전송 가능:
    • path: 도메인을 제외한 경로
    • maxage or expires: 유효기간(예: 24 6 60 * 10000)
    • secure: https 프로토콜을 이용하여 통신하는 경우에만 쿠키 전송가능(true/false)
    • httpOnly: 자바스크립트에서 쿠키 접근가능 여부, true일때 접근불가 (true/false)
    • samesite: cross-origin 요청을 받은 경우 요청에서 사용한 메소드와 해당 옵션의 조합으로 서버의 쿠키 전송 여부를 결정하게 됨.
      • Lax: cross-origin 요청이면 'GET'메소드에 대해서만 쿠키 전송 가능
      • Strict: 요청이 아닌 경우, same-site인 경우에만
      • None: 항상 쿠키를 보내줄 수 있음. 다만 쿠키 옵션중 secure 옵션 필요.
  • express 사용시 쿠키 설정
app.use(
  session({
    secret: '@codestates',
    resave: false,
    saveUninitialized: true,
    cookie: {
      domain: 'localhost',
      path: '/',
      maxAge: 24 * 6 * 60 * 10000,
      sameSite: 'none',
      httpOnly: true,
      secure: true,
    },
  })
);
  • 위의 옵션을 지정한 다음 서버에서 클라이언트로 쿠키를 처음 전송하게 된다면 헤더에 set-cookie라는 프로퍼티에 쿠키를 담아 전송하게 됨. 이후 클라이언트 혹은 서버에서 쿠키를 전송해야 된다면 클라이언트는 헤더에 cookie라는 프로퍼티에 쿠키를 담아 서버에 쿠키를 전송
  • express-session을 모듈을 사용한다면 따로 프로퍼티를 지정해 주지 않아도 알아서 프로퍼티로 지정해 주서 보내줌
profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글