본문 바로가기
javascript

[웹 기본개념] 쿠키

by jinbro 2017. 3. 28.

[쿠키]

  • HTTP는 상태가 없음 : 끝난 HTTP 통신(이전)의 상태를 알 수 없음(예시 : 로그인 했는지 안했는지 정보)

  • 넷스케이프에서 쿠키(이전 통신정보 기억하기)를 만듬

  • 로그인 정보 기억, 쇼핑 장바구니 목록 등을 가져올 수 있음 

  • 웹서버에 보낸, 받은 정보를 웹브라우저가 가지고 있다가 서버에 요청시(Request) 이전 상태값(쿠키)을 전송함

  • 웹브라우저가 가진 쿠키 보기 : 개발자도구 > 페이지.html 도큐먼트 파일 > Request Headers > Cookie -서버로 전송할 값


  • 서버가 받고 보내는 쿠기 : 개발자도구 > 페이지.html 도큐먼트 파일 > Response Headers > Set-Cookie - 웹브라우저로 전송할 값


  • 쿠키 유효 범위 밖

    1. 유저가 요청하는 주소값(사이트 주소)이 달라질 경우(라우트 설정과 다른 유저 요청) 쿠키를 서버에 전송하지않음

    2. 쿠키 삭제(크롬개발자도구 > Application > Cookies > 웹사이트 도메인 > 해당 쿠키 삭제)시 이전 정보가 모두 날아감

    3. 브라우저를 아예 새로열었을 경우 전혀 다른 브라우저이기때문에 옆 브라우저 창 쿠키가 유지되지않음

  • 쿠기 실습해보기(서버언어 : nodejs - 각 서버언어의 공식문서를 보면 쿠키 설정 어떻게 하는지 알 수 있음)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* 웹서버 : nodejs express */
var express = require('express')
 
/* 쿠키를 사용하기위해 필요한 middleware(라이브러리) */
var cookieParser = require('cookie-parser')
 
var app = express();
app.use(cookieParser())
 
 
 
/* 
    웹서버 라우트 지정 : 특정주소 접근(request)시 서버 응답(response) 설정 
    웹서버(환경 : nodejs express) 쿠키 설정 : http://expressjs.com/ko/4x/api.html > Request > req.cookies  
*/
app.get('/count'function(req, res){
    /* 응답 시 쿠키 설정 : (쿠키이름, 쿠키값 : String ) - 자세한 사용방법은 공식문서 참고 */
if(!req.cookies.cart){
/* 웹브라우저가 전송한 쿠기가 존재하지않는다면 */
var count = 0
} else {
var count = parseInt(req.cookies.cart)
}

res.cookie('count'count + 1
 
    /* 재설정한 상태값(쿠키)을 응답 시 같이 보냄 */
    res.send('count : ' + count)
})
 
 
 
/* 웹서버 연결 */
app.listen(3000function(){
    console.log("Connect! 3000 port"
})
 
cs





'javascript' 카테고리의 다른 글

[웹 기본개념] 세션  (0) 2017.04.05
[자바스크립트] this 바인딩  (0) 2017.03.31
[웹 기본개념] URL / URI / REST API  (0) 2017.03.24
[자바스크립트] scope  (0) 2017.03.21
[웹 기본개념] HTTP 통신  (0) 2017.03.21

댓글