쿠키
IP주소와 브라우저 정보 외에 정확히 누가 보낸 요청인지 알고 싶다면?
→ 로그인을 구현하면 된다. → 쿠키와 세션이 필요함
쿠키?
key(속성명) = 값(속성명) 형태의 쌍
매 요청마다 서버에 실어서 보낸다.
서버는 쿠키를 읽어서 누구인지 파악한다.
어떻게 구현할 수 있는가?
writeHead : 요청 헤더에 입력하는 메서드
→ Set-Cookie : 브라우저에게 쿠키를 설정하라고 명령함
const http = require("http");
http
.createServer((req, res) => {
console.log(req.url, req.headers.cookie);
res.writeHead(200, { "Set-Cookie": "mycookie=test" });
//한 번 쿠키를 넣어 주면 그 다음부터는 브라우저가 알아서 쿠키를 넣어서 요청한다.
res.end("Hello Cookie!");
})
.listen(8083, () => {
console.log("8083포트");
});
위 파일을 노드로 실행하고 localhost:8083으로 접속하면 개발자 도구에서 쿠키를 확인할 수 있다.
*참고 : 크롬 브라우저에서는 자동으로 파비콘을 찾기 때문에 favicon.ico 요청도 떠 있음.
Set-Cookie의 다양한 옵션
쿠키명=쿠키값 : 기본적인 쿠키의 값. mycookie = test, myname = doodoo와 같이 설정한다.
Expires=날짜 : 쿠키가 만료되는 기한(날짜형식). 이 기한이 지나면 쿠키가 제거된다.
Expires=날짜 : 기본값은 클라이언트가 종료될 때까지.
Max-age=초 : Expires와 비슷하지만 날짜 대신 초를 입력할 수 있다.
Max-age=초 : 해당 시간이 흐르면 쿠키가 제거된다. Expires보다 우선시함.
Domain=도메인명 : 쿠키가 전송될 도메인을 특정할 수 있다. 기본값은 현재 도메인.
Path=URL : 쿠키가 전송될 URL을 특정할 수 있다. 기본값은 '/' 이고, 이 경우 모든 URL에서 쿠키를 전송할 수 있다.
Secure : HTTPS일 경우에만 쿠키가 전송된다.
HttpOnly : 설정시 자바스크립트에서 쿠키에 접근할 수 없다. 쿠키 조작을 방지하기 위해 가급적 설정하는 것이 좋다.
'기초 > HTTP' 카테고리의 다른 글
세션 (0) | 2021.10.19 |
---|---|
REST API (보충) (0) | 2021.10.12 |
*REST API 연습, RESTful?? (0) | 2021.08.09 |