首页/网络/协议速查/PRG 模式(POST/Redirect/GET)
HTTP 方法与状态码91 条

PRG 模式(POST/Redirect/GET)

表单提交后重定向到结果页的经典模式:防止用户刷新时浏览器重复提交 POST。

协议速查网络更新于 2026-10-12
由来浏览器刷新「重新提交表单」弹窗的根治方案
实现POST 处理成功后返回 303 + Location 指向结果页
规范RFC 9110 §15.4.4(303 语义)
替代302/307 也可用但语义不如 303 清晰

前后端拆分下的 PRG

前后端拆分下的 PRG
POST /submit → 303 Location: /result?id=42
GET  /result?id=42 → 200 展示结果
(用户刷新 /result 只是 GET,不会重复提交)
接口型 API 不流行 PRG(客户端自行处理),它主要面向浏览器表单与 SSR 页面。

易错点

  • 跳转目标用 302 且方法被浏览器改成 GET 看似没问题,但语义不符容易在代理/客户端差异下翻车
  • 重定向后在结果页做了非幂等副作用(如再发一次邮件),又引入新的重复问题

数据来源与参考

  • RFC 9110 §15.4.4 303 See Other

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌