240110 TIL 브라우저 작동방식, 쿠키와 세션

HR J·2024년 1월 10일
0

스프링 개념 정리

목록 보기
4/7

브라우저의 작동방식

프로세스

1. 클라이언트 요청
브라우저에서 사용자가 웹 애플리케이션에 접속, 특정 URL을 요청.
이 요청은 HTTP 요청으로 전달.

2. DispatcherServlet
DispatcherServlet은 Spring MVC 프레임워크에서 중앙 집중식 컨트롤러로 작동.
클라이언트의 요청을 받아들이고, 이를 처리하기 위해 다른 컴포넌트들과 상호작용함.

3. HandlerMapping
HandlerMapping은 클라이언트 요청과 매핑된 컨트롤러(Handler)를 찾아줌.
요청된 URL에 해당하는 컨트롤러를 찾기 위해 등록된 매핑 정보를 참조함.

4. Controller
컨트롤러는 클라이언트 요청을 처리하는 데 사용됨.
요청에 맞는 비즈니스 로직을 수행하고, 데이터를 처리한 후에는 결과를 반환.

5. ViewResolver
ViewResolver는 컨트롤러가 반환한 논리적인 뷰 이름을 실제 뷰로 매핑해줌.
뷰 이름을 기반으로 실제 뷰 객체를 찾아주는 역할을 함.

6. View
View는 클라이언트에게 보여질 결과 화면을 생성하는 역할.
주로 JSP, Thymeleaf 등의 템플릿 엔진을 사용하여 동적인 HTML을 생성.

7. 클라이언트 응답
생성된 뷰는 HTML 형태로 렌더링되어 클라이언트에게 응답으로 전송됨.
브라우저는 이 응답을 받아서 화면에 표시함.

이러한 단계를 거쳐 Java Spring에서 브라우저의 작동 방식이 이루어짐. 이 과정을 통해 클라이언트의 요청을 처리하고, 그에 맞는 응답을 생성하여 브라우저에 전달함.

쿠키와 세션

쿠키(Cookie)

  • 쿠키는 클라이언트(브라우저)에 저장되는 작은 텍스트 파일.
  • 서버에서 클라이언트로 전송되어 클라이언트에 저장, 이후 해당 도메인의 요청에 함께 전송됨.
  • 주로 사용자 인증, 세션 관리 등에 활용됨.
  • 클라이언트가 요청을 보낼 때마다 쿠키는 자동으로 서버로 전송되어 서버에서 상태 정보를 유지함.

세션(Session)

  • 세션은 서버 측에서 클라이언트의 상태 정보를 유지하기 위한 개념.
  • 클라이언트가 서버에 접속하면 서버는 클라이언트에게 고유한 세션 ID를 부여함.
  • 이후 클라이언트의 요청마다 세션 ID를 통해 클라이언트의 상태 정보를 식별하고 유지함.
  • 세션은 일정 시간 동안 유지되며, 클라이언트가 브라우저를 닫거나 세션 만료 시간이 지나면 삭제됨.

무상태(Stateless)

  • 웹은 기본적으로 무상태 프로토콜인 HTTP를 기반으로 동작.
  • 무상태란 클라이언트와 서버 간의 상태 정보를 유지하지 않는 것을 의미.
  • 각각의 요청은 독립적으로 처리되며, 이전 요청과의 관계를 유지하지 않음.
  • 이로 인해 매 요청마다 인증 정보를 전송해야 하는 등의 불편함이 발생.

쿠키와 세션 기술이 개발된 이유

  • 쿠키와 세션은 무상태 프로토콜인 HTTP의 한계를 극복하기 위해 개발됨.
  • 쿠키는 클라이언트 측에서 상태 정보를 유지, 세션은 서버 측에서 상태 정보를 유지하여 무상태 프로토콜의 단점을 보완.
  • 클라이언트의 상태 정보를 쿠키를 통해 유지하고, 세션은 각 클라이언트의 상태 정보를 서버에 저장하여 필요할 때 참조함.

이렇게 쿠키와 세션은 무상태 프로토콜인 HTTP의 한계를 극복하기 위해 개발된 개념이며, 각각 클라이언트와 서버에서 상태 정보를 유지하는 방식으로 동작.

profile
Newbie Engineer&Programmer

0개의 댓글