TIL-20230619

민태영·2023년 6월 19일
0

쿠키(cookie)란

: 유저들의 효율적이고 안전한 웹 사용을 보장하기 위해 웹사이트에 널리 사용된다. 브라우저는 쿠키를 통해 접속자의 장치를 인식, 과거이용내역, 일부데이터를 저장한다.

1) 장점

: 사용자 인증이 유효한 시간을 명시할 수 있으며, 유효 시간이 정해지면 브라우저가 종료되어도 인증이 유지된다는 특징이 있다.

2) 단점

  • 데이터를 여러 브라우저에서 공유 할 수 있기때문에 보안이 취약하다

쿠키만들기

: 서버가 클러이언트로부터 HTTP요청을 수신할 때 응답과 함께 Set-Cookie라는 헤더를 전송 -> 클라이언트는 응답과 함께 Cookie HTTP헤더안에 포함되어 전달받는다.

1) Set-Cookie를 이용하여 쿠키할당

app.get("/set-cookie", (req, res) => {
  let expire = new Date();
  expire.setMinutes(expire.getMinutes() + 60); // 만료 시간을 60분으로 설정합니다.

  res.writeHead(200, {
    'Set-Cookie': `name=sparta; Expires=${expire.toGMTString()}; HttpOnly; Path=/`,
  });
  return res.status(200).end();
});

2) res.cookie()를 이용하여 쿠키할당

app.get("/set-cookie", (req, res) => {
  let expires = new Date();
  expires.setMinutes(expires.getMinutes() + 60); // 만료 시간을 60분으로 설정합니다.

  res.cookie('name', 'sparta', {
    expires: expires
  });
  return res.status(200).end();
});

3) req를 이용하여 쿠키 접근하기

클라이언트는 서버에 요청을 보낼시 자신이 보유하고 있는 쿠키를 자동으로 전달한다. 이때 쿠키는 Request header에 포함되어있다.
서버는 받은 요청안에 있는 쿠키에 접근을 할때 req.headers.cookie로 접근한다.

app.get("/get-cookie", (req, res) => {
  const cookie = req.headers.cookie;
  console.log(cookie); // name=sparta
  return res.status(200).json({ cookie });
});
profile
꿈을 꾸는 개발자

0개의 댓글