ecsimsw

Cookie 본문

Cookie

JinHwan Kim 2019. 1. 9. 23:45

Cookie

  • Cookie is..
    - 쿠키는 사용자가 웹 사이트를 처음 방문할 때 웹 사이트에서 사용자 컴퓨터의 하드 디스크에 저장해 놓는 작은 파일이다. 이것으로 웹 사이트는 사용자의 재방문을 확인할 수 있다. 사용자가 페이지를 얼마나 자주 방문하는지, 어느 정보에 관심이 많은지를 파악하여 콘텐츠를 제공하고, 온라인 쇼핑몰에서 로그인 없이도 장바구니에 물건을 담거나, 로그인 후 새로고침에도 로그아웃이 되지 않아도 되는 것은 서버는 쿠키를 전송하고 클라이언트는 그것을 받아 저장하고 방문 시 서버로 다시 전송하기 때문이다.
  • Set-Cookie
    - 쿠키는 response,request 각각의 head와 body 중 head에 저장되고, head에서 불러온다.
    - 쿠키는 'key - value' 형식이다. 서버로부터 쿠키가 오면 웹 브라우저는 쿠키를 저장했다가 요청시마다 쿠키를 동봉해서 보내준다. 브라우저는 쿠키가 있다면 자동으로 동봉해서 보내주므로, 서버에서 브라우저로 쿠키를 전송할 때만 처리하면 된다.
    아래 코드를 통해 서버가 생성됐을때 접속 클라이언트에게 쿠키를 set하고, 다음번 접속시에도 동일한 쿠키가 저장되있나 확인하였다. //Set-Cookie: 'cookie-name=cookie-value' var http = require('http'); http.createServer(function(request, response){ response.writeHead(200, { 'Set-Cookie':['class=kim','id = jin'] }); }).listen(3000); writeHead 메소드에 첫번째 인자에 상태코드를 넣어주고, 두번째 인자로 객체를 대입한다. 해당 객체는 key로 Set-cookie를 받고 주석과 같이 'cookie name = cookie value'를 value로 받아 쿠키를 생성한다.
  • Get-Cookies
    - 웹브라우저내에 저장되어 서버에 요청과 함께 전송되는 쿠키를 서버측에서 읽기 위해선 request.headers.cookie를 읽으면 된다. 이를 직접 읽으면 Cookie: yummy_cookie=choco; tasty_cookie=strawberry와 같이 쿠키 값 자체가 출력되고 이를 용이한 처리를 위해 npm - cookie module을 install한 후 모듈의 cookie.parse 메소드를 사용하여 직접 객체로 변환하였다. var http = require('http'); var cookie = require('cookie'); http.createServer(function(request, response){ let cookies = cookie.parse(request.headers.cookie); console.log(cookies); }).listen(3000); 이후에는 cookies.class 혹은 cookies.id 등 반환 받은 cookies 객체의 키값을 활용하여 쿠키 값을 더 쉽게 처리할 수 있다.

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

Routing  (0) 2019.01.11
Middleware  (0) 2019.01.11
Express framework  (0) 2019.01.10
Npm  (0) 2019.01.10
Hello Node!  (0) 2019.01.09
Comments