어흥
[Web] Session과 Cookie 본문
1. Session
- 정의
1) 서블릿이나 JSP로 작성된 웹 페이지들간의 클라이언트 상태유지를 위해 사용되는 기술
2) 서로 관련이 없던 페이지들간에 연관성을 설정하는 방법
- 특징
1) 정보가 서버에 저장 -> 서버에 부담 될 수 있다
2) 세션구현은 쿠키를 이용
3) 쿠키보다 보안에 유리
4) 브라우저당 유일한 세션(Session ID)이 하나씩 생긴다 → localStorage, 탭 별 고유 세션 → sessionStorage
5) 서버에 저장된 정보는 유효시간은 가진다. 기본적으로 1800초
- 등장배경
: HTTP 프로토콜은 클라이언트와 서버간 요청과 응답이 실행되면 연결이 종료
-> 이전 페이지에서 수행했던 작업을 다른 페이지에서 인식할 수 없다
-> 이전 페이지에서 수행했던 작업을 다른 페이지에서도 인식할 수 있도록 구현하자
- 용도
1) 로그인
2) 쇼핑몰 구현
- 구현 방법
1) Hidden 태그 이용
2) GET 방식을 이용한 URL 파라미터 이용
3) 쿠키 이용
4) 세션 이용
- 프로세스
1) 브라우저로 특정 도메인에 요청
2) 서버는 접속한 브라우저에 대한 Session ID를 생성하고 Session ID값을 저장
3) Session ID를 가지고 클라이언트에 응답
4) Session ID를 브라우저에 저장(저장된 Cookie의 이름: jsessionid)
5) 도메인에 재요청시 저장된 Session ID를 서버에 넘긴다
6) 서버는 클라가 넘겨준 Session ID를 이용하여 동일한 클라이언트인지 확인
- 중요 Method
1) invalidate(): 세션을 삭제할 수 있다
2) setMaxInactiveInterval(초): 유효시간을 설정할 수 있다
2. Cookie
- 정의
1) HTTP 한계를 극복할 수 있도록 웹사이트의 방문기록을 클라이언트의 로컬에 저장
2) 사용자와 웹사이트 사이를 매개해 주는 정보
- 특징
1) 정보가 클라이언트에게 저장(저장 형태는 키와 값이 들어있는 데이터 파일)
2) 용량에 제한
3) 보안이 취약
4) 클라이언트에 의해서 사용 유무가 결정
5) 도메인당 쿠키가 생성
- 용도
1) 사이트의 고객맞춤 정보 제공(타깃 마케팅)
2) 로그인시 'ID 저장' 기능 구현
3) 팝업창의 '오늘은 더 이상 표시하지 않기' 구현 등에서 사용
- 프로세스
1) 브라우저로 특정 도메인에 요청
2) 서버는 접속한 클라이언트 정보를 저장한 쿠키를 생성
3) 쿠키를 가지고 클라이언트에 응답
4) 쿠키를 클라이언트에 저장
5) 도메인에 재요청시 저장된 쿠키를 서버에 넘김
6) 서버는 클라에서 넘겨준 쿠키정보를 이용하여 동일한 클라이언트인지 판별한다
- 중요 Method
1) setMaxAge() Method의 인자값으로 양수를 지정하면 Persistence Cookie로 저장되며, 지정된 값만큼 Cookie가 유효. 이외의 경우는 전부 Session Cookie로 저장
'Web' 카테고리의 다른 글
[Web] URI v.s URL (0) | 2021.04.09 |
---|---|
[Web - Front end] 수정한 JS, CSS 파일이 적용이 안될 때 (3) | 2021.03.23 |
[Web] 웹 실행순서 (0) | 2021.03.08 |
[JavaScript] 현재 URL 정보 불러오기 (0) | 2021.03.08 |
[Web] Servlet 기초 (0) | 2020.07.02 |