Set-Cookie를 사용하여 쿠키를 생성
var http = require('http');
http.createServer(function (req,res) {
// 성공시(200)
res.writeHead(200,{
"Set-Cookie" : ['yummy-cookie=choco','tasty_cookie=berry']
});
}).listen(3000);
현재 이러한 코드를 짜고 3000으로 들어가서 네트워크 탭에 Headers에 response Headers에 들어가면 Set-Cookie가 두개가 있을 것이다. 그리고 Request-cookie에는 아직 없음 res.writeHead 코드를 주석처리하고 리로드 하면 request Headers에 쿠키가 남아있음 또한 response headers는 쿠키 없음.즉 이것은 이 웹브라우저는 Set-Cookie값을 통해 서버로 전송하고 있는 것.
이 쿠키는 없앨려면 application tab에 cookie에서 삭제하면됨. 또한 설정 시간 Max-Age에 따라 쿠키가 남아있음.
Set-Cookie가 지금 두개라서 배열로 하나일때는 그냥 ''으로 하면된다.
npm i cookie 설치하기
var cookie = require('cookie');
http.createServer(function (req,res) {
// 성공시(200)
var cookies ={}
if(req.headers.cookie !== undefined) {
cookies = cookie.parse(req.headers.cookie);
}
res.writeHead(200,{
"Set-Cookie" : ['yummy-cookie=choco','tasty_cookie=berry']
});
}).listen(3000);
cookie 라이브러리 사용하여 cookie.parese를 이용해 requset headers에서 받아온 cookie를 넣어주면 객체값으로 cookie가 불러와짐 즉 위에서 입력한 cookie.yummi_cookie 를 입력하면 choco가 나옴 그리고 cookie가 없을 수 있으니 cookies를 빈객체ㅐ로 만든 훟 request Header에 쿠키가 있으면 넣어주도록 설계
웹브라우저 끄면 없어져있음
웹브라우저 껏다켜도 유지(Max-Age 있으면)
Max-Age : 쿠키가 살아있는 시간
res.writeHead(200,{
"Set-Cookie" : ['yummy-cookie=choco','tasty_cookie=berry'
,`Permanenet=cookies; Max-Age=${3600}`]
} );
Set-Cookie: sessionId=abc123; Secure
목적: 네트워크 중간에서 쿠키 탈취(세션 하이재킹) 방지
Set-Cookie: sessionId=abc123; HttpOnlyPath : 해당 디렉토리 안에서만 지정하고 싶을떄 사용함 그 아래의 주소도 가능
기본값은 / (root)
Set-Cookie: sessionId=abc123; Path=/cookie
domain : 쿠키를 사용할 도메인 범위를 지정
Set-Cookie: sessionId=abc123; domain =example.com
| 요청 도메인 | 쿠키 전송 |
|---|---|
| example.com | ✅ |
| www.example.com | ✅ |
| api.example.com | ✅ |