: 유저들의 효율적이고 안전한 웹 사용을 보장하기 위해 웹사이트에 널리 사용된다. 브라우저는 쿠키를 통해 접속자의 장치를 인식, 과거이용내역, 일부데이터를 저장한다.
: 사용자 인증이 유효한 시간을 명시할 수 있으며, 유효 시간이 정해지면 브라우저가 종료되어도 인증이 유지된다는 특징이 있다.
: 서버가 클러이언트로부터 HTTP요청을 수신할 때 응답과 함께 Set-Cookie라는 헤더를 전송 -> 클라이언트는 응답과 함께 Cookie HTTP헤더안에 포함되어 전달받는다.
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();
});
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();
});
클라이언트는 서버에 요청을 보낼시 자신이 보유하고 있는 쿠키를 자동으로 전달한다. 이때 쿠키는 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 });
});