본문 바로가기
Programming/Node.js

[Node.js] 쿠키 만들기

by Bam_t 2021. 12. 1.
728x90

제과 포스팅이 아닙니다?!

2021.11.03 - [Programming/CS] - 쿠키와 세션

 

쿠키와 세션

인터넷을 하다보면 가끔씩 우리는 인터넷 기록 삭제를 할 때가 있습니다. 이때 종종 접하는 단어가 '쿠키 삭제'로 쿠키를 지우는 것이라고 합니다. 또 연결을 하다보면 세션이라는 단어도 많이

bamtory29.tistory.com


1. 쿠키와 세션 간략하게

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

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

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

 

 

 

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

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

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!'});

콘솔에는 쿠키 내용이 잘찍혔고요. 이것을 실제 브라우저의 개발자도구에서 확인이 가능합니다.

개발자도구 -> 애플리케이션 -> 저장용량의 쿠키 탭에가면 볼 수 있습니다.

 

 

3. 세션

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

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

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

728x90

'Programming > Node.js' 카테고리의 다른 글

[npm] npm 명령어 몇 가지  (0) 2021.12.03
[Node.js] package.json 알아보기  (0) 2021.12.02
[Node.js] REST  (0) 2021.12.01
[Node.js] 첫 서버와 Hello world!  (0) 2021.11.30
[Node.js] 노드의 모듈  (0) 2021.11.30

댓글