[Node.js] 쿠키

Bam·2022년 3월 8일
0

Node.js

목록 보기
6/19
post-thumbnail
post-custom-banner

쿠키와 세션에 대한 자세한 정보는 이 포스트를 참조해주세요.

쿠키와 세션

위의 포스트에서 쿠키와 세션을 정리해두었습니다. 그래도 짧게 설명하고 넘어가겠습니다.

쿠키는 웹 페이지 방문 시 생기는 정보들을 담아서 브라우저 자체에 저장되는 임시 저장 파일입니다. 즉, 클라이언트측에 저장되는 사용자 정보입니다.

세션은 클라이언트의 연결을 확인하고 연결된 시간동안 클라이언트의 정보와 설정 등을 유지하는 것 입니다. 세션은 서버에 저장되는 사용자 정보입니다.

노드에서 쿠키 만들고 보내기

노드를 이용해서 서버에서 쿠키를 만들고 보내보겠습니다.

const http = require('http');

http.createServer((req, res) => {
    console.log(req.headers.cookie);

    res.writeHead(200, {'Set-Cookie': 'firstCookie=Hello Cookie!'});
    res.end();
}).listen(8080);

우선 서버를 만들고 쿠키를 요청했습니다. 쿠키는 요청과 응답의 헤더에 담겨져서 보내기 때문에 요청객체의 헤더에서 불러와서 console.log를 찍었습니다.

console.log(req.headers.cookie);

이제 우리는 서버측에서 응답에 쿠키를 담아야합니다. 그래서 writeHead에 쿠키를 담습니다. 쿠키 여러개를 만들고 싶다면 쿠키 사이에 세미콜론;을 넣어서 구분합니다. 이 응답을 받은 브라우저는 firstCookie=Hello Cookie!라는 쿠키를 담게 됩니다. 확인해볼까요?

res.writeHead(200, {'Set-Cookie': 'firstCookie=Hello Cookie!'});

콘솔에는 쿠키 내용이 잘찍혔고요. 이것을 실제 브라우저의 개발자도구에서 확인이 가능합니다.브라우저에서 쿠키는 개발자도구 -> 애플리케이션 -> 저장용량의 쿠키 탭에가면 볼 수 있습니다.

세션

쿠키는 브라우저에 저장되는 정보이기 때문에 보안상으로 좋지도 못하고, 개발자도구에서 조작이 가능합니다. 그렇기에 서버에 데이터를 저장하고 사용자 인증을 받아서 정보를 주고받는 세션을 이용하게 됩니다. 하지만 세션도 그냥 구현하면 클라이언트에 정보가 공개 되므로, 세션 쿠키라는 것을 만들어서 서버와 통신하게 됩니다.

쿠키와 세션, 세션 쿠키에 대한 설명은 맨 위 포스트에 따로 설명했습니다.

직접 세션을 구현하면 여러 보안상의 문제점이 있기 때문에 안정적인 모듈을 불러와서 쓰게되는데, 세션 모듈이용방법은 추후에 다시 다루도록 하겠습니다.

post-custom-banner

0개의 댓글