Binding / Redirect 이란?
2024. 11. 19. 11:02

웹 개발에서 RedirectBinding은 클라이언트와 서버 간 데이터를 처리하고 페이지를 이동할 때 사용하는 두 가지 중요한 개념이다. 아래에서 각 개념과 차이점을 자세히 살펴보자

1. Redirect

**Redirect(리다이렉트)**는 서버가 클라이언트에게 다른 URL로 이동하라는 명령을 보내는 방식입니다. 브라우저는 이를 받아 새로운 요청을 전송함

작동 원리

  1. 클라이언트가 서버에 요청
  2. 서버는 클라이언트에게 HTTP 302 상태 코드와 함께 "Location" 헤더를 포함하여 새로운 URL을 응답
  3. 클라이언트는 새로운 URL로 이동(새로운 HTTP 요청이 발생).

특징

  • 새로운 요청: Redirect는 클라이언트가 새 HTTP 요청을 보내므로, 이전 요청과는 완전히 독립적
  • URL 변경: 클라이언트 브라우저의 URL이 변경
  • 데이터 전달 어려움: GET 방식으로만 데이터를 전달할 수 있으며, URL에 쿼리스트링을 사용해야함

코드 예제 (JSP에서 Redirect)

 
response.sendRedirect("destination.jsp");

사용 사례

  • 로그인 후 페이지 이동: 로그인 후 홈 페이지로 이동할 때.
  • 외부 사이트로 이동: 외부 링크로 리디렉션할 때.
  • 새로운 URL로 전환: 페이지 구조 변경 시 이전 URL에서 새로운 URL로 유도할 때.

2. Binding

**Binding(바인딩)**은 서버의 요청 객체(Request)나 세션(Session)에 데이터를 저장하여 서버에서 데이터와 상태를 공유하는 방식

종류

Request Binding: 데이터가 한 요청에만 유효하며, 같은 요청 내에서 다른 리소스(페이지)로 전달할 때 사용

  • 예: request.setAttribute("key", value);
  1. Session Binding: 데이터가 세션이 유지되는 동안 유효하며, 사용자가 서버와 연결된 동안 사용할 데이터를 저장함
    • 예: session.setAttribute("key", value);
  2. Application Binding: 애플리케이션 전역적으로 데이터를 저장하며, 모든 사용자와 요청에서 공유됨
    • 예: getServletContext().setAttribute("key", value);

특징

  • 서버 내부에서 데이터 공유: 클라이언트로 데이터를 보내지 않아도 서버에서 리소스 간 데이터를 전달할 수 있습니다.
  • URL 변경 없음: 클라이언트의 브라우저 URL은 그대로 유지됩니다.
  • 범위에 따른 데이터 유지: 데이터의 유효 범위는 Request, Session, Application에 따라 다름

코드 예제 (Request Binding)

// 데이터를 바인딩 
request.setAttribute("message", "Hello, World!"); 
// 다른 JSP 페이지로 전달 사용 사례
(forward) RequestDispatcher dispatcher = request.getRequestDispatcher("destination.jsp"); 
dispatcher.forward(request, response);
  • 폼 데이터 처리: 사용자가 입력한 데이터를 다른 페이지로 전달.
  • 에러 메시지 표시: 로그인 실패 시 같은 페이지에 에러 메시지 출력.
  • 서버 내 데이터 공유: 서블릿 간 데이터 전달.

3. Redirect와 Binding의 차이점

특징 Redirect Binding
요청(Request) 새로운 HTTP 요청을 만듦 기존 요청 내에서 데이터 전달 가능
URL 변경 클라이언트 브라우저 URL 변경 클라이언트 URL이 변경되지 않음
데이터 전달 방식 URL에 쿼리스트링(GET 방식) 사용 Request, Session, Application 객체
주요 목적 클라이언트가 새로운 URL로 이동하도록 함 서버 내부에서 데이터를 전달하거나 공유함
HTTP 상태 코드 302 (리다이렉트 상태 코드) 상태 코드 변화 없음
사용 사례 로그인 후 페이지 이동, 외부 URL로 전환 폼 데이터 전달, 에러 메시지 표시

4. Redirect와 Forward의 비교

Binding은 주로 **Forward(포워드)**와 함께 사용되므로, Redirect와 Forward의 차이점도 이해하면 좋다.

특징 Redirect Forward
새로운 요청 클라이언트가 새로운 요청을 보냄 서버 내부에서 요청 처리
속도 상대적으로 느림 상대적으로 빠름
데이터 유지 Request 데이터가 유지되지 않음 Request 데이터가 유지됨
URL 변경 클라이언트 URL이 변경됨 클라이언트 URL이 변경되지 않음

'Front-End > WEB' 카테고리의 다른 글

이미지 파일저장  (0) 2024.11.21
JSP INCLUDE  (0) 2024.11.21
Scope  (0) 2024.11.20
서블릿 리스너  (0) 2024.11.20
서블릿 filter 설명  (0) 2024.11.20