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

2022-08-30 11:34:15

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

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

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


答案 1

维基百科很好地解释了这一点!

问题

The Problem

解决方案

The Solution


答案 2

正如您可能从研究中知道的那样,-重定向-看起来像这样:POSTGET

  • 客户端获取包含表单的页面。
  • 表单 s 到服务器。POST
  • 服务器执行该操作,然后重定向到另一个页面。
  • 客户端遵循重定向。

例如,假设我们有这个网站结构:

  • /posts(显示帖子列表和“添加帖子”的链接)
    • /<id>(查看特定帖子)
    • /create(如果使用该方法请求,则返回表单过帐给自己;如果是请求,则创建发布并重定向到终结点)GETPOST/<id>

/posts它本身与这个特定的模式并不相关,所以我将把它省略掉。

/posts/<id>可以像这样实现:

  • 在数据库中查找具有该 ID 的帖子。
  • 使用该帖子的内容呈现模板。

/posts/create可以像这样实现:

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

推荐