Cookie와 Session은 HTTP의 Stateless(무상태) 특징에 의해서 발생하게 된다.
이와 같이 요청을하고 응답을 하면 연결을 바로 해제하고 객체를 소멸시켜버린다. 따라서 매번 요청을 할때마다 데이터가 없어 인증해야한다. 인증을 하는 방법이 Cookie와 Session이다.
Cookie
- 클라이언트가 key:value형태로 요청을 보내고 서버는 응답과 동시에 클라이언트에 쿠키 생성을 명령한다.
- 응답하면서 response, request 객체 소멸.
- 이후 추가 작업을 할 때 클라이언트가 가지고 있는 모든 쿠키를 전송한다.
- 서버는 해당 서버과 관련된 쿠키만 읽어들이고 요청에 응답하게 된다.
쿠키는 서버와 클라이언트가 연결 되었던 기록이 클라이언트에 남게 된다. 따라서 전송시에 모든 쿠키가 전송되게 된다. 그리고 서버는 클라이언트에 생성명령만 하고 소멸 명령은 할 수 없게 되므로 보안에 문제가 생길 수 있다.
Session
- 클라이언트가 key:value형태로 요청을 보내고 서버는 key:value 값을 저장하면서 고유 번호를 생성하고 이를 전달하게 되는데 이것이 세션이다.
- 응답하면서 response, request 객체 소멸
- 이후 추가 작업을 진행할 때 클라이언트는 세션과 함께 보낸다.
- 세션정보가 있으므로 해당 작업을 응답 해 준다.
세션은 서버와 클라이언트가 연결 되었던 기록을 서버의 메모리에 기록하게 된다. 따라서 해당 세션은 서버가 관리하게 되고 세션을 삭제 하는것 또한 서버의 몫이므로 쿠키보다 보안이 좋은것을 알 수 있다.
'FRONT' 카테고리의 다른 글
[Front] HTTP Protocol ( http 프로토콜 ) (0) | 2020.06.04 |
---|---|
[Front] 웹(Web)의 구조 (0) | 2020.06.04 |