GOORM-DEEP DIVE 백엔드 3회차 회고 DAY14

Cori1304·2025년 3월 17일
0

GOORM-DEEPDIVE

목록 보기
13/19

Servlet

Servlet은 WAS에서 실행되는 자바 클래스로 자바 기반 웹 애플리케이션에서 HTTP 요청을 처리하고 동적 웹 콘텐츠를 생성하는 프로그램이다. Spring MVC에서 DispatcherServlet → Servlet 기반으로 동작하면서 사용한다.
(현재는 개발자는 직접 Servlet을 작성하지 않지만, 내부적으로 Servlet이 동작하고 있다.)

DispatcherServlet

프론트 컨트롤러(Front Controller)라고도 불리는 DispatcherServlet은 HTTP 프로토콜로 들어오는 모든 요청을 먼저 받아서 적합한 컨트롤러에 위임(Delegate request)는 역할을 합니다.


🔹 Redirect vs Forward 차이 비교표

구분Redirect (리다이렉트)Forward (포워드)
URL 변경✅ 변경됨 (새 요청 발생)❌ 변경되지 않음
요청(Request) 객체 유지❌ 유지되지 않음✅ 유지됨
HTTP 요청 개수2번 (새로운 요청 발생)1번 (기존 요청 유지)
속도상대적으로 느림 (새 요청 발생)상대적으로 빠름 (서버 내부 이동)
사용 목적로그인 후 메인 페이지 이동, 외부 사이트 이동같은 서버 내에서 데이터 유지하며 페이지 이동

Redirect

redirect에 사전적인 뜻은 "1.전용하다, 2.다시 보내다" 라고 한다. 사전적 뜻과 같이 redirect는 클라이언트(브라우저)를 다른 URL로 이동시킨다.

redirect 흐름

1️⃣ 클라이언트가 A.jsp 요청
2️⃣ 서버가 302 Redirect 응답 + 새로운 URL(B.jsp) 제공
3️⃣ 클라이언트가 B.jsp로 새로운 요청을 다시 보냄
4️⃣ B.jsp가 응답을 생성하여 클라이언트에게 전달

forward

forwar에 사전적인 뜻은 "1.앞으로 가는, 2.(위치가) 앞으로"로 라는 뜻이 있다. 뜻과 같이 forward는 서버 내부에서 클라이언트의 요청을 다른 리소스(JSP, Servlet)로 전달한다. 즉 클라이언트가 요청을 다시 보내는 것이 아니라, 서버가 기존 요청을 유지한 채 다른 곳으로 넘긴다.

참고 그림



참고 자료

profile
개발 공부 기록

0개의 댓글

관련 채용 정보