Recent Posts
Recent Comments
«   2024/05   »
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 31
Tags
more
Today
Total
관리 메뉴

고리타분한 개발자

쿠키 본문

JavaScript/Basic Web Concepts

쿠키

sunlee334 2017. 11. 26. 05:02

쿠키

  • HTTP는 상태가 없음: 끝난 HTTP통신(이전)의 상태를 알 수 없음(예시: 로그인 했는지 안했는지에 대한 정보)
  • 넷스케이프에서 쿠키(이전 통신정보 기억하기)를 만듬
  • 로그인 정보 기억, 쇼핑 장바구니 목록 등을 가져올 수 있음
  • 웹서버에 보낸, 받은 정보를 웹브라우져가 가지고 있다가 서버에 요청시(Request) 이전 상태값(쿠기)을 전송함
  • 웹브라우져가 가진 쿠기: 개발자도구 > 페이지.html 도큐먼트 파일 > Request Headers > Cookie - 서버로 전송할 값
  • 서버가 받고 보내는 쿠기: 개발자도구 > 페이지.html 도큐먼트 파일 > Response Headers > Set-Cookie - 웹브라우져로 전송할 값
  • 쿠키 유효범위 밖
    1. 유저가 요청하는 주소값(사이트 주소)이 달라질 경우(라우트 설정과 다른 유저 요청) 쿠키를 서버에 전송하지 않음
    2. 쿠키 삭제(개발자도구 > Application > Cookies > 쿠키삭제)시 이전 정보가 모두 삭제됨
    3. 브라우져를 새로 열었을 경우 전혀 다른 브라우져이기 때문에 옆 브라우져 창 쿠키가 유지되지 않음
  • 실습
/* 웹서버 : 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(3000, function(){
console.log("Connect! 3000 port")
})

참고자료

  • http://jinbroing.tistory.com/70?category=697142


'JavaScript > Basic Web Concepts' 카테고리의 다른 글

세션  (0) 2017.12.05
URL / URI / REST API  (0) 2017.11.26
HTTP 통신이란?  (0) 2017.11.26
Comments