34

我知道,例如,在大多数 MVC 框架中,查询字符串参数和表单参数都可用于处理代码,并且通常合并为一组参数(通常以 POST 为优先)。但是,根据 HTTP 规范这样做是否有效?假设您要发布到:

http://1.2.3.4/MyApplication/Books?bookCode=1234

...并提交一些更新,例如更改图书代码为 1234 的图书名称,您可能希望处理代码同时考虑bookCode查询字符串参数和带有更新图书信息的 POSTed 表单参数。这是有效的,这是一个好主意吗?

4

2 回答 2

29

根据 HTTP 规范是否有效?

的。

这是这些规范中定义的 URL的一般语法

http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]

http_URL 的形式没有额外的限制。特别是,使用的http 方法(即POST、GET、PUT、HEAD、...)对http URL 格式没有任何限制。

使用 GET 方法时:服务器可以认为请求体是空的。

使用 POST 方法时:服务器必须处理请求正文。

这是个好主意吗 ?

这取决于你需要做什么。我建议你这个链接解释 GET 和 POST 背后的想法。

我认为在某些情况下,在 url 的查询部分中始终包含一些参数(例如用户语言)会很方便。

于 2013-02-05T14:59:06.300 回答
0

我知道,例如,在大多数 MVC 框架中,查询字符串参数和表单参数都可用于处理代码,并且通常合并为一组参数(通常以 POST 为优先)。

任何有能力的框架都应该支持这一点。

这有效吗

是的。HTTP 中的 POST 方法对使用的 URI 没有任何限制。

这是个好主意吗?

显然不是,如果您要使用的框架仍然受到挑战。否则,这取决于你想要完成什么。主要用例(将数据子集重定向到新的 POST 目标)已被浏览器实现不可挽回地破坏(所有这些都机械地遵循 Mosaic/Netscape 的破坏领先地位),因此这里的考虑主要是理论上的。

于 2013-02-05T16:25:14.827 回答