1. 세션이란?
'클라이언트가 웹 브라우저를 통해 서버에 접속한 후 용무를 처리하고 웹 브라우저를 닫아 서버와의 접속을 종료하는 하나의 단위'를 세션이라고 한다. 즉, 세션은 클라이언트가 서버에 접속해 있는 동안 그 상태를 유지하는 것이 목적이다.
2. 동작 메커니즘
- 클라이언트가 페이지를 요청한다.
- 서버는 접근한 클라이언트의 Request-Header 필드의 Cookie를 확인하여 클라이언트가 해당 session-id를 보냈는지 확인한다.
- session-id가 존재하지 않는다면 서버는 session-id를 생성해 클라이언트에게 돌려준다.
- 서버에서 클라이언트로 넘겨준 session-id를 쿠키를 사용해 서버에 저장한다.
- 클라이언트는 재접속 시, 쿠키를 사용하여 session-id 값을 서버에 전달한다.
3. 사용하는 이유
세션은 저장 데이터에 제한이 없고, 서버에서 세션을 삭제할 경우에만 제거되므로 쿠키보다 보안이 좋다. 또한 각 클라이언트에 고유 Session ID를 부여하기 때문에 Session ID로 클라이언트를 구분하여 각 클라이언트 요구에 맞는 서비스를 제공할 수 있다.
4. 사용 예시
- 화면을 이동해도 로그인이 풀리지 않고 로그아웃하기 전까지 유지
5. Cookie와 Session의 비교
| 쿠키 | 세션 | |
| 저장 위치 | 클라이언트 | 웹 서버 |
| 저장 형식 | Text | Object |
| 만료 시점 | 쿠키 저장시 설정 (브라우저가 종료되어도 만료 시점이 지나지 않으면 자동 삭제되지 않는다) |
브라우저 종료시 삭제 (기간을 지정할 수 있다) |
| 사용하는 자원 | 클라이언트 리소스 | 웹 서버 리소스 |
| 용량 제한 | 총 3000개 하나의 쿠키 당 4KB 하나의 호스트나 도메인에서 최대 50개 |
서버가 허용하는 한 용량에 제한이 없다 |
| 속도 | 세션보다 빠르다 | 쿠키보다 느리다 |
| 보안 | 세션보다 안좋다 | 쿠키보다 좋다 |
reference 99C0RN
관련 이전 글
쿠키란? What is Cookie?
1. 쿠키란? 쿠키는 클라이언트의 상태 정보를 유지하기 위한 기술이다. 상태 정보를 클라이언트에 키와 값 형태로 저장했다가 다음 요청 시 저장된 쿠키를 함께 전송한다. 그러면 웹 서버는 브라
jamstorage.tistory.com
'Dev > Ect' 카테고리의 다른 글
| Web Crawling - Selenium으로 간단한 웹 크롤링 해보기 (0) | 2022.10.21 |
|---|---|
| Swagger - REST API 명세를 문서화 하기 (0) | 2022.09.20 |
| 쿠키란? What is Cookie? (0) | 2022.08.03 |
| 데이터 교환 형식 (2) - CSV, YAML (0) | 2022.07.27 |
| 데이터 교환 형식 (1) - JSON, XML (0) | 2022.07.27 |
댓글