일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 논리 연산자
- 반복문
- 예약어
- SQL
- 함수
- 오버라이딩
- 객체지향
- 비교 연산자
- 스프링시큐리티 로그아웃
- java
- 상속
- 객체
- SQL튜닝
- 이클립스 설치
- 친절한 SQL 튜닝
- join
- 배열
- 친절한 SQL
- SQL 튜닝
- 식별자
- 연산자
- 인텔리제이 Web 애플리케이션
- spring 게시판 삭제
- @PreAuthorize("isAuthenticated()")
- 자바의정석
- SpringSecurity 로그아웃
- SpringSecurity 로그인
- 산술 연산자
- 오버로딩
- StringBuffer
- Today
- Total
gi_dor
쿠키 본문
1. 쿠키
이름과 값의 쌍으로 구성된 정보. 아스키 문자만 가능
이름 : 알파벳 + 숫자
값 : 공백, 세미콜론을 제외한 아스키 가능
- 서버에서 생성 후 전송, 브라우저에 저장. 유효기간 이후 자동 삭제(수동 삭제도 가능하다.)
- 서버에 요청 시 domain, path가 일치하는 경우(+ 하위 경로 포함)에만 자동 전송
쿠키 = 클라이언트 식별 기술
쿠키에는 도메인 정보, path, 유효기간 같은 정보가 들어있다.
IP로는 구별이 안 되기 때문에 쿠키를 사용하는 것이다.
2.쿠키의 작동 과정
처음에 클라이언트가 서버에게 요청. 서버가 코드를 수행해서 쿠키가 생성되고 응답 헤더에 쿠키를 넣어서 보낸다
그럼 서버에서 보내준 쿠키가 브라우저에 저장된다.
그 뒤로 Client가 Server에 요청을 하게되면 자동으로 그 쿠키가 요청헤더에 함께 따라가게 되어있다. 그럼 서버쪽에서는 그 쿠키를 자기가 발급했으니까 한다. 이 클라이언트가 누군지 식별 가능.
쿠키는 브라우저에 저장하기 때문에 사용자가 쿠키를 삭제할 수도 있고 서버가 발급해주는 쿠키를 거부할 수도 있다
3. 쿠키 생성
전 세계에서 사용할 수 있기 때문에, 클라와 서버의 시간이 맞는다는 보장이 없다. 그래서 상대시간과 절대시간 둘 다 명시해준다.
Cookie cook = new Cookie("id",id); // 쿠키 생성 ("name" , "value")
cook.setMaxAge(60*60*24); // 유통기한
response.addCookie(cook); // 응답헤더에 쿠키 추가
4.쿠키 삭제
서버에서 변경된 쿠키를 응답에 추가하면 새로운 쿠키를 브라우저가 받아서 똑같은 이름의 쿠키가 있으면
새로 받은 내용으로 갱신한다. 이 과정에서 삭제되는 것이다.
Cookie cookie = new Cookie("id", ""); // 삭제할 쿠키와 같은 이름 쿠키 생성
cookie.setMaxAge(0); // 유효기간을 0으로 설정(삭제)
response.addCookie(cookie); // 응답에 쿠키 추가
5. 쿠키 읽기(가져오기?)
- 쿠키가 여러개일 수 있기 때문에 배열로 받는다.
- 쿠키가 없으면 null이라 null 체크해야 한다.
- 호스트(Domain), path(경로)와 일치하는 쿠키를 찾아서 헤더에 넣어서 보내준다.
Cookie[] cookies = request.getCookies(); // 쿠키 읽기. 없으면 null이라 null체크 해야 한다.
for (Cookie cookie : cookies) {
String name = cookie.getName();
String value = cookie.getValue();
System.out.printf("[cookie]name = %s, value = %s\n", name, value);
}
6. 실습
1. 브라우저에서 쿠키 만들기
2. 실습 뚜들겨 보기
html css 못해서 이게 최선임..
if (rememberId) {
Cookie cookie = new Cookie("id", id); // 1. 쿠키를 생성
response.addCookie(cookie); // 2. 응답에 저장
} else {
// 쿠키를 삭제
Cookie cookie = new Cookie("id", id);
cookie.setMaxAge(0); // 유효기간
response.addCookie(cookie);
}
if (request.getParameter("check") != null) {
ch = "checked";
// 체크 된거 확인되었으니 쿠키 생성
Cookie cook = new Cookie("id",id);
cook.setMaxAge(60*60*24);
response.addCookie(cook);
}else {
ch = "";
// 체크 감별후 체크안되어 있다고 뜨면
// 쿠키 삭제해보기
Cookie cook = new Cookie("id",id);
cook.setMaxAge(0);
response.addCookie(cook);
}
'First > Spring' 카테고리의 다른 글
게시판 - 삭제 remove() // 공지사항 글 삭제 (0) | 2023.07.18 |
---|---|
FAQ 게시판 만들기 - 타입 선택시 해당 타입의 글만 보이게 하기 (0) | 2023.07.11 |
spring 게시판 페이지 이동 pageHandler << < > >> (0) | 2023.06.24 |
SqlSession 메서드 - mapper.xml 작성시 주의!! (0) | 2023.06.23 |
브라우저에서 ID ,PW 입력받아 ID값 PW 값 브라우저에 띄우기 ? (0) | 2023.05.04 |