Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- inner class
- java lambda
- 조합 재귀
- char to str
- jquery 속성선택자
- 재귀함수
- 상속
- jquery 이벤트 처리
- jquery dom 계층 선택자
- 자바 재귀 조합
- 순열 재귀
- java Collections.sort()
- 후위표기
- 자바 순열 코드
- 자바 조합 재귀
- java 내부 클래스
- 자바스크립트 이벤트처리
- 알고리즘 그래프
- jquery 필터선택자
- 자바
- 순열코드
- 재귀
- 자바입출력
- str to char array
- 알고리즘
- 서로소
- Interface
- Java
- 자바스크립트 이벤트중지
- parseInt()
Archives
- Today
- Total
유블로그
Cookie & HttpSession 본문
http protocol 은 요청에 대한 응답 후 연결을 해제하여 상태 정보를 유지해야할 수 없다.
그래서 Cookie와 Session 을 사용한다.
Cookie
- 서버에서 사용자의 컴퓨터에 저장하는 정보파일
- 사용자의 요청 없이도 request 시 Request Header를 넣어 자동으로 서버에 전송한다.
- key 와 value 로 구성되고 String 형태로 이루어져 있다.
- 브라우저마다 저장되는 쿠키가 다르다.
사용목적
- 세션관리 : 사용자 아이디, 접속시간, 장바구니 등 정보 저장
- 개인화 : 사용자마다 다른 페이지 보여줄 수 있다.
- 트래킹 : 사용자의 행동과 패턴을 분석하고 기록
구성요소
- 이름 : 여러 개의 쿠키가 client의 컴퓨터에 저장되므로 각 쿠기를 구별하는 데 사용되는 이름
- 값 : 쿠키의 이름과 매핑되는 값
- 유효기간 : 쿠키의 유효기간
- 도메인 : 쿠키를 전송할 도메인
- 경로 : 쿠키를 전송할 요청 경로
동작순서
- Client가 페이지를 요청
- WAS는 Cookie를 생성
- HTTP Header 에 Cookie를 넣어 응답
- Browser는 넘겨받은 Cookie를 PC에 저장하고, 다시 WAS가 요청할 때 요청과 함께 Cookie를 전송
- 브라우저가 종료되어도 Cookie 만료 기간 남아있다면 Client 는 계속 보관
- 동일 사이트 재방문시 Client PC 에 해당 Cookie가 있는 경우, 요청 페이지와 함께 Cookie를 전송
특징
- 이름, 값, 만료일, 경로 정보로 구성되어 있다.
- 클라이언트에 총 300개의 쿠키를 저장할 수 있다.
- 하나의 도메인 당 20개의 쿠키를 가질 수 있다.
- 하나의 쿠키는 4KB까지 저장 가능하다.
Session
- 방문자가 웹 서버에 접속해 있는 상태를 하나의 단위로 보고 그것을 세션이라 한다.
- WAS의 memory에 Object 형태로 저장
- memory가 허용하는 용량까지 제한 없이 저장 가능
동작순서
- 클라이언트가 페이지 요청
- 서버는 접근한 클라이언트의 Request-Header 필드인 Cookie를 확인하여, 클라이언트가 해당 session-id를 보냈는지 확인
- session-id가 존재하지 않는다면, 서버는 session-id를 생성해 클라이언트에게 돌려준다.
- 서버에서 클라이언트에게 돌려준 session-id 를 쿠키를 사용해 서버에 저장한다. 이 때 쿠키이름은 JSESSIONID
- 클라이언트는 재접속 시, 쿠키(JSESSIONID) 를 이용하여 session-id 값을 서버에 전달한다.
특징
- 웹 서버에 웹 컨테이너의 상태를 유지하기 위한 정보 저장
- 웹 서버에 저장되는 쿠키(=세션 쿠키)
- 브라우저를 닫거나, 서버에서 세션을 삭제 했을 때만 삭제 되므로 쿠키보다 비교적 보안이 좋다.
- 저장 데이터에 제한이 없다.
- 각 클라이언트 고유 session id를 부여한다.
- session id로 클라이언트를 구분하여 각 클라이언트 요구에 맞는 서비스 제공
+ 아이디 또는 닉네임과 같이 로그인 후 자주 사용되는 정보들을 session에 저장하면 DB 접근하지 않아도 되어서 효율적이다.
+ 브라우저당 하나의 JSESSOINID를 할당 받는다.
Session vs Cookie
'Web : BackEnd' 카테고리의 다른 글
JSP (Java Server Page) (0) | 2020.10.11 |
---|---|
[Java] Servlet (0) | 2020.10.11 |
JSTL (JSP Standard Tag Library) (0) | 2020.10.11 |
EL ( Expression Language ) (0) | 2020.10.11 |
[JSP] MVC 패턴 (Model-View-Controller) (0) | 2020.10.07 |