728x90
쿠키는 세션과 달리 상태 정보를 웹 서버가 아닌 클라이언트에 저장 한다.
- 예를들어 어떤 웹 사이트를 처음 방문한 사용자가 로그인 인증을 하고 나면 아이디와 비밀번호를 기록한
쿠키가 만들어지고 그 다음부터 사용자가 그 퉴 사이트에 접속하면 별도의 절차를 거치지 않고 쉽게 접속할 수 있음
클라이언트가 서버에다가 뭔가 요청을하면 세션이 생성되면서 세션의 아이디가 쿠키에 들어감 기본적으로
반면에 웹 브라우저가 접속했던 웹 사이트에 관한 정보와 개인 정보가 기록되기 때문에 보안에 문제가 잇음
1. 쿠키 생성 단계 : 주로 웹 서버 측에서 생성.생성된 쿠키는 응답 데이터에 함께 저장되어 웹 브라우저에 전송됨
2. 쿠키 저장 단계 : 웹 브라우저는 응답 데이터에 포함된 쿠키를 쿠키 저장소에 보관.쿠키는 종류에 따라 메모리나 파일로 저장됨
3.쿠키 전송 단계: 웹 브라우저는 한 번 저장된 쿠키를 요청이 있을 때마다 웹서버에 전송.웹 서버는 웹 브라우저가 전송한 쿠키를 사용하여 필요한 작업을 수행할 수 있음.
분홍색 체크해둔것 : 많이 쓰임
쿠키와 세션의 차이
구분 | 쿠키 | 세션 |
사용 클래스 | Cookie클래스 | HttpSession인터페이스 |
저장 형식 | 텍스트 형식 | Object형 |
저장 장소 | 클라이언트 | 서버(세션 아이디만 클라이언트에 저장) |
종료 시점 | 쿠키 저장 시 설정(설정하지 않을 경우 웹 브라우저 종료 시 소멸) | 정확한 시점을 알 수 없음 |
리소스 | 클라이언트의 리소스 사용 | 서버의 리소스 사용 |
보안 | 클라이언트에 저장되므로 사용자의 변경이 가능하여 보안에 취약 | 서버에 저장되어 있어 상대적으로 안정적 |
가장큰 차이는 저장장소이다
cookie01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Cookie</title>
</head>
<body>
<% //스크립틀릿
Cookie[] cookies = request.getCookies();
out.print("cookies.length :" + cookies.length + "</p>");
for(int i=0; i<cookies.length; i++){
out.print("<p>"+cookies[i].getName()+" : " +
cookies[i].getValue() + "</p>");
}
out.print("<p>session.getId() : " + session.getId() + "</p>");
%>
<!--
요청URL : cookie01_process.jsp
요청파라미터 : {id=master, passwd=java}
-->
<form action="cookie01_process.jsp" method="post">
<p>아이디 : <input type="text" name="id"></p>
<p>비밀번호 : <input type="text" name="passwd"></p>
<p><input type="submit" value="전송" /></p>
</form>
</body>
</html>
cookie01_process.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%//스크립틀릿
//요청 URL : cookie01_process.jsp
//요청파라미터 : {id=master, passwd=java}
String user_id = request.getParameter("id"); //admin
String user_pw = request.getParameter("passwd"); //java
if(user_id.equals("admin")&&user_pw.equals("java")){
//Cookie 객체 생성
//userId : 쿠키name, user_id(admin) : 쿠키 value
Cookie cookie_id = new Cookie("userId",user_id);
response.addCookie(cookie_id);
//userPw : 쿠키name, user_pw(java) : 쿠키 value
Cookie cookie_pw = new Cookie("userPw", user_pw);
//response 내장 객체를 통해 쿠리르르 리턴받음
response.addCookie(cookie_pw);
out.print("<p>쿠키 생성 성공!</p>");
out.print("<p>" + user_id + "님 환영합니다.</p>");
}else{
out.print("<p>쿠키 생성 실패!</p>");
}
%>
<p><a href="cookie01.jsp">cookie01.jsp로 이동</a></p>
<!--
csrf : cross side request fergery(스프링 시큐리티)
-->
</body>
</html>
'JSP > JSP기초' 카테고리의 다른 글
[자바스크립트 완벽 가이드 정리] Window 객체 (0) | 2024.02.16 |
---|---|
부모요소, 자식요소, 형제요소 찾기 (0) | 2023.09.27 |
JSP(ch13) 세션을 이용한 사용시간 구하기 (0) | 2023.07.14 |
JSP(ch13) 세션(session)사용방법 (0) | 2023.07.13 |
JSP(ch13) 세션(session) (0) | 2023.07.13 |