본문 바로가기

TIL/Spring

세션 & 쿠키

반응형

# Session & Cookie

- Connetionless Protocol

웹 서비스는 HTTP 프로토콜을 기반으로 하는데, HTTP 프로토콜은 클라이언트와 서버의 관계를 유지하지 않는 특징이 있다

(서버의 과부화를 피하기 위해서 한번 연결하고 끊는다)

서버의 부하를 줄일 수 있는 장점은 있으나, 클라이언트의 요청 시마다 서버와 매번 새로운 연결이 생성되기 때문에

일반적인 로그인 상태 유지, 장바구니 등의 기능을 구현하기 어렵다

이러한 Connectionless Protocol의 불편함을 해결하기 위해서 세션과 쿠키를 이용한다

 

세션과 쿠키는 클라이언트와 서버의 연결 상태를 유지해주는 방법으로, 세션은 서버에서 연결 정보를 관리하는 반면

쿠키는 클라이언트에서 연결 정보를 관리하는데 차이가 있다 

 

스프링 MVC에서 HttpServletRequest를 이용해서 세션을 이용하려면 컨트롤러의 메서드에서 파라미터로

HttpServletRequest를 받으면 된다 

 

 

# HttpSession을 이용해서 세션 사용

HttpServletRequest와 차이점은 거의 없으며, 단지 세션객체를 얻는 방법에 차이가 있을 뿐이다

 

 

# 세션 삭제

세션을 삭제하는 방법은 세션에 저장된 속성이 더 이상 필요 없을 때 사용(로그아웃, 회원 탈퇴)

# 세션 주요 메서드 


# 쿠키 (Cookie)

  • mallMain()에서 쿠키를 생성하고, 파라미터로 받은 HttpServletResponse에 쿠키를 담고 있다
  • 쿠키를 생성할 때는 생성자에 두 개의 파라미터를 넣어주는데 첫 번째는 쿠키 이름, 두 번째는 쿠키값을 넣어준다

  • mallMain()에서 생성된 쿠리를 mallIndex()에서 사용한다
  • 쿠키를 사용할 때는 @CookieValue를 사용한다

@CookieValue 어노테이션의 value 속성은 쿠키 이름을 나타내는데, 만약 value에 명시한 쿠키가 없을 경우 익셉션이 발생한다

익셉션을 막는 방법이 있는데, 바로 required 속성이다. Required 속성은 기본값으로 true를 가지는데 require가 true인 경우

value값에 해당하는 쿠키가 없으면 익셉션이 발생한다

따라서 required 속성 값을 false로 설정해서 value값에 해당하는 쿠키가 없어도 익셉션이 발생하지 않도록 한다

 

 

 

반응형

'TIL > Spring' 카테고리의 다른 글

Spring MVC HTTP  (0) 2021.09.24
리다이렉트 & 인터셉터  (0) 2021.08.22
Controller 객체 구현  (0) 2021.08.22
Service & Dao 객체 구현  (0) 2021.08.18
STS를 이용하지 않은 웹 프로젝트 설정하기  (0) 2021.08.18