2-23 ~ 2-26 쿠키 & 세션

서현우·2022년 5월 28일
0

복습

목록 보기
18/34

쿠키

이름과 값의 쌍으로 구성된 작은 정보. 아스키 문자만 가능.
한글은 URL인코딩 필요.
서버에서 생성 후 전송, 브라우저에 저장. 유효기간 이후 자동 삭제.
서버에 요청시 domain, path가 일치하는 경우에만 자동 전송.
클라이언트 식별기술.

//쿠키 생성후 응답에 추가
Cookie cookie = new Cookie("id", "asdf"); //생성
cookie.setMaxAge(60*60*24); //유효기간
response.addCookie(cookie); //응답에추가
//쿠키 삭제
Cookie cookie = new Cookie("id", ""); 
cookie.setMaxAge(0); //유효기간0으로해서 삭제
response.addCookie(cookie);
//쿠키 변경
Cookie cookie = new Cookie("id","");
cookie.setValue(URLEncoder.encode("서현우")); //값 변경
cookie.setDomain("www.fastcampus.co.kr"); //도메인 변경
cookie.setPath("/ch2"); //경로 변경
cookie.setMaxAge(60*60*24*7); //유효기간 변경
response.addCookie(cookie); //응답에 쿠키 추가
//쿠키 읽어오기
Cookie[] cookies = request.getCookie(); //쿠키 읽기

for(Cookie cookie : cookies){
	String name = cookie.getName();
	String value = cookie.getValue();
}

세션

서로 관련된 요청들을 하나로 묶은 것 - 쿠키를 이용.
browser마다 개별 저장소(session객체)를 서버에서 제공.

HttpSession session = request.getSession(); //세션을 얻음
session.setAttribute("id", "asdf"); 
//메서드
getId() //세션ID를 반환
getLastAccessedTime() //제일 마지막 요청 시간
isNew() //새로 생성된 세션인지 
invalidate() //세션 즉시종료
setMaxInactiveInterval(int interval) //예약종료
getMaxInactiveInterval() //예약종료 시간 반환
//세선 종료
//1. 수동종료
HttpSession session = request.getSession();
session.invalidate(); //즉시종료
session.setMaxInactiveInterval(30*60); //예약종료

//2. 자동종료 - web.xml
<session-config>
	<session-timeout>30</session-timeout>
</session-config>

쿠키와 세션

  • 쿠키(Cookie)
    브라우저에 저장, 서버부담x, 보안에불리, 서버다중화에 유리
  • 세션(HttpSession)
    서버에 저장, 서버부담o, 보단에유리, 서버다중화에 불리.
profile
안녕하세요!!

0개의 댓글