반응형

개인 공부용 포스팅이라 다소 틀린 내용이 포함되어 있을수 있으니 적당히 거르고 검증해서 보시기 바랍니다.

틀린내용은 댓글로 알려주시면 감사합니다.

 

쿠키란?

 - 서버의 필요에 따라서 웹 브라우저가 저장하는 작은 데이터들이라고 생각하면 된다.

 - 쿠키는 서버에서 오는 응답 속 header 내용에 따라서 저장된다.

 - 그냥 로컬 파일 데이터라고 생각하면 편함

 

쿠키는 어떻게 사용하는가?

 - 서버의 응답속 Heaer 중 Set-Cookie Header안에 key=value 형태로 포함되어 있다.

 - 해당 key에 따른 value 값을 저장하며 쿠키 항목에 대한 여러가지 추가 설정을 지정할 수 도 있다.

 

쿠키 저장 순서

 - Response 내의 Set-Cookie Header 확인.

 - 해당 Header 속 cookie들을 웹 브라우저가 저장

 - 그 이후 브라우저를 통해 보내는 요청에는 cookie 정보가 포함되어 전송된다.

 

쿠키의 활용 예

 - 특정 유저의 로그인 정보를 개별 브라우저에 저장하여 자동 로그인에 활용 가능

 - 특정 계정의 인터넷 검색어 등을 쿠키에 저장하고 이를 활용하여 유저에게 맞춤 화면을 노출 가능.

 

쿠키의 장점

 - http 특징중 하나인 stateless를 극복하려할 때 쿠키를 사용 가능.

  -> 위의 활용 예와 같은 경우 특정 유저에 대한 일종의 상태정보를 쿠키로 누적 가능.

 

쿠키의 단점

 - 브라우저에 저장된다.

 - 타인에게 노출되거나 변조될 여지가 있다.

 - 웹 브라우저마다 생성되기 때문에 다른 브라우저로 접속시 쿠키가 유지되지 않는다.

 

사실상 단점중 보안상의 이슈가 제일 크며 이로 인해 중요한 정보를 쿠키로 저장하면 이슈가 생길 수 있다.

 

==============

위에서는 간단한 내용만 적어보았고 이제 좀더 세세한 내용을 알아 보자

===============

 

쿠키의 종류는 어떤것이 있을까?

1. persistence cookie

2. session cookie

 

persistence cookie

 - 파일로 생성된다.

  -> tmi : 임시 인터넷 파일로 생성됨.

 - 브라우저의 쿠키 파일을 삭제하거나 해당 쿠키가 만료된 후 사라진다.

 - 최초 접속 시 서버로 전송된다.

 - 주로 사용되는 곳으로는 팝업 하루동안 띄우지 않기 등이 있다.

 

session cookie

 - 브라우저의 메모리에 생성된다.

 - 브라우저를 종료하면 사라진다.

 - 최초 접속 시 서버로 전송되지 않는다.

 - 주로 session id를 저장할 때 허용된다.

 

cookie 실제 추가 요청 시

server response :

 - Set-Cookie : tmp_cookie=tmp_val

 - Set-Cookie : other_key=other_value

 

cookie가 실제 request에 포함되어 있을 때

 - cookie Header 안에 포함되어 온다.

 - ex 

    -> cookie : tmp_name=tmp_val;  other_cookie_name=other_cookie_val; ...

    -> cookie라는 Header 안에 ;를 구분자로 여러 cookie 항목이 저장되어 있다.

 

위와 같이 server response에 Set-Cookie header가 들어 있다면

브라우저는 해당 cookie들을 저장한다. 이때 Set-Cookie는 한가지 쿠키밖에 지정을 못하기 때문에 

여러 쿠키를 저장할 경우 Set-Cookie Header를 여러개 지정해 주어야 한다.

 

cookie 추가 시 여러가지 속성 지정하는 방법

Header에 cookie를 지정할 때 여러가지 속성을 지정할 수 있으며 종류는 대략 아래와 같다.

 - cname=calue : cookie 이름과 cookie 값

 - expires=someday : 해당 cookie의 만료 기간에 대한 정보.

  -> 참고 : Max-Age로 해당 쿠키의 유효기간을 짖어할 수도 있다

  -> 참고2 : expires, Max-Age를 지정하면 해당 cookie는 persistence cookie가 된다.

그외에도 path, domain 등의 속성 지정이 가능하니 필요 시 검색해보길 바란다.

 

session cookie 중 알아야하는 것으로는 JSESSION cookie 항목이 있다.

 - Session에 대한 정보를 서버가 저장한 후 이에 대해 접근할 수 있도록 지정한 id 를 저장하는 cookie

 - 주의 : Session 에 대한 정보를 저장한 cookie가 아니고 그에 대한 식별id 정보이다.

 - 주의2 : 해당 JSESSION 속 session id는 각각 접속시, 각각의 브라우저 마다 다르게 할당된다.

 

반응형
Posted by Sweetmeats_boy

블로그 이미지
Sweetmeats_boy

태그목록

Yesterday
Today
Total

달력

 « |  » 2024.9
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

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함