Cookie
브라우저에 저장 되는 데이터
웹브라우저에서 서버로 어떤 자원을 요청(request)을 하면
요청하는 대상이 jsp페이지라면, 요청을 받았을때 서버에서는
해당 jsp 파일이 처리가 되면서 쿠키라는 조그만 데이터가 담겨있는 조각을 생성하게 됩니다.
서버는 브라우저에 응답해주어야 하므로 reponse객체가 있는데,
그 reponse 헤더 안에 쿠키 정보를 추가해서 응답을 줍니다.
그걸 받은 브라우저는, 브라우저 내에 쿠키저장소에 해당 쿠키값을 저장해둡니다.
이렇게 서버가 만들어둔 쿠키값을 응답받아서 저장해두는 이유는 필요 시에 사용하기 위함입니다.
나중에 해당 서버로 요청(request)을 할때마다 그 서버가 발급해준 쿠키를 무조건 포함해서 보내게 되어있습니다.
서버에서는 그 요청(request)안에 쿠키값을 꺼내 쿠키 안에 들어있는 데이터가 어떤 의미를 갖고있는지를 알수있고,
이것을 통해서 필요한 것들(장바구니, id기억하기 등)을 처리 할 수 있게 됩니다.
Cookie 정리
- 웹 클라이언트 (브라우저)에 저장해놓고, 웹서버로 request 마다 포함하여 전송
- 웹 서비스를 이용하는 동안 유지할 데이터를 저장하는 용도(공개되어도 괜찮은 정보만)
- 유효시간 동안 브라우저에 유지
- 장바구니 , ID 기억하기 기능 등
Session
서버에서 생성되는 기본객체
서버에서 브라우저의 요청을 받을때,
이 요청이 어떤 브라우저가 보냈는지 서버입장에서 식별을 합니다.
최초로 서버에 요청을 했으면 어떤 브라우저가 나에게 무언가를 요청했는지 알 수 없습니다
서버쪽에서는 이 브라우저를 식별할수있도록 세션이라는 기본객체를 하나 만듭니다.
만들어진 세션 객체에는 세션ID라고 하는 값이 하나있습니다.
이 세션 값을 담아서 쿠키로 생성해서 response(응답)을 하게됩니다.
그러면 당연히 브라우저는 그 쿠키를 자신의 브라우저 로컬에 저장할 것입니다.
그리고 이렇게 저장된 쿠키는 이 서버로 요청을 할때마다 같이 포함해서 보내게 되어있습니다.
서버는 요청(request)에서 쿠키정보를 확인하고, JSESSIONID 쿠키의 값을 이용하여 브라우저를 식별합니다.
세션은 브라우저마다 하나씩 만들어지는 것이므로 이를 활용해서 로그인을 했을때 로그인 관련한 중요한 정보라던지
클라이언트에 저장시키면 위험한 것 민감한 것들은 세션에 저장해 둘 수 있습니다.
세션은 브라우저를 종료시켜서 종료된다는 메세지가 서버에 전달되거나,
또는 서버쪽에서 해당 세션 기본객체의 invalidate() 호출을 하면 세션객체가 사라지게 되고
그렇게 되면 요청이 왔을 때 서버에 식별하지 못하는 세션ID이니 이건 처음 요청하는 것이구나 하면서
새로운 세션을 만들게 됩니다, 그리고 새로 만들어진 세션을 응답해주어서 쿠키를 다시 저장하게 만듭니다.
Session 정리
- 웹 서버에서 요청을 보낸 웹클라이언트(브라우저)를 구분(식별)하기 위해 사용
- jsp 에서는 최초 요청시 내장객체(기본객체)로 세션이 생성됨 (이때, session ID도 생성)
- 생성된 세션에 setAttribute(), getAttribute()를 이용해 값을 저장하고 사용
- 세션객체는 웹서버에 생성된 객체이므로 중요한 정보를 저장하기 용이
- 웹 클라이언트(브라우저)에서 종료하거나 서버에서 session.invalidate() 시 세션객체 제거
텍스트 정리 출처 : IT핥기
https://www.youtube.com/watch?v=a2tvTi9qgaE
https://www.youtube.com/watch?v=VrWK1VPW5Qg
'STUDY > WEB' 카테고리의 다른 글
[Web] 스트림(Stream)과 버퍼(Buffer) (0) | 2023.04.03 |
---|---|
[Tomcat] 톰캣 캐시 부족 현상 해결방법 (0) | 2023.03.13 |
[Web] 웹소켓이란? (0) | 2023.03.01 |
[Web] TCP / IP 란? (0) | 2023.02.28 |
[Web] 웹서비스(Web Service)란? (0) | 2023.02.28 |