userId=user-1321;userName=sparta
와 같이 문자열 형식으로 존재하며 쿠키 간에는 세미콜론(;)
으로 구분됩니다.서버가 클라이언트의 HTTP 요청(Request)을 수신할 때, 서버는 응답(Response)과 함께 Set-Cookie
라는 헤더를 함께 전송할 수 있습니다. 그 후 쿠키는 해당 서버에 의해 만들어진 응답(Response)과 함께 Cookie HTTP 헤더안에 포함되어 전달받습니다.
그렇다면 ‘/set-cookie’
API를 호출했을 때 name=sparta
라는 쿠키를 할당하는 API를 만들어 볼까요?
Set-Cookie
를 이용하여 쿠키 할당하기app.get("/set-cookie", (req, res) => {
const 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();
});
res.cookie()
를 이용하여 쿠키 할당하기req.headers.cookie
에 들어있습니다. req.headers
는 클라이언트가 요청한 Request의 헤더를 의미합니다. /get-cookie
에 접근했을 때, 설정된 쿠키를 출력하는 API를 만들어볼까요? app.get("/get-cookie", (req, res) => {
const cookie = req.headers.cookie;
console.log(cookie); // name=sparta
return res.status(200).json({ cookie });
});