쿠키 개념 다시 잡기
쿠키 생성/사용/불러오기 - 정확하게 이해하기
JS, node.js코드 차이?
쿠키 삭제 공부 - 코드에 적용
i18n 연동 예시 찾아보기
쿠키 개념 다시 잡기
쿠키에 저장되는 정보(쿠키의 속성)
name : 쿠키의 이름
value : 쿠키에 저장된 값
masAge : 현재시간으로부터 만료 시간을 밀리초 단위로 설정
expires : 쿠키가 언제 삭제되는지 결정, 만료날짜를 GMT시간으로 설정
ex) expires=”wdy, DD-Mon-YYYY HH:MM:SS GMT”
쿠키에 만료일이 포함되어 있으면 영구적 쿠키로 간주
maxAge를 통해 지정된 만료일이 되면 쿠키가 제거됨
domain : 쿠키가 사용되는 도메인을 지정
ex) domain=neso.github.io
이 값이 현재 탐색중인 도메인과 일치하지 않을 경우, ‘타사 쿠키’로 간주되며 브라우저에서 거부
한 도메인에서 다른 도메인에 대한 쿠키를 사용하지 못하도록 설정
path : 쿠키를 반환할 경로를 결정, 디폴트 값은 ‘/’
ex) path=/
도메인의 루트 경로로 이동할 경우 쿠키가 전송됨
secure : 보안 연결 설정
HttpOnly : 웹 서버를 통해서만 쿠키에 접근할 수 있도록 설정
signed : 쿠키가 서명되어야 할 지를 결정
헤더란?
요청에 대한 정보를 담고 있다. 예를들어 post방식으로 보낼 것인지 get 방식으로 보낼 것인지에 대한 정보들이 담겨있다. 여기서 get 방식은 URL 뒤에 헤더에, post방식은 body에 데이터를 넣어서 전송
URL뒤에 “?”마크를 통해 헤더의 시작점을 알린다.
key=value의 형식으로 표현된다.
ex) id=cmk&pw=1234일 때, key는 id와 pw이며 value는 cmk와 1234이다.
쿠키가 어디에 어떻게 사용되는가 (동작 방식)
쿠키는 서버에서 생성된다. 브라우저가 특정 페이지를 서버에게 요청하면 그 때 서버에서 생성한다.
응답 메시지를 헤더에 쿠키를 넣어 브라우저로 전송을 하면 브라우저는 쿠키를 모두 저장한다.
이후 브라우저는 모든 요청때마다 자신이 가지고 있는 모든 쿠키들을 http요청 메시지에 추가하여 서버로 전송한다.
이후 서버는 받은 쿠키들로 정보를 얻어 여러가지 처리를 하게 된다.
쿠키 생성/사용/불러오기
아래 코드는 name = message, value = hello가 된다.
1 | Cookie cookie = new Cookie("message", "hello"); |
<자바스크립트>
함수를 이용한 쿠키 설정
1 2 3 4 5 6 7 8 | var setCookie = function(name, value, exp) { var date = new Date(); date.setTime(date.getTime() + exp*24*60*60*1000); document.cookie = namae + '=' + value + ';expires=' + date.toUTCString() + ';path=/'; };
setCookie('name', 'cmk', 7); // name=cmk, 7일 뒤 만료된다는 의미 setCookie('favorite', 'Blue', 7); // favorite=Blue, -1을 해주면 쿠키 삭제의 의미를 가짐 |
쿠키 얻기
1 2 3 4 5 6 | var getCookie = function(name) { var value = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); return value? value[2] : null; };
getCookie('name'); // 결과: cmk |
쿠키 삭제
1 2 3 4 5 | var deleteCookie = function(name) { document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; }
deleteCookie('name'); |
node.js에서의 쿠키생성 방법/사용 차이
req.cookies오브젝트에서 브라우저에 저장된 쿠키 값을 불러올 수 있으며, res.cookies() 메소드를 통해 쿠키값을 저장할 수 있다.
1 2 3 4 5 | var express = require('express'); var cookieParser = require('cookie-parser');
var app = express(); app.use(cookieParser()); |
쿠키 생성하기
{options}에는 쿠키의 속성값을 설정해주면 된다.
1 2 3 4 | app.get('/login', function(req,res){ res.cookie(key, value, {options}); res.redirect('/'); }); |
쿠키 읽기
1 2 3 | app.get('/current', function(req,res) { res.send('cookie : ' + req.cookies.key); }); |
쿠키 업데이트
1 2 3 | app.get('/current’, function(req,res) { res.cookie(key, newVal); }); |
쿠키 삭제
1 2 3 | app.get('/logout', function(req,res) { res.clearCookie(key, {path:'/process'}); }); |
'동계현장실습' 카테고리의 다른 글
19.01.22 화요일 (0) | 2019.01.22 |
---|---|
19.01.17 목요일 (1) | 2019.01.18 |
19.01.14 월요일 (0) | 2019.01.14 |
19.01.11 금요일 (0) | 2019.01.11 |
19.01.10 목요일 (0) | 2019.01.10 |