1일 1커밋🌱
쿠키와 세션의 장단점
HTTP 프로토콜은 Stateless하기 때문에 클라이언트의 상태를 기록하고 있지 않다. 따라서 클라이언트의 상태를 기억하기 위해서는 쿠키나 세션을 사용해야 한다.
1. 쿠키
클라이언트에 저장되어 서버에 요청할 때마다 헤더에 쿠키를 담아 서버에 전송
장점
- 서버의 저장공간 절약
단점
- 보안 취약 : 요청 시 쿠키 값을 그대로 보냄
- 작은 허용 용량 : 사이트 당 20개, 모두 합쳐 300개가 최대. 각 쿠키는 4Byte를 넘을 수 없음.
- 웹 브라우저마다 지원 형태가 다름
- 웹 브라우저를 변경할 경우 다른 웹브라우저에서 저장한 쿠키값을 사용할 수 없음
- 사용자가 보안상의 문제로 거부할 경우 사용 불가능
- 네트워크 부하 : 쿠키의 크기가 클 경우 네트워크 부하가 커짐
- 한번에 하나의 정보만 저장할 수 있음
2. 세션
서버에 저장되며 고유한 SessionID 생성 후 클라이언트에 SessionID 담긴 쿠키 전송, 이후 클라이언트는 SessionID 쿠키를 요청시마다 전송하여 서버는 이를 통해 어떤 클라이언트의 요청인지 구분할 수 있음
장점
- 어느정도 보안 유지 : 최초 접속 때를 제외하고 SessionID만 사용
- 큰 허용 용량 : 저장 개수나 용량 제한 없음(서버 용량 충분 시)
- 서버에 저장되므로 클라이언트의 웹브라우저에 의존하지 않아도 됨
- 데이터를 Hash Table에 저장. 한 번에 많은 정보를 하나의 세션 객체에 저장 가능
- SessionID만 보내므로, 세션의 크기가 커도 네트워크 부하가 거의 없음
단점
- 서버에 부하 : 서버에 데이터를 저장하므로 세션 양이 많아질수록 서버에 부하가 커짐
참고
댓글남기기