Computer Science/NetWork
Forward vs Redirect 차이점 총정리! 웹 개발자라면 반드시 알아야 할 핵심 개념
추천캐릭터
2022. 11. 4. 20:26
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
반응형