쿠키
쿠키와 세션 (feat. HTTP의 Connectionless 와 Stateless)
쿠키와 세션 (feat. HTTP의 Connectionless 와 Stateless)
2023.06.16HTTP의 Connectionless와 Stateless HTTP는 요청과 응답을 한번 주고받으면 바로 연결을 끊어버리는 특성을 가지고 있다. 그리고 다음 요청을 하기 위해 다시 연결을 맺어야 한다. 이를 HTTP의 Connectionless(비연결성) 라고 한다. 또한 HTTP 프로토콜은 요청과 응답을 교환하는 동안 상태(Status)를 저장하지 않는다. 따라서 HTTP 레벨에서는 이전에 보냈던 request나 response를 기억하지 못한다. 즉, HTTP 요청은 직전의 요청과 전혀 관련이 없다. 이를 HTTP의 Stateless(비상태성) 라고 한다. HTTP가 상태를 갖지 않음으로서 연결을 맺을 때 발생하는 오버헤드가 줄어들고, 데이터를 빠르고 확실하게 처리할 수 있다. 또한 요청간의 상태를 공..
스프링 MVC 2 - 정리(로그인 처리1 - 쿠키, 세션)
스프링 MVC 2 - 정리(로그인 처리1 - 쿠키, 세션)
2022.09.20정리(로그인 처리1 - 쿠키, 세션) 로그인 요구사항 프로젝트 생성 패키지 구조 설계는 항상 web에서 domain으로 의존관계가 흐르도록 단방향으로 설계해야 한다. 즉, web은 domain을 알고있지만, domain은 web을 모르도록 설계해야 한다. 이렇게 하면 web 패키지를 모두 삭제해도 domain에는 전혀 영향이 없다. 홈 화면 회원 가입 로그인 기능 로그인 처리하기 - 쿠키 사용 로그인을 하면 서버에 id, password를 넘기고 서버는 쿠키에 회원의 memberId를 넘겨서 보냇다. 이렇게 쿠키만으로 세션이 유지되는 방식처럼 처리를 하니까 문제가 있었다. 쿠키와 보안 문제 쿠키 값은 임의로 변경할 수 있다. 쿠키에 보관된 정보는 훔쳐갈 수 있다. 해커가 쿠리를 한번 훔쳐가면 평생 사용할..
스프링 MVC 2 - 프로젝트 생성
스프링 MVC 2 - 프로젝트 생성
2022.09.10프로젝트 생성 이전 프로젝트에 이어서 로그인 기능을 학습해보자. 이전 프로젝트를 일부 수정해서 login-start라는 프로젝트에 넣어두었다. 프로젝트 설정 순서 login-start의 폴더 이름을 login로 변경하자. 프로젝트 임포트 File → Open → 해당 프로젝트의 build.gradle을 선택하자. 그 다음에 선택창이 뜨는데, Open as Project를 선택하자. ItemServiceApplication.main()을 실행해서 프로젝트가 정상 수행되었는지 확인하자. 실행 http://localhost:8080 실행하면 HomeController에서 /items로 redirect 한다. 패키지 구조 설계 package 구조 hello.login domain item member login..