본문 바로가기

JSP

JSP 쿠키

웹 브라우저는 파라미터를 사용해서 웹 서버에 정보를 전달한다.

 

그러면 웹 서버가 웹 브라우저에게 정보를 어떻게 전달할까 ?

 

답은 바로 쿠 . 키 를 이용한다는 것이다.

 

생각하면 떠오를것이다.

우리가 자주찾는 웹사이트에서 로그인 할때 본인의 로그인 폼에서 아이디가 자동으로 입력되거나 할때다.

 

웹서버와 웹 브라우저는 쿠키를 사용해서 서로 필요한 값을 공유하게 되며 상태를 유지할 수 있다

오늘은 쿠키에 대해 정복해보자!

 

 

 

 

 

쿠키(cookie)'는 웹 브라우저가 보관하고 있는 데이터로서 웹 서버에 요청을 보낼 때 함께 전송

동작방식

 

쿠키의 동작방식

 

 

🍪 쿠키의 구성

  • 구성 요소

–이름 - 각각의 쿠키를 구별하는 데 사용되는 이름

–값 - 쿠키의 이름과 관련된 값

–유효시간 - 쿠키의 유지 시간

–도메인 - 쿠키를 전송할 도메인

–경로 - 쿠키를 전송할 요청 경로

  • 쿠키 이름의 제약

–쿠키의 이름은 아스키 코드의 알파벳과 숫자만을 포함할 수 있다.

–콤마(,), 세미콜론(;), 공백(' ') 등의 문자는 포함할 수 없다.

–'$'로 시작할 수 없다.

 

 

 

🍪 JSP에서 쿠키 생성 / 읽기

• Cookie 클래스를 이용해서 쿠키 생성

 

 

 

 

 

클라이언트가 보낸 쿠키 읽기

• 읽기 관련 주요 메서드

 

 

 

 

 

 

 

 

 

 

 

 

• 읽기 관련 주요 메서드

• 읽기 관련 주요 메서드

 

🍪 쿠키 값의 인코딩/디코딩 처리

  • 쿠키는 값으로 한글과 같은 문자를 가질 수 없음

–쿠키의 값을 인코딩해서 지정할 필요 있음

  • 쿠키 값의 처리

–값 설정시 : URLEncoder.encode("값", "euc-kr")

  • 예, new Cookie("name", URLEncoder.encode("값", "euc-kr"));

–값 조회시 : URLDecoder.decode("값", "euc-kr")

  • Cookie cookie = …; String value = URLDecoder.decode(cookie.getValue(), "euc-kr");

 

 

 

🍪 쿠키 값 변경

• 기존에 존재하는 지 확인 후, 쿠키 값 새로 설정

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


사실 쿠키도 보안적인 내용만 아니라면 유용하게 사용이 가능하다.




쿠키의 경우 세션과는 달리 사용자 클라이언트 PC에 저장이 되므로 보안적인 면에서 상당히 제약이 있다

하지만 특수한 경우로 세션 사용이 여의치 않거나 할때에는 쿠키를 적절히 사용해야 하는데

이때에는 쿠키의 유효시간을 조정하여 외부로의 노출을 최소화 할 수 있다.



쿠키는 쉬운편이니 잘 이해해보자 


1. 쿠키 생성하기

 

 

<%@ contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%

 

// 회원번호

String memberNo = "58272836" ;

 

 

// 회원번호를 쿠키에 지정한다

Cookie c = new Cookie("memberNo", memberNo) ;

 

// 쿠키에 설명을 추가한다

c.setComment("회원번호") ;

 

// 쿠키 유효기간을 설정한다. 초단위 : 60*60*24= 1일

c.setMaxAge(60*60*24) ;

 

// 응답헤더에 쿠키를 추가한다.

response.addCookie(c) ;

%>

 

 

2. 쿠키 사용하기(값 가져오기)

 

 

<%@ contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%

 

/* 쿠키값을 가져와보자 */

Cookie[] cookies = request.getCookies() ;

 

if(cookies != null){

 

for(int i=0; i < cookies.length; i++){

Cookie c = cookies[i] ;

 

// 저장된 쿠키 이름을 가져온다

String cName = c.getName();

 

// 쿠키값을 가져온다

String cValue = c.getValue() ;

}

}

%>

 

 

 

3. 쿠키 삭제하기

 

 

 

<%@ contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%

 

// 전체 쿠키 삭제하기

Cookie[] cookies = request.getCookies() ;

 

if(cookies != null){

for(int i=0; i < cookies.length; i++){

 

// 쿠키의 유효시간을 0으로 설정하여 만료시킨다

cookies[i].setMaxAge(0) ;

 

// 응답 헤더에 추가한다

response.addCookie(cookies[i]) ;

}

}

 

 

// 특정 쿠키만 삭제하기

Cookie kc = new Cookie("memberNo", null) ;

kc.setMaxAge(0) ;

response.addCookie(kc) ;

 

%>

* 특정 쿠키만 삭제시 해당 쿠키명의 value 값을 null로 지정하고 유효시간을 0으로 처리하여 만료시키면 된다.

 

 

덧) 일반 사용자가 브라우저 내의 기능인 "쿠키 차단"을 사용했을경우 쿠키는 무용지물이 된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'JSP' 카테고리의 다른 글

JSTL  (0) 2023.11.02
EL 표현식 문법과 사용 방법  (0) 2023.11.02
세션 로그인  (0) 2023.10.26
세션  (0) 2023.10.26
JSP 기초 / 선행학습 / JSP 주석사용 / JSP 코드  (0) 2023.10.25