본문 바로가기

cs(with 매일메일)

[260211수] PRG 패턴에 대해서 설명해 주세요.

PRG패턴 : Post / Redirect / Get 패턴의 약자로, 웹 애플리케이션에서 폼 제출 후 페이지 새로 고침이나 브라우저 뒤로 가기 등의 문제를 방지하기 위해 사용하는 디자인 패턴

- 일반적으로 멱등성이 보장되지 않는 POST요청에 사용한다

 (멱등성 정의: 동일한 연산을 여러 번 수행하더라도 결과가 달라지지 않는 성질)

- ex. 사용자가 웹 페이지의 주문 버튼을 클릭하고, 새로고침을 수행하면 2번의 POST요청이 서버로 전달된다. 

 

패턴

- POST : 사용자가 폼을 제출 -> 클라이언트가 서버에 POST 요청을 보냄 -> 서버는 요청 처리(데이터베이스 업데이트 혹은 다른 작업 수행) 

- Redirect :서버는 POST 요청을 처리 -> 클라이언트에세 새로운 URL로 리디렉션하라는 응답을 보냄 -> 이 리디렉션은 클라이언트에게 302 Found 상태 코드와 함께 새로운 URL을 포함한 Location 헤더를 반환하여 수행 

- GET : 클라이언트는 서버의 응답을 받아 새로운 URL로 GET요청을 보냄. 서버는 이 GET요청을 처리하여 최종 결과 페이지를 클라이언트에세 반환 

 

 

 PRG 패턴은 멱등하지 않은 POST 요청을 멱등한 GET 요청으로 강제 전환시켜서 브라우저의 오작동(중복 제출)을 막는 방법이다