728x90
PRG 패턴 (Post-Redirect-Get)
웹 개발 패턴 중 자주 쓰이는 패턴으로 HTTP POST 요청에 대한 응답이 또 다른 URL로의 GET 요청을 위한 리다이렉트(응답 코드가 3XX) 여야 한다는 것을 의미한다.
즉, 쉽게 설명하면 POST 방식으로 온 요청에 대해서 GET 방식의 웹페이지로 리다이렉트 시키는 패턴을 말한다.
PRG 패턴을 사용하지 않으면 발생하는 문제점
첫번째로 새로고침으로 인한 동일한 요청이 연속적으로 보내지는 이슈가 발생한다는 것이다. 만약 이 이슈가 중요하지 않은 로직이 있는 부분이라면 상관없겠지만 결제 같은 중요한 로직에서는 중복 결제가 일어나는 문제가 발생한다.
두 번째로는 POST 요청은 URL을 복사하더라도 다른 사람과 공유할 수 없다는 점이 문제가 된다. POST 요청을 보내게 되면 Parameter 값들이 URL에 남겨있지 않기에 특정 Paramter 가 필요한 POST 요청인 경우 URL을 복붙 하더라도 에러 페이지만 보이게 될 것이다.
@Controller
class TestController {
@GetMapping
public String main(){
return "main";
}
@PostMapping("/pay")
public String pay(){
// 결제 로직
return "redirect:/success";
}
@GetMapping("/success")
public String success(){
return "success";
}
}
'이해' 카테고리의 다른 글
데이터 형식 주요 어노테이션 (0) | 2024.02.23 |
---|---|
data-속성 사용 (0) | 2024.02.20 |
ViewerParsing 이해 (0) | 2024.02.19 |
EL과 JSTL (0) | 2024.02.14 |
root-context와 servlet-context (0) | 2024.02.14 |