Web

Server, Session / Cookie 사용 방법

greenyellow-s 2024. 9. 10. 14:25
Connetionless

 

HTTP 프로토콜은 클라이언트의 요청에 대한 응답을 하고 나면 해당 클라이언트와의 연결을 지속하지 않는다.


Session / Cookie

 

주소에 정보를 실어 보내지 않아도 데이터들을 기억하기 위해 사용한다.


Cookie

 

생성된 쿠키는 클라이언트의 웹브라우저에 저장한다.

 

ID기억으로 다음에 접속시 별도의 절차없이 빠르게 연결 가능하다.

사생활 침해의 문제가 있다.

사용되는 예 : 팝업창의 오늘 하루 창 띄우지 않음, 새로고침 조회수 늘리는걸 방지, 최근 본 목록 ...


쿠키 생성

 

Cookie cookie = new Cookie("쿠키명", 값);
cookie.setMaxAge(3); // 초단위

 

생성된 쿠키는 클라이언트의 웹 브라우저에 저장

 

response.addCookie(cookie);

 

쿠키 받아오기

 

특정 쿠키만을 가져오지 못하고, 모든 쿠키를 다 가져온다.
Cookie[] ar= request.getCookies();

 

쿠키 삭제

 

쿠키 삭제

ar[i].setMaxAge(0);

 

클라이언트에 쿠키를 삭제한 사실을 저장

response.addCookie(ar[i]);


Session

 

웹 서버쪽의 웹 컨테이너에 상태를 유지하기 위한 정보가 저장된다.

 

세션은 기본 시간이 1800초(30분) 이며 각 클라이언트 고유 Session ID를 부여한다.

Session ID로 클라이언트를 구분하여 각 클라이언트 요구에 맞는 서비스를 제공한다.


세션 생성

 

HttpSession session = request.getSession();

session.setMaxInactiveInterval(30*60);

 

** JSP에서는 session이 내장객체로 이미 있기 때문에 새로 생성하지 않아도 사용 가능하다.

 

세션 부여

 

session.setAttribute("세션명","값");

 

세션 얻어오기

 

session.getAttribute("세션명");

 

저장된 세션값을 가져올때 세션값은 String이 아니다. Object 타입으로 받아온다.

따라서 String 으로 받을 때는 (String) session.getAttribute("세션명"); 으로 변형시켜야 한다.

 

세션 삭제

 

session.removeAttribute(" 세션명 ");

 

모든 세션 삭제

 

session.invalidate();

 

 

 

 

'Web' 카테고리의 다른 글

WEB, MVC 란?  (2) 2024.10.16
Server, Connection Pool이란?  (0) 2024.09.10
Server, JSP란?  (0) 2024.09.10
Server, Servlet으로 DB에내용 저장/출력하기  (0) 2024.09.10
Server, Servlet이란?  (0) 2024.09.09