728x90
반응형
🔷 Forward 방식이란?
Web Container 내부에서 요청을 다음 페이지로 전달하는 방식
- 브라우저는 이동했음을 인지하지 못함
- URL은 바뀌지 않음
- Request와 Response 객체를 공유
- 서버 내부에서 페이지 이동만 발생
- 대표 사용 예: 글 목록, 검색 결과 등 조회용 요청
📌 예시 상황
게시글 작성 완료 후 forward로 응답 페이지를 호출했을 때, 새로고침 시 동일 게시물이 여러 번 등록될 수 있음.
➡️ 왜냐하면 이전 요청 정보가 그대로 유지되기 때문!
🔷 Redirect 방식이란?
서버가 브라우저에게 다른 URL로 이동하라고 지시하는 방식
- 브라우저가 새로운 URL로 이동
- Request/Response 객체는 새로 생성
- URL이 변경됨
- 다른 서버나 컨텍스트로도 이동 가능
- 대표 사용 예: 회원가입, 게시글 등록 등 데이터 변경 요청
📌 예시 상황
게시글 등록 후 redirect를 사용하면, 새로고침해도 중복 등록이 발생하지 않음.
➡️ 왜냐하면 이전 요청 정보가 사라지기 때문!
🔷 Forward vs Redirect 비교 정리
항목ForwardRedirect
| URL 변경 | ❌ 변경 없음 | ✅ 변경됨 |
| 브라우저 인식 | ❌ 이동 모름 | ✅ 이동함 |
| Request 공유 | ✅ 동일 객체 | ❌ 새 객체 |
| 사용 위치 | 조회 | 등록/삭제 |
| 새로고침 시 | 요청 유지 | 요청 초기화 |
🔷 Spring에서 Redirect 사용 예시
@Controller
@RequiredArgsConstructor
public class UserController {
private final UserService userService;
@GetMapping("/signup")
public String joinForm() {
return "users/createMember";
}
@PostMapping("/signup")
public String joinForm(@ModelAttribute UserDto.Request userDto) {
userService.saveUser(userDto);
return "redirect:/"; // 리다이렉트 처리
}
}
✅ 마무리
- 단순 조회는 Forward
- DB에 변화를 주는 요청은 Redirect
이 원칙만 기억하면 안정적인 웹 흐름을 구성할 수 있습니다!
728x90
반응형
'Computer Science > NetWork' 카테고리의 다른 글
| 📌GET vs POST vs PUT vs PATCH vs DELETE: HTTP 메서드 완벽 총정리! (0) | 2025.07.31 |
|---|---|
| ✅ HTTP vs HTTPS 차이와 보안의 원리 (2) | 2025.07.31 |
| 📌Stateful vs Stateless 완전 정복 🔍 서버 설계의 핵심 개념 쉽게 이해하기 (0) | 2022.10.30 |
| 📌"GET vs POST: 웹 개발자가 꼭 알아야 할 차이점 (쉽게 설명)" (0) | 2022.10.30 |
| URI, URL 이게 뭐지? (0) | 2022.10.29 |