JSP

JSP를 배워보자!!(Cookie)

25G 2021. 5. 6. 10:19

안녕하세요! 저번 포스팅에서 session에 대해서 포스팅을 했었는데요. 오늘 포스팅할 쿠키도 session과 정말 연관이 많이 있습니다! 

저번에 세션은 서버에 클라이언트의 데이터를 저장하는 방식이라서 보안에 좀 더 유리한 측면에 있지만 서버가 무거워진다는 단점이 있었습니다.

쿠키 또한 웹서버 간의 상태나 데이터를 지속적으로 유지하는 방법이지만

세션과는 달리 상태 정보를 웹 서버가 아닌 클라이언트에 저장하는 것입니다

그렇게 되면 서버의 부담이 훨씬 줄어들겠지만 조금 만 생각해 봐도 알 수 있듯이 클라이언트가 스스로 자신의 정보를 가지고 있는 것이기 때문에 보안에 취약합니다

 

쿠키의 동작 과정

1. 쿠키 생성 단계 : 주로 웹서버 측에서 생성

2. 쿠키 저장 단계: 웹브라우저는 응답 데이터에 포함된 쿠키를 쿠키 저장소에 보관

3. 쿠키 전송 단계 : 웹브라우저는 저장된 쿠키를 요청을 할 때마다 웹 서버에 전송.

 

이런 단계를 거쳐서 클라이언트가 서비스를 사용할 수 있게끔 하는 것입니다.

 

쿠키는 네이버만 써봐도 쉽게 접할 수 있으세요

예를 들면 아이디를 저장하는 기능이라던지 하는 것들이 다 쿠키를 사용해서 제공하는 서비스입니다.

 

쿠키는 세션과 다르게 클래스로 이루어져 있는데요

참고해서 사용해 주시면 좋을 것 같습니다

정리하자면

 

쿠키(Cookie) 세션(Session)
Cookie클래스 HttpSession인터페이스
텍스트 형식 Object형
클라이언트 저장 서버 저장(세션의 아이디)
종료시점 : 쿠키저장시 설정 종료 시점: 정확한 시점 알수 없음
클라이언트의 리소스 사용 서버의 리소스 사용
보안에 취약 상대적으로 안정적

비슷한 기능을 하지만 완전 다른 포인트와 메커니즘을 가지고 있다는 점을 기억하면 좋을 것 같습니다.

 

사용 예시

 

로그인 창을 만들고 action경로에 파일을 쿠키를 생성하고 저장하는 코드를 짜야겠죠?

쿠키는 클래스로 되어있고 크 클래스 인스턴스를 생성할 때 매개변수로 (String name, String value) 이렇게 돼있습니다.

자바를 잘 공부하신 분이라면 바로 떠오르시겠지만 컬렉션 프레임워크에 Map과 상당히 닮아 있는 데이터 형식인 것 같습니다.

첫 번째 매개변수 name은 쿠키에 저장할 데이터의 이름

두 번째 매개변수 value는 쿠키에 저장할 데이터

참고로 두번째 매개변수 값은 문자열만 저장되므로 정수, 실수, 문자를 저장하시려면 String클래스의 valueOF메서드를 사용해서 형 변환을 하셔야 합니다

쿠키는 하나에 하나의 데이터만 저장할 수 있습니다

 

쿠키 삭제

쿠키를 생성하는 법을 알아봤으니 삭제도 알아야 돼지만!!!! 한국말은 끝까지! 쿠키는 삭제라는 개념이 없습니다!!

그럼 쿠키를 없애어야 하는 상황에서는 어떻게 하냐?!!!!!!

그럴 땐 쿠키의 기간을 만료시켜서 사라지게 하는 방법이 있습니다.

요렇게 쿠키 클래스에 요청받은 쿠키를 배열에 다 저장하기 위해 getCookies메서드를 사용하고 잇습니다.

그리고 for문에 쿠키의 개수를 알 수 있는 length메서드로 쿠키의 개수만큼 쿠키 클래스에 setMaxAge를 사용해서 하나하나 다 만료시키고 있습니다.

 

자! 오늘은 이렇게 쿠키가 뭔지! 쿠키 클래스에 어떤 메서드가 들어있고 어떻게 사용하는지 슥샥쇽 훓터봤습니다.

그럼 다음에 또 찾아오겠습니다~!!