728x90
Session
- 특정 웹사이트에서 사용자가 머무르는 기간 또는 한명의 사용자의 한번의 방문을 의미한다.
- Session에 관련된 데이터는 Server에 저장된다.
- 웹 브라우저의 캐시에 저장되어 브라우저가 닫히거나 서버에서 삭제시 사라진다.
- Cookie에 비해 보안성이 좋다.
Cookie
- 사용자 정보를 유지할 수 없다는 HTTP의 한계를 극복할 수 있는 방법
- 인터넷 웹 사이트의 방문 기록을 남겨 사용자와 웹 사이트 사이를 매개해 주는 정보이다.
- Cookie는 사용자가 웹 서버에 접속할 때, 생성되는 개인 아이디와 비밀번호, 방문한 사이트의 정보를 담은 임시파일.
- Server가 아닌 Client에 텍스트 파일로 저장되어 다음에 해당 웹서버를 찾을 경우 웹서버에서는 그가 누구인지 어떤 정보를 주로 찾았는지 등을 파악할 때 사용한다.
- Cookie는 Client PC에 저장되는 정보이기 때문에, 다른 사용자에 의해서 임의로 변경이 가능하다.(정보 유출 가능)
Session과 Cookie 사용 이유
- 인터넷에서 사용하고 있는 HTTP프로토콜은 연결 지향적인 성격을 버렸기 때문에 새로운 페이지를 요청할 때마다 새로운 접속이 이루어며 이전 페이지와 현재 페이지 간의 관계가 지속되지 않는다.
- HTTP프로토콜을 이용하게 되는 웹사이트에서 웹페이지에 특정 방문자가 머무르고 있는 동안에 그 방문자의 상태를 지속시키기 위해 세션과 쿠키를 사용한다.
보안성 낮은 Cookie대신 Session만 사용하면 안되는 이유
- 모든 정보를 Session에 저장하면 Server의 메모리를 과도하게 사용하여 Server에 무리가 가기 때문이다.
Session vs Cookie
세션(Session) | 쿠키(Cookie) | |
저장 위치 | 웹 서버 | 클라이언트(접속자PC) |
저장 형식 | Object | text |
만료 시점 | 브라우저 종료시 삭제 (기간 지정 가능) |
쿠키 저장시 설정 (브라우저가 종료되도, 만료시점이 지나지 않으면 자동으로 삭제되지 않는다.) |
사용하는 자원(리소스) | 웹 서버 리소스 | 클라이언트 리소스 |
용량 제한 | 서버가 허용하는 한 제한 없음. | 총300개 하나의 도메인 당 20개 하나의 쿠키 당 4KB |
속도 | 쿠키보다 느리다. | 세션보다 빠르다. |
보안 | 쿠키보다 좋다. | 세션보다 안좋다. |
728x90
'Java & Spring' 카테고리의 다른 글
[Spring] Get 방식, Post 방식 정리 (0) | 2022.04.02 |
---|---|
[JAVA] Stack, Heap 스택과 힙 (0) | 2022.04.01 |
[JAVA] Interface, Abstract Class 인터페이스, 추상클래스 정리 (0) | 2022.03.31 |
[JAVA] Primitive type, Reference type 기본형, 참조형 정리 (0) | 2022.03.30 |
[JAVA] Process, Thread 프로세스와 스레드/쓰레드 정리 (0) | 2022.03.29 |