쿠키
쿠키는 클라이언트(브라우저)의 로컬에 저장되는 작은 데이터 파일로 키와 값의 쌍으로 이루어져 있다. 서버에서 생성되어 클라이언트로 전송되며 클라이언트는 이를 저장하고 필요시 다시 서버로 전송한다.
만료 시간을 지정할 수 있어 브라우저가 종료되어도 쿠키가 유지될 수 있다. 사용자가 별도의 요청을 하지 않아도 브라우저가 자동으로 서버에 쿠키를 전송한다.
동작 원리
- 클라이언트 요청: 클라이언트가 서버에 페이지를 요청한다.
- 쿠키 생성 및 전달: 서버는 필요한 경우 쿠키를 생성하여 HTTP 응답 헤더에 포함시켜 클라이언트로 전송한다.
- 쿠키 저장: 클라이언트는 수신한 쿠키를 로컬에 저장한다.
- 쿠키 자동 전송: 이후 동일한 도메인에 대한 요청 시 브라우저는 자동으로 쿠키를 HTTP 요청 헤더에 포함하여 서버로 전송한다.
- 쿠키 갱신: 서버는 필요에 따라 쿠키를 갱신하고 이를 다시 클라이언트로 전송한다.
Spring MVC에서 쿠키 사용하기
세션
세션은 서버 측에서 관리되는 클라이언트의 상태 정보다. 클라이언트를 구분하기 위해 서버는 각 클라이언트에 고유한 세션 ID를 부여한다. 클라이언트의 상태 정보를 서버에서 관리하므로 보안성이 높다.
세션 정보는 서버 메모리를 사용하므로 클라이언트 수가 많아지면 서버에 부담이 될 수 있다. 브라우저를 종료하면 세션이 만료되는 것이 기본 설정이지만 설정에 따라 세션 유효 기간을 지정할 수 있다.
동작 원리
- 세션 생성: 클라이언트가 서버에 처음 접속하면 서버는 고유한 세션 ID를 생성한다.
- 세션 ID 저장: 생성된 세션 ID는 쿠키를 통해 클라이언트의 브라우저에 저장된다.
- 세션 ID 전송: 클라이언트는 이후의 요청 시 이 세션 ID를 쿠키를 통해 서버에 전달한다.
- 세션 확인 및 조회: 서버는 수신한 세션 ID를 확인하여 해당 클라이언트의 세션 정보를 조회한다.
- 요청 처리 및 응답: 서버는 세션 정보를 활용하여 요청을 처리하고 결과를 클라이언트에게 응답한다.
Spring MVC에서 세션 사용하기
쿠키와 세션의 차이점
구분 | 쿠키 | 세션 |
저장 위치 | 클라이언트 로컬 | 서버 |
보안 | 비교적 취약 | 비교적 안전 |
생명 주기 | 만료 기간까지 유지 | 브라우저 종료 시 기본 만료 |
속도 | 빠름 | 상대적으로 느림 |
'Dev > Network' 카테고리의 다른 글
『Network』 HTTP Only 쿠키 (0) | 2024.12.01 |
---|---|
『Network』 HTTP(HyperText Transfer Protocol) (0) | 2024.11.28 |
『Network』 www.google.com을 주소 창에 쳤을 때 일어나는 과정 (0) | 2024.11.27 |
『Network』 한 번에 끝내는 DNS (1) | 2024.11.26 |
『Network』 User Mode와 Kernel Mode (0) | 2024.11.23 |