티스토리 뷰

interview

[web] 쿠키, 세션

아풀 2018. 6. 25. 15:18

쿠키와 세션의 사용 이유 - HTTP 프로토콜의 약점을 보완하기 위해

약점1) Connectionless 
클라이언트가 요청을 한 후 응답을 받으면 그 연결을 끊어 버리는 특징

약점2) Stateless
접속을 끊는 순간 클라이언트와 서버의 통신은 끝나고 상태 정보는 유지하지 않는 특징



쿠키(Cookie)

쿠키는 클라이언트 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일이다.

- 이름, 값, 유효시간, 도메인, 경로 정보가 들어있다.

- 일정시간동안 데이터를 저장할 수 있다. (로그인 상태 유지에 활용)


쿠키 프로세스

1. 브라우저에서 웹페이지 접속
2. 클라이언트가 요청한 웹페이지를 받으면서 쿠키를 클라이언트 로컬에 저장
3. 클라이언트가 재 요청시 웹페이지 요청과 함께 쿠키값도 전송
4. 지속적으로 로그인 정보를 가지고 있는 것처럼 사용

예) 

- 방문 사이트 로그인 시, 아이디와 비밀번호 저장
- 쇼핑몰의 장바구니 

세션(Session)

일정 시간동안 같은 브라우저로 부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 유지하는 기술
즉, 웹 브라우저를 통해 웹 서버에 접속한 이후로 브라우저를 종료할 때 까지 유지되는 상태
클라이언트가 request를 보내면, 해당 서버의 엔진이 클라이언트에게 유일한 ID를 부여하는데 이것이 세션ID이다.

세션 프로세스

1. 클라이언트가 서버에 접속시 세션ID를 발급
2. 서버에서는 클라이언트로 발급해준 세션ID를 쿠키를 사용해 저장
3. 클라이언트는 다시 접속할때, 이 쿠키를 이용해서 세션ID값을 서버에 전달

예)

- 로그인

차이점

 

쿠키 

세션 

저장위치 

클라이언트에 파일로 저장 

서버에 저장 

보안 

취약

클라이언트 로컬에 저장되기 때문에 변질되거나

request에서 스나이핑 당할 우려가 있다. 

쿠키를 이용해서 sessionid만 저장하고

그것으로 구분해서 서버에서 처리하기 때문에

비교적 보안성이 좋다. 

 라이프 사이클

 파일로 저장되기 때문에 브라우저를 종료해도

계속해서 정보가 남는다.

브라우저가 종료되면 만료시간에 상관없이 삭제된다. 

 속도

쿠키에 정보가 있기 때문에 서버에 요청시

속도가 빠르다. 

 정보가 서버에 있기 때문에 처리가 요구되어

속도가 비교적 느리다.






'interview' 카테고리의 다른 글

[web] RESTful  (0) 2018.06.25
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함