【问题标题】:Should I use a mixture of POST and GET for this form sequence?我应该在这个表单序列中混合使用 POST 和 GET 吗?
【发布时间】:2010-08-22 23:18:31
【问题描述】:
我有一系列遵循以下算法的表格:
表格 #1
- 提示输入值 A。
- 发送值为 A 的 X* 请求。
表格#2
- 显示值 A 并提示输入值 B。
- 发送值为 A 和 B 的 POST 请求。
*第 2 步中的 X 应该是 GET 还是 POST?我正打算将其设为 POST,但犹豫并想知道我是否应该使用 GET,因为表单 #1 只是将一个值传递给表单 #2,而不是将其发布到数据库。
谢谢!
【问题讨论】:
标签:
php
webforms
httpwebrequest
【解决方案1】:
制作一个 POST,因为它的目的是激发服务器端的副作用(特别是改变多页表单的状态)。
RFC 2616 在section 9.1.1 中说:
特别是,已经建立了约定,即 GET 和 HEAD 方法不应该具有采取除检索之外的操作的意义。这些方法应该被认为是“安全的”。这允许用户代理以特殊的方式表示其他方法,例如 POST、PUT 和 DELETE,以便让用户意识到正在请求可能不安全的操作。
当然,无法确保服务器不会因为执行 GET 请求而产生副作用;事实上,一些动态资源认为这是一个特性。这里的重要区别是用户没有请求副作用,因此不能对它们负责。