Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Flutter
- 백엔드
- AWS
- backend
- 후기
- 자바
- 로드밸런서
- error
- 도커
- 멘토링
- 트러블슈팅
- F-Lab
- grafana
- 에프랩
- 자바백엔드
- 코딩테스트
- EC2
- java
- redis
- 레디스
- 데이터구조
- Spring
- nGrinder
- github
- FLAB
- 플러터
- 알고리즘
- 부트캠프
- MySQL
- 성능테스트
Archives
- Today
- Total
민스씨의 일취일장
LogT | Java Spring의 쿠키와 세션에 대해 알게 된 모든 내용과 고민들 본문
Programming Language & Framework/JAVA & Spring
LogT | Java Spring의 쿠키와 세션에 대해 알게 된 모든 내용과 고민들
읻민스 2023. 1. 11. 23:35반응형
Java Spring의 쿠키와 세션에 대한 공부를 하면서 알게 된 내용을 시간 순으로 기록하고 있다. 쿠키와 세션은 Java Spring에서만 사용되는 개념은 아니기 때문에 몇몇 특정 Spring 코드 외에는 범용적으로 이해할 수 있는 내용일 것이라고 생각한다.
쿠키와 세션
2023년 1월 11일
쿠키란?
쿠키는 브라우저에서 생성하는 데이터 모음이다. 데이터는 배열과 같이 키(key)와 값(value) 한 쌍으로 저장되고 여러 쌍이 저장될 수 있다.
특징
- 아스키문자만 담을 수 있다. 따라서 한글과 같은 문자는 Encode 해줘야 한다.
- 서버에 요청을 보낼 때 Request Header에 cookie 라는 항목으로 전달된다.
쿠키 다루기
생성
Cookie cookie = new Cookie("key", "value");
response.addCookie(cookie);
삭제
Cookie cookie = new Cookie("key", "");
cookie.setMaxAge(0);
response.addCookie(cookie);
수정
cookie.setDomain("new.domain");
cookie.setPath("/new/Path");
읽기
Cookie[] cookies = request.getCookies();
for(Cookie cookie : cookies){
String name = cookie.getName();
String value = cookie.getValue();
...
}
HTML에서 쿠키값 사용하기
${cookie.id.value}
세션이란?
서버에서 브라우저별로 생성하고 서버에 저장하는 데이터 모음이다. 브라우저, 즉 사용자를 식별하는데 주로 사용된다.
세션과 쿠키의 상호작용
브라우저가 어떤 요청을 하면 서버는 session 객체를 생성한다. session 객체가 생성되면 session-id가 할당되고 response 객체에 set-cookie 항목으로 sesssion-id가 전달된다.
response 객체 |
set-cookie : JSESSIONID=생성된세션아이디 |
response 객체를 받은 브라우저는 set-cookie를 이용해 쿠키를 생성하고 쿠키 안에 session-id를 저장한다. 그 다음 해당 웹사이트의 요청을 보낼때는 request 객체에 cookie 정보를 보낸다.
request 객체 |
cookie : JSESSIONID=전달받은세션아이디 |
세션 다루기
읽기
HttpSession session = request.getSession();
// 위 명령을 통해 서버에 저장되어 있는 수 많은 세선 중
// 쿠키에 저장되어 있는 세션ID와 일치하는 세션을 불러온다.
종료
// 즉시 종료 하기
session.invalidate();
// 예약 종료 하기
session.setMaxInactivateInterval(time);
// time은 초를 단위로 작성하면 된다.
따로 종료를 하지 않을 때 일정 시간이후 자동으로 종료되도록 xml에 설정할 수 있다.
<session-config>
<session-timeout>time</session-timeout>
</session-config>
time은 초 단위로 작성하면 된다.
728x90
반응형
'Programming Language & Framework > JAVA & Spring' 카테고리의 다른 글
LogT | Java Spring로 DB 다루기에 대해 알게된 모든 내용과 고민들 (0) | 2023.01.13 |
---|---|
LogT | Java Spring의 Exception 처리에 대해 알게 된 모든 내용과 고민들 (0) | 2023.01.12 |
LogT | Java Spring의 Application내의 데이터 저장소인 내장객체의 유효범위와 속성에 대해 알게된 모든 내용과 고민들 (0) | 2023.01.10 |
LogT | Java Spring의 서블릿과 JSP에 대해 알게된 모든 내용과 고민들 (0) | 2023.01.10 |
LogT | Java Spring의 MVC 패턴에 대해 알게된 모든 내용과 고민들 (0) | 2023.01.09 |