목차 돌아가기

클라이언트와 서버의 연결을 유지하는 방법

20-1 세션(Session)과 쿠키
  세션 쿠키
특징
Connectionless Protocol
- 웹 서비스는 HTTP 프로토콜을 기반으로 하는데, HTTP 프로토콜은 클라이언트와 서버의 관계를 유지 하지 않는 특징이 있다. 
- Http 통신은 한 번 연결하고 나서 끝나면 끊어버린다. 그 이유는 클라이언트의 요청이 너무 많아 서버의 부하를 줄이기 위해서이다.

불편한점 : 이러한 Connectionless Protocol의 불편함을 해결하기 위해서 세션과 쿠키를 이용한다. 세션과 쿠키는 클라이언트와 서버의 연결 상태를 유지해주는 방법으로, 세션은 서버에서 연결정보를 관리하는 반면 쿠키는 클라이언트에서 연결정보를 관리하는데 차이가 있다.
차이점 서버에서 서버연결정보 관리 클라이언트에서 연결정보 관리 
20-2 HttpAervletRequest를 이용한 세션 사용
  설명
서버에 세션 정보가 있다.
HttpServletRequest 이용

 

20-3 HttpSession을 이용한 세션 사용
방법 설명
HttpSession 이용 HttpServletRequest와 차이점은 거의 없으며, 단지 세션객체를 얻는 방법에 차이가 있을 뿐이다. 단 바로 httpSession을 바로 받았으므로 getSession을 해줄 필요가 없다. (이게 더 편한 것 같다.)
20-4 세션 삭제 (Invalidate())
  설명
로그아웃 또는 회원탈퇴 시 session.invalidate();를 통해 세션을 삭제 할 수 있다.
관련 코드
20-5 세션 주요 메서드 및 플로어
자주 쓰이는 메소드  
 
- 세션에서 자주 쓰이는 메소드 1, 2, 3번 마지막

20-6 쿠키(Cookie)
쿠키를 생성하는 방법 설명
1) mallMain()에서 쿠키를 생성하고, 파라미터로 받은 HttpServletResponse에 쿠키를 담고 있다.
2) 쿠키를 생성할 때는 생성자에 두 개의 파라미터를 넣어주는데 첫 번째는 쿠키이름을 넣어 주고 두 번째는 쿠키값을 넣어준다.

- setMaxAge(60*60*24*30) :
60초 * 60 * 24 * 30 = 1달
@CookieValue 에노테이션
: value속성은 쿠키이름을 나타내며 만약 value에 명시한 쿠키가 없을 경우 exception이 발생한다 그런 것을 방지하고자 required 속성이 있다. Required 속성은 기본 true인데 true인 경우 value값에 해당하는 쿠키가 없으면 exception이 발생하고 false이면 exception이 발생하지 않는다.
실제 실무에선 세션을 사용한다.(보안에 쿠키에 비교적 좋음) 쿠키는 보통 중요정보가 아닐 때 사용한다.

'Spring > [인프런] Spring FrameWork' 카테고리의 다른 글

Spring JDBC 연동 & JDBC Template  (0) 2022.01.08
리다이렉트, 인터셉트  (0) 2022.01.06
Controller 객체 구현  (0) 2021.12.31
Service & Dao 객체 구현  (0) 2021.12.30
스프링 MVC 웹서비스  (0) 2021.12.29

+ Recent posts