클라이언트 저장소인 session Storage에 대해 공부하다가 예전에 Spring 의 session 과 cookie 대해 정리해 둔 소스가 생각나서 블로그로 옮겨 적는다.
💡Web Storage | Session Storage 와 Local Storage의 특징 및 차이점
1. Session vs Cookie 비교
- 만료시점 : 세션 열결 해제
- session Id를 사용해서 사용자(브라우저)별로 구분하여 정보를 관리 할 수 있다
- 서버에 저장하기 때문에 cookie에 비해 접근이 어렵다 ( = 보안 향상)
세션 (Session) |
쿠키 (Cookie) |
|
저장공간 | 서버 | 클라이언트 |
만료시점 | 세션 열결 해제
|
저장 시 설정한 시간이 지났을 때
|
장점 |
|
2. Session
1) 동작방식
- 서 버 : session 객체를 생성한 뒤 response에 session Id를 담아서 클라이언트로 보낸다.
- 클라이언트 : cookie에 session id를 저장한다.
- 서 버 : request에 포함된 session id를 갖고있는 클라이언트 session id 리스트와 비교해서 구별한다.
- HTTP는 statusless 특성을 갖고 있기 떄문에 새로운 요청인지 구분할 수 없기 때문에 session id를 활용한다.
2) 사용방법 및 예시
- session 정보는 ID가 있어야 접근 할 수 있는데 이게 쿠키에 저장된다. 또한 브라우저를 종료한다고 해서 서버의 session 객체가 사라지는 건 아니지만 이 ID가 사라지기 때문에 접근할 루트가 사라지게된다.
3. Cookie
1) 동작방식
- 클라이언트 : http request
- 서 버 : cookie 생성 후 response header에 담아 보낸다.
- 클라이언트 : 쿠키 저장소에 key / value 형태로 저장한다.
- 클라이언트/서버 : 쿠키를 주고 받으며 필요한 작업을 수행한다.
'Backend > Java' 카테고리의 다른 글
[Java] 제너릭 배열 + 와일드카드 사용 예시(수강정보) (0) | 2021.07.18 |
---|---|
[Java] 제네릭 메서드 / 제한된 파라미터 / 와일드카드 (0) | 2021.07.18 |
[Java] 제너릭 클래스(Generic Class) (0) | 2021.07.18 |
[Java] 가변형 인수(파라미터) (0) | 2021.07.18 |