세션이란?
클라이언트가 보내는 요청들을 하나의 상태로 보고, 그 상태를 일정하게 유지하는 것.
브라우저를 닫가나 서버가 해당 세션을 삭제하면 세션이 끝남.
쿠키와 역할이 비슷하나, 쿠키는 클라이언트 측에서 세션은 서버측에서 저장.
세션ID란?
1. 사용자를 식별하는데 사용
2. 특정 사용자의 고유한 식별자이니, 해당 사용자에 대한 것을 추적하기 위해 사용하는것
3. 추적을 해야하니 웹서버에서는 로그인 상태,사용자 설정, 장바구니 내용 등과 같은 데이터를 유지한다.
4. 사용자는 이후의 요청에서도 세션id로 인해 동일한 상태를 유지하는 것이 가능
세션의 동작 과정
- 클라이언트의 요청
- request-header 필드의 쿠키에서 세션 id를 보냈는지 확인
- 세션id가 없는경우, 서버에서 생성하여 클라이언트에게 전송
- 세션id는 clinet의 브라우저에 쿠키로 저장된다.
- 사용자가 로그아웃 or 브라우저를 닫거나 or 일정시간 지나면, 서버는 세션을 삭제한다.
세션키?
특정 세션에서 데이터의 기밀성과 무결성을 유지하기 위해서 사용하는 암호화 키. 세션 종료시 폐기.
보통 client와 server중 한쪽에서 생성하며 이를 다른쪽에 전달하기 위해 비대칭 암호화를 이용하여 보낸다.
ex) alice와 bob이 존재.
- 1. alice는 세션키를 보내기 위해서 bob의 공개키를 가지고 암호화 한다.
- 2. alice는 bob의 공개키로 암호화 한 세션키를 bob에게 보내고, bob은 자신의 개인키로 복호화하여 세션키 얻음.
세션과 쿠키
| 세션 | 쿠키 | |
| 저장 위치 | 서버 | client의 pc |
| 저장하는 사이즈 | 서버의 용량안에서는 제한이 없음 | 보통 4kb이하의 제한이 존재 |
| 보안 | 서버에서 관리하니 노출될 가능성이 적음. 단, 세션 ID를 탈취 당했다면 위험. |
사용자가 직접 쿠키에 접근or수정이 가능하니 중요한 정보 저장시 위험함. |
| 유효 기간 | 브라우저 종료 or 일정시간 응답 없음 | 만료 시간 설정. 시간을 설정 안했다면 세션 쿠키가 됨 |
| 목적 | client의 상태를 추적 및 관리 | 사용자를 위한 다양한 용도로 쓰임 |
'네트워크' 카테고리의 다른 글
| 암호프로토콜 및 패킷 (0) | 2024.08.20 |
|---|---|
| wireshark연습1 (0) | 2024.08.19 |
| 유동 고정 공인 사설 ip (0) | 2024.08.19 |
| 패킷이 전달되는 과정 (1) | 2024.08.16 |
| 게이트 웨이, 패킷, ip와 클래스, 서브네팅 , 라우팅 테이블 (0) | 2024.08.13 |