쿠키와세션

이영광·2021년 9월 11일
0

클라이언트에서 보내는 요청의 큰단점: 누가 요청을 보내는지 모른다는것
서ㄴ
물론 요청을 보내는 ip주소나 브라우저의 정보를 받아올 수는 있습니다.
하지만 여러 컴퓨터가 공통적으로 ip주소를 가지거나, 한 컴퓨터를 여러 사람이 사용할수도 있다.

그렇다면 로그인을 구현하면 되지 않느냐고 생각할 수도 있다. 하지만 로그인을 구현하려면 쿠키와 세션에 대해 알고 있어야 한다
우리가 웹 사이트에 방문해서 로그인을 할 때 내부적으로는 쿠키와 세션을 사용하고 있다.

로그인한 후에는 새로고침을 해도 (새로운요청) 로그아웃이 되지않는다
클라이언트가 서버에 여러분이 누구인지를 지속적으로 알려주고 있기 때문이다

서버에서 우리가 누군지 기억하기 위해서는 서버는 요청에 대한 응답을 할 때 쿠키라는 것을 같이 보낸다. 쿠키는 유효기간이 있ㅇ며 name = username과 같이 키 값쌍이다. 서버로부터 쿠기가 오면 웹 브라우저는 쿠기를 저장해두었다가 다음에 요청할 때마다 쿠키를 동봉해서 보낸다. 서버는 그동봉된 쿠키를 읽어서 사용자가 누군지 파악한다

브라우저는 쿠키가 있다면 자동으로 동봉해서 보내주므로 따로 처리할필요가 없다.
서버에서 브라우저로 쿠키를 보낼 때만 우리가 코드를 작성해서 처리하면된다

클라이언트 --> 요청 === 서버

클라이언트 <--쿠키와함께 응답 === 서버

클라이언트 --->쿠키와 함께 요청 === 서버

클라이언트 응답<---- 서버

서버는 미리 클라이언트에 요청자를 추정할 만한 정보를 쿠키로 만들어보내고, 그다음부터는 클라이언트로 부터 쿠키를 받아 요청자를 파악

쿠키가 여러분이 누구인지 추적하고 있는거. 개인정보를 유출 방지를 위해 쿠키를 주기적으로 지우라고 권고 하는것은 이런이유 때문

쿠키는 요청의 헤더(Cookie)에 담겨 전송되고, 브라우저는 응다브이 헤더(set-cookie)에 따라 쿠키를 저장합니다

http.createServer((req.res)=>{
	res.writeHead(200,{"set-Cookie":"mycookie-test"})
    res.end("Hello Cookie")
    
}

요청에들어오는 정보에 리스폰스로 셋쿠키와:쿠키정보를 담아서 보낸다

headers ...헤더스에 담겨져있다

쿠키는 name=f12f ; year=1990 처럼 준자열 형식으로 존재 쿠키간에는 ';' 세미콜론으로 구분

쿠키는 req.headers.cookie에 들어있고 req.headers는 요청의 헤더를 의미한다.

응답 헤더에 쿠키를 기록해야되서 res.writeHead 메서드를 사요하고 set-Cookie는 브라우저한테 다음과 같은 값의 쿠키를 저장하라는 의미

실제로 응답을 받은 브라우저는 mycookie=test 라는 쿠키를 저장한다

profile
《REACT》《JAVASCRIPT 》 만지고있어욤

0개의 댓글