1. 쿠키(cookie)
▷ 클라이언트와 웹 서버 간의 상태를 지속적으로 유지하는 방법
▷ 쿠키는 세션과 달리 상태 정보를 웹 서버가 아닌 클라이언트에 저장
▶ 예를 들어 어떤 웹 사이트를 처음 방문한 사용자가 로그인 인증을 하고 나면 아이디와 비밀번호를 기록한 쿠키가
만들어지고 그 다음부터 사용자가 그 웹 사이트에 접속하면 별도의 절차를 거치지 않고 쉽게 접속할 수 있음
▷ 클라이언트의 일정 폴더에 정보를 저장하기 때문에 웹 서버의 부하를 줄일 수 있다는 것이 장점
▷ 반면에 웹 브라우저가 접속했던 웹 사이트에 관한 정보와 개인 정보가 기록되기 때문에 보안에 문제가 있음
◎ 쿠키의 동작 과정
1. 쿠키 생성 단계: 주로 웹 서버 측에서 생성. 생성된 쿠키는 응답 데이터에 함께 저장되어 웹 브라우저에 전송됨
2. 쿠키 저장 단계: 웹 브라우저는 응답 데이터에 포함된 쿠키를 쿠키 저장소에 보관.
쿠키는 종류에 따라 메모리나 파일로 저장됨
3. 쿠키 전송 단계: 웹 브라우저는 한 번 저장된 쿠키를 요청이 있을 때마다 웹 서버에 전송.
웹 서버는 웹 브라우저가 전송한 쿠키를 사용하여 필요한 작업을 수행할 수 있음.
◎ Cookie 클래스의 메소드 종류
◎ 쿠키와 세션의 차이
2. 쿠키 생성
▷ Cookie( ) 메소드를 사용
▷ 쿠키를 생성한 후에는 반드시 response 내장 객체의 addCookie( ) 메소드로 쿠키를 설정해야 함
▷ 첫 번째 매개변수 name은 쿠키를 식별하기 위한 이름
▷ 두 번째 매개변수 value는 쿠키 값
◎ 쿠키 생성 예제
1. cookie01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="cookie01_process.jsp" method="post"> <p> 아 이 디 : <input type="text" name="id"> <p> 비밀번호 : <input type="text" name="passwd"> <p> <input type="submit" value="전송"> </form> </body> </html>
2. cookie01_process.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% String user_id = request.getParameter("id"); String user_pw = request.getParameter("passwd"); if(user_id.equals("admin") && user_pw.equals("1234")){ Cookie cookie_id = new Cookie("userID", user_id); Cookie cookie_pw = new Cookie("userPW", user_pw); response.addCookie(cookie_id); response.addCookie(cookie_pw); out.println("쿠키 생성이 성공했습니다<br>"); out.println(user_id + "님 환영합니다"); } else { out.println("쿠키 생성이 실패했습니다"); } %> </body> </html>
쿠키는 세션과 달리 상태 정보를 웹 서버가 아닌 클라이언트에 저장하므로 이후에 로그인 등을 수행할 때 기록이 남아있습니다. 따라서 편리하지만 보안성은 취약하네요!
저희가 크롬 등의 웹 사이트를 접속할 때 로그인 아이디와 패스워드 다 저장되어서 누르면 값들이 자동으로 입력되는 것이 쿠키의 역할이 었네요. 또한 웹 사이트 방문 기록들도 쿠키였어요!!
너무 많은 정보를 쿠키에 저장해두지 않는게 좋겠네요!!
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
'BackEnd > JSP' 카테고리의 다른 글
[JSP 웹 프로그래밍] JDBC 데이터베이스와 JSP 연동 1 (JDBC 드라이버 로딩, DBMS 접속) (1) | 2023.03.12 |
---|---|
[JSP 웹 프로그래밍] 쿠키 2 (Cookie 정보 얻기, 삭제) (0) | 2023.03.12 |
[JSP 웹 프로그래밍] 세션 2 (session 삭제, 유효 시간 설정) (0) | 2023.03.12 |
[JSP 웹 프로그래밍] 세션 1 (session 생성, 정보) (0) | 2023.03.08 |
[JSP 웹 프로그래밍] 필터 2 (web.xml 파일의 필터 구성) (0) | 2023.03.08 |