다히의 개발일지
Session & Cookie 본문
우선, 프로젝트 (로그인 화면 구현) 관련해서 참조한 url 정보
https://kuzuro.blogspot.com/2018/04/13.html
http://www.mungchung.com/xe/spring/21229
[ 세션과 쿠키 ]
필요성 : 웹, HTTP 프로토콜이 비연결성, STATELESS 하기 때문이다.
HTTP는 요청과 응답을 주고받을 때 지속적으로 연결되어 있지 않다. 즉, 클라이언트가 서버로 REQUEST를 날리고, 서버가 클라이언트에게 RESPONSE로 응답을 주면 그 둘은 서로 모르는 사이가 된다.
클라이언트와 서버의 통신이 한 번 이루어지고 끝이 나면 서버는 데이터를 저장하지 않는다,(STATELESS)
쿠키 : 클라이언트에 저장되는 데이터인데, 쿠키에 로그인 정보를 저장해 놓으면 매번 REQUEST요청시 쿠키도 자동으로 전송되어 로그인이 끊기지 않는 것처럼 느낄 수 있다. 서버가 어떤 주기 동안 클라이언트의 상태를 알아줬으면 하는 데이터를 저장한다. EX) 쇼핑몰 장바구니에 사용
단점 – 쿠키는 브라우저에 저장되는 값이기 때문에 보안에 취약하다. 또한, 하나의 도메인에서 설정한 쿠키 값이 20개를 초과하면 가장 적게 사용된 쿠키부터 지워진다.
세션 : 서버에 저장되는 데이터,,, 더 구체적으로 이야기하면… 서버에 데이터를 저장한다기 보다 서버에서 클라이언트의 상태를 유지하는 수단!
일정 시간동안 같은 브라우저로부터 들어오는 일련의 요구를 하나의 상태로 보고 , 그 상태를 서버에 유지시키는 기술!
세션은 DB. 파일, 메모리, 쿠키 등 사용자 재량에 따라 저장을 할 수 있다.
위에서 설명했듯이 쿠키에는 session id만 저장하면 된다. 그러기 위해서는 우선 서버에서 세션을 생성한 후 세션 id를 쿠키에 알려줘야 한다. 이때는 Set-Cookie헤더에 seesion_id를 담아서 response와 함께 전달한다.
단점 - 세션은 서버의 자원을 사용하기 때문에 미세하더라도 서버에 부하를 준다. 때문에 속도가 느려질 수도 있다.
1. 프로젝트 구성에 VO를 넣어주어 필요할 때에 데이터를 꺼내 쓸 수 있도록 하였다.
2. 세션을 사용하기 위해서는 HttpSession session 을 추가해주거나 HttpSession session = request.getSession(); 객체로 생성해주어야 한다.
3. RedirectAttributes를 사용한 이유는 get방식으로 값을 전달받아 처리할 데이터가 있기 때문이다(msg를 사용)
4. Session.setAttribute(“name”, value); 를 사용하면 세션 값을 저장할 수 있다.
5. 세션을 사용하기 위해서 jsp 파일에서 ${}를 사용해주었다. servlet에서 만든 값들을 사용하기 위해서 쓰는 것
'다히의 피땀눈물 > ETC' 카테고리의 다른 글
[ 리눅스 ] centOS 버전 별 한글 깨짐 문제 해결 (0) | 2019.09.17 |
---|---|
[리눅스] centOS 버전 별 포트 열기 (0) | 2019.09.17 |
[리눅스] 아파치 No space left on device (0) | 2019.09.17 |
[리눅스] ssl 인증서 발급 (0) | 2019.09.03 |
[리눅스] 아파치 톰캣 설치 및 연동 (0) | 2019.09.03 |