小编典典

了解“发布/重定向/获取”模式

html

我很难理解“发布/重定向/获取”的确切过程。

我已经在这个网站和网络上梳理了几个小时,除了“这里是概念”,找不到其他东西。

如何理解发布/重定向/获取模式?


阅读 338

收藏
2020-05-10

共1个答案

小编典典

您可能会从研究中知道,POST-redirect- GET看起来像这样:

  • 客户获得带有表单的页面。
  • 表格POST发送到服务器。
  • 服务器执行该操作,然后重定向到另一个页面。
  • 客户端遵循重定向。

例如,假设我们具有以下网站结构:

  • /posts (显示帖子列表和指向“添加帖子”的链接)
    • /<id> (查看特定帖子)
    • /create(如果通过该GET方法请求,则向自身返回表单发布;如果是POST请求,则创建该表单并重定向到/<id>端点)

/posts 本身与该特定模式无关,所以我将其省略。

/posts/<id> 可能是这样实现的:

  • 在数据库中找到具有该ID的帖子。
  • 渲染带有该帖子内容的模板。

/posts/create 可能是这样实现的:

  • 如果请求是GET请求:
    • 显示一个空表格,目标设置为自身,方法设置为POST
  • 如果请求是POST请求:
    • 验证字段。
    • 如果存在无效字段,请再次显示该表单并指出错误。
    • 否则,如果所有字段均有效:
    • 将帖子添加到数据库。
    • 重定向到/posts/<id><id>从调用返回到数据库的位置)
2020-05-10