본문 바로가기
서블릿

[서블릿] 정보 공유 - URL rewriting, 쿠키, 세션

by 기록하는_사람 2022. 11. 15.

정보 공유

📌 www은 비연결형 구조의 HTTP 사용하기 때문에, 페이지 요청과 응답이 완료되면 연결이 유지되지 않음.

     따라서, 클라이언트가 다른 페이지를 요청할 때 부가적인 정보가 없으면, 서버는 클라이언트의 현재 상태 알 수 없음.

 

📌 위의 문제 해결 방법

① URL rewriting

② 쿠키

③ 세션

 

URL rewriting

📌 URL rewriting

: HTTP의 Query String을 이용하는 방식.

  URL에 파라미터 추가해 서버로 요청하는 형식.

 

📌 단점

① 정보 유지를 위해 파라미터를 매 페이지마다  확인하고, 계속 추가해야 함.

② 복잡한 정보 유지 어려움. 

 

쿠키

📌 쿠키

: 클라이언트에 저장되는 작은 정보.

  서버 요청에 의해 브라우저가 저장하며, 서버가 요청할 때 제공하는 방식. 

 

📌 특징

① 파일로 클라이언트의 컴퓨터에 저장되는 방식. → 보안상 문제 있을 수 있음.

② 광고 혹은 기타 목적으로 사용자의 이용 행태 추적에 이용될 수 있으며, 이 경우 사용자 정보 활용 동의 필요.

③ 재방문 등의 확인 용도로 많이 사용됨.

④ 'name=value" 형식이며, 유효 기간, 요청 경로 등 부가 속성 포함함.

⑤ 주로 자바스크립트 통해 처리되지만, HttpOnly 설정으로 서버에서만 사용하도록 설정 가능. 

 

📌 쿠키 동작 과정

① 서버에서 쿠키 생성.

② 쿠키를 응답 헤더에 넣어, 클라이언트로 전송.

③ 웹 브라우저는 쿠키를 하드 디스크(유효 기간 설정) 또는 브라우저 메모리(유효 기간 미설정)에 저장. 

④ 쿠키에 지정된 경로에 요청 시 받은 쿠키를 서버에 전송.  

 

세션

📌 세션

: 클라이언트가 웹 애플리케이션 서버에 접속할 때 서버 쪽에 생성되는 공간.

  내부적으로는 세션 아이디를 통해 참조됨.

  브라우저는 서버에 접속할 때 발급받은 세션 아이디를 기억하고, 서버는 해당 세션 아이디로 할당된 영역에 접근하는 형식.

 

📌 특징

① 세션 유효 시간이나 브라우저 종료 전까지 유지되므로, 서로 다른 페이지에서도 정보 공유 가능.

② 로그인 유지, 장바구니,  컨트롤러 구현 등 다양하게 사용됨.

③ 사용자마다 생성되는 공간으로, 동시에 많은 사용자가 세션을 통해 대량의 데이터를 관리한다면 충분한 메모리를 비롯한 세션 관리 대책 필요.

댓글