쿠키가 날 힘들게 함...
잘근잘근 씹어주겠어
우선 쿠키와 세션 ! 그 두놈은 비슷하면서도 다르다
쿠키와 세션의 공통점 : 클라이언트의 접속상태를 유지하기 위한 기술!
상태유지 정보가 클라이언트에 저장(브라우저나 사용자 pc)
http 프로토콜은 클라이언트의 요청이 있어야 웹 문서(서버)가 브라우저에 응답을 해줌
근데 응답을 하면 연결은 끊김(왜냐면 수백개의 사용자들이 있을텐데 계속연결상태면 과부화 걸리지..)
근데 현실과는 뭔가 다름?( 우리가 스스로 연결 끊을 때 까지 연결상태 중인데? 이걸 유지하는 기술이 바로 쿠키/세션 !!)
쿠키
요청하고 응답할 때 응답 헤더에 쿠키를 구워서 보냄
(응답할 때 준 쿠키가 다시 요청했을 때 받은 쿠키와 같다면 얘가 계속 접속해 있구나를 인식하게 됨)
브라우저에 저장되었다면 브라우저 종료 시 삭제됨
근데 이게 왔다갔다할 때 중간에서 스나이핑 될 수도 있기도 하고, 아무튼 보안에 취약해서 요새 잘 안씀!
세션은 좀이따가 정리하긴 할 건데 여기서 먼저 간단하게 쿠키랑 비교하면서 정리하고 넘어가쟈
세션(브라우저 1개가 1개의 세션)
서버의 세션영역에 중요정보를 저장함
웹 브라우저를 열어 서버에 접속하고 다시 웹브라우저를 닫아서 서버와의 연결을 종료하는 하나의 단위를 세션이라 함
ex) cmd 2개의 창을 열고 둘 다 scott 계정에 접속해도 두개가 commt하지 않는 이상 연동되지 않음
세션이 각각 다른 총 2개가 있는거임!
[Cookie]
그럼 쿠키를 직접 구워보자
1. 쿠키설정하기 (직접 굽기)
<%
//1. 쿠키객체생성 : new Cookie("쿠키명","쿠키값");
Cookie cookie = new Cookie("UserID","KOSMO");
//2. 쿠키가 적용되는 PATH 설정 (웹 어플리케이션 전체에 설정하는 법!!!)
cookie.setPath(request.getContextPath());
//3. 쿠키 유효시간 설정 (브라우저가 아닌 pc에 저장이 됨- 파일로 저장 )
cookie.setMaxAge(30); //30초 후에 내가구운 UserID : KOSMO 사라짐
//4. 생성된 쿠키를 응답헤더에 설정 : addCookie(); 그냥 실행하면 네트워크에서 요청/응답 헤더 정보를 볼 수 없음 새로고침을 한 번 하니 그거 감안해야함 !
response.addCookie(cookie);
%>
클릭으로 페이지 이동 후 쿠키 값 확인
<a href="CookieResult.jsp">쿠키값 확인</a>
2.클릭으로 페이지를 이동 하나 후 쿠키값을 확인 해 보자
이건 클릭으로 요청을 한 것이니까 request객체로 가져올 수 있다!!
<%
//요청헤더에 실려 보내니까 request로 가져옴
Cookie[] cookies= request.getCookies();
if(cookies !=null ){ // null 체크는 꼭
for(Cookie cook: cookies){
//쿠키명 얻기
String name = cook.getName();
//쿠키값
String value = cook.getValue();
out.println(String.format("<li>%s : %s</li>",name,value));
}
}
%>
출력도 잘 됨! 저 맨 위에있는거 오늘 배우면서 세션객체들 때문에 남아 있는거 (컴퓨터 쿠키 유효시간을 24시간으로 설정 해 놨음... )
'학원 > JSP' 카테고리의 다른 글
11/23 49-3 [JSP] Cookie연습2(로그인/아웃처리) (0) | 2022.11.23 |
---|---|
11/23 49-2 [JSP] Cookie연습(장바구니담기) (1) | 2022.11.23 |
11/22 48-11 [JSP] ApplicationScope (0) | 2022.11.23 |
11/22 48-10 [JSP] forward와 리다이렉트의 차이(수정전) (0) | 2022.11.23 |
11/22 48-10 [JSP] request영역 (0) | 2022.11.23 |