일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- http
- Exception
- 자바
- 스프링
- Thymeleaf
- Proxy
- pointcut
- jpa
- 김영한
- JDBC
- AOP
- 스프링 핵심 원리
- 백준
- spring
- 알고리즘
- Servlet
- Android
- Spring Boot
- QueryDSL
- db
- 스프링 핵심 기능
- kotlin
- transaction
- java
- Greedy
- 그리디
- JPQL
- SpringBoot
- springdatajpa
- 인프런
- Today
- Total
목록cookie (7)
개발자되기 프로젝트
1. 현상 현재 로그아웃을 시도하면 화면이 바뀌지 않는다. 아래와 같이 로그아웃을 클릭하면 logcalhost:8080/logout 으로 접속하고 session이 있는 경우 session을 만료시킨다. 이후 localhost:8080/으로 redirect된다. 이때 localhost:8080/ 접속 시 세션에 로그인 회원에 대한 정보가 없으면 home.html 정보가 있으면 loginHome.html을 뿌려준다. 하지만 로그아웃을 시도해도 뷰가 변경되지 않는다.. 2. 원인 분석 localhost:8080/ 접속 시 처리하는 로직 중 세션 유뷰 확인 이후에 현재 세션에 담긴 정보를 찍어보자. 만약 로그아웃 시도 후 위에 작성한 로그가 남는다면, 세션 만료 처리가 되지 않아 발생하는 문제이다. 2021-1..
Servlet은 HTTP Session기능 제공. 1. HttpSession 서블릿이 제공하는 HttpSession 도 앞서 만든 SessionManager 와 같은 방식으로 동작 서블릿을 통해 HttpSession 을 생성하면 다음과 같은 쿠키를 생성 쿠키 이름이 JSESSIONID 이고, 값은 추정 불가능한 랜덤 값이다. Cookie: JSESSIONID=5B78E23B513F50164D6FDD8C97B0AD05 HttpSession은 attribute(member정보), 쿠키 이름, 기타 정보(생성 시각, 마지막 요청 시각 등) 를 포함하는 객체. HttpServletRequest에서 httpRequest.getSession()을 통해 받을 수 있음. 2. HttpSession 사용 2.1 Sess..
기존에 사용된 쿠키 방식을 session으로 변경해보자. 1. LoginController loginV2() @PostMapping("/login") public String loginV2(@Validated @ModelAttribute("loginForm") LoginForm form, BindingResult bindingResult, HttpServletResponse response){ if(bindingResult.hasErrors()){ return "login/loginForm"; } Member loginMember = loginService.login(form.getLoginId(), form.getPassword()); if(loginMember == null){ bindingResul..
1. 세션 관리가 제공하는 기능 세션 생성 sessionId 생성 (임의의 추정 불가능한 랜덤 값) 세션 저장소에 sessionId와 보관할 값 저장 sessionId로 응답 쿠키를 생성해서 클라이언트에 전달 세션 조회 클라이언트가 요청한 sessionId 쿠키의 값으로, 세션 저장소에 보관한 값 조회 세션 만료 클라이언트가 요청한 sessionId 쿠키의 값으로, 세션 저장소에 보관한 sessionId와 값 제거 2. SessionManager 생성 cookie 이름은 항상 "mySessionId"임 -> 상수로 만듦 : "SESSION_COOKIE_NAME" session은 메모리에 저장하고, 동시성 문제로 인해 ConcurrentHashMap 사용 package hello.login.web.sess..
Header - 쿠키 Set - Cookie: 서버에서 클라이언트로 쿠키 전달(응답) Cookie: 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달. 0. Stateless, Connectionless HTTP의 특징은 Stateless, Connectionless.. bsh-developer.tistory.com 1. 쿠키 서버에서 로그인에 성공하면 HTTP 응답에 쿠키를 담아서 브라우저에 전달 그러면 브라우저는 앞으로 해당 쿠키를 지속해서 보내준다. 쿠키 생성 쿠키 사용(client 쿠키 전달1) 쿠키 사용(client 쿠키 전달2) 영속 쿠키, 세션 쿠키 영속 쿠키: 만료 날짜를 입력하면 해당 날짜까지 유지 세션 쿠키: 만료 날짜를 생략하면 브라우저 종료시 까지만 유지->브..
1. HttpServletReponse의 역할 응답 메시지 생성 편의기능 제공 2. HTTP 응답 메시지 생성 HTTP 응답코드 지정 200, 400, 500, 401.. 헤더 생성 바디 생성 3. 편의기능 Content-Type, 쿠키, Redirect 4. 헤더 생성 @WebServlet(name = "ResponseHeaderServlet", urlPatterns = "/response-header") public class ResponseHeaderServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletExcept..
Set - Cookie: 서버에서 클라이언트로 쿠키 전달(응답) Cookie: 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달. 0. Stateless, Connectionless HTTP의 특징은 Stateless, Connectionless이다. 즉 서버와 클라이언트는 서로의 상태를 유지하지 않고, data 전송 수 연결을 종료한다. 이와 같은 특징으로 아래와 같은 상황에서 문제..? 불펴함..? 이 발생할 수 있다. 무상태(stateless) 프로토콜 서버가 클라이언트이 상태를 보존하지 않음 장점 : 서버 확장성 높음, 스케일 아웃 단점 : 클라이언트가 추가 데이터 전송필요. 1. 상태 유지 :Stateful 서버가 클라이언트의 이 전 상태를 보존 2. 무 bsh-devel..