쿠키

기초/HTTP|2021. 10. 14. 21:22

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

댓글()