728x90
Cookie & Session
HTTP는 비상태성(Stateless) 프로토콜로 상태 정보를 유지하지 않는다. 연결을 유지하지 않기 때문에 리소스 낭비가 줄어드는 것은 큰 장점이지만 통신할 때마다 매번 연결 설정을 해야 하며, 이전 요청과 현재 요청이 같은 사용자의 요청인지 알 수 없다는 단점이 존재한다.
쿠키와 세션을 통해서 HTTP의 Stateless한 문제점을 해결할 수 있다.
저장위치
- 쿠키: 클라이언트의 웹 브라우저가 지정하는 메모리 or 하드 디스크
- 세션: 서버의 메모리
만료 시점
- 쿠키: 저장할 때, expires 속성을 정의하여 무효화시키면 삭제될 날짜를 지정할 수 있다.
- 세션: 클라이언트가 로그아웃하거나 설정 시간 동안 반응이 없으면 무효화되기 때문에 정확한 시점을 알 수 없다.
리소스
- 쿠키: 클라이언트에 저장되고 클라이언트의 메모리를 사용하기 때문에 서버 자원을 사용하지 않는다.
- 세션: 서버에 저장되고, 서버 메모리로 로딩되기 때문에 세션이 생길 때마다 리소스를 차지한다.
용량 제한
- 쿠키: 클라이언트도 모르게 접속되는 사이트에 의하여 설정될 수 있기 때문에 쿠키로 인해 문제가 발생하는 걸 막고자 한 도메인당 20개, 하나의 쿠키당 4KB로 제한해두었다.
- 세션: 클라이언트가 접속하면 서버에 의해 생성되므로 개수나 용량 제한이 없다.
보안
- 쿠키: 클라이언트에 저장하기 때문에 보안에 취약하다.
- 세션: 서버에 저장하기 때문에 쿠키에 비해서는 보안에 우수하다.
참조: github.com/WooVictory/Ready-For-Tech-Interview/blob/master/Network/Cookie_Session.md
WooVictory/Ready-For-Tech-Interview
💻 신입 개발자로서 준비를 하기 위해 지식을 정리하는 공간 👨💻. Contribute to WooVictory/Ready-For-Tech-Interview development by creating an account on GitHub.
github.com
728x90
'Computer Science > 네트워크' 카테고리의 다른 글
[네트워크] - 대칭키 & 공개키 (0) | 2020.09.25 |
---|---|
[네트워크] - Blocking I/O & Non-Blocking I/O (0) | 2020.09.25 |
[네트워크] - HTTP, HTTPS (0) | 2020.09.25 |
[네트워크] - 주소창에 naver.com을 치면 일어나는 일 (0) | 2020.09.24 |
[네트워크] - TCP (3 way handshake & 4 way handshake) (0) | 2020.09.24 |