Http 大型表单搜索结果的分页技术

Http 大型表单搜索结果的分页技术,http,forms,post,get,methods,Http,Forms,Post,Get,Methods,在网页中创建搜索表单时,我通常使用GET方法。这样可以使结果更加精确。它还便于以标准方式对结果进行分页 但是一个有大量选项和相当长的字段名的表单呢?使用GET请求意味着结果页面的URL实际上可以破解 如果我改为使用POST,我将超过URL长度限制。但是我失去了URI的可寻址性。此外,所有分页链接需要重新实现为小个子表单,所有搜索参数数据存储在隐藏字段中;使这些操作成为链接需要类似onclick处理程序的东西,这使得它们只有在启用客户端脚本时才可用 那么,长搜索表单的建议是什么: 维护URI可寻

在网页中创建搜索表单时,我通常使用GET方法。这样可以使结果更加精确。它还便于以标准方式对结果进行分页

但是一个有大量选项和相当长的字段名的表单呢?使用GET请求意味着结果页面的URL实际上可以破解

如果我改为使用POST,我将超过URL长度限制。但是我失去了URI的可寻址性。此外,所有分页链接需要重新实现为小个子表单,所有搜索参数数据存储在隐藏字段中;使这些操作成为链接需要类似onclick处理程序的东西,这使得它们只有在启用客户端脚本时才可用

那么,长搜索表单的建议是什么:

  • 维护URI可寻址性
  • 允许合理的分页链接
  • 不要打破实际的URL 2KB长度限制
我唯一想做的就是坚持使用GET,但是减少字段名的长度,这样我们就不太可能突破URL限制


你觉得怎么样?非常感谢。

您需要做的是使用post方法-如果您的URL将超过限制,您无法绕过此问题(尽管您可以通过缩写名称和值来延迟不可避免的问题)

发表文章,然后将客户端重定向到get,为了保持内容的可寻址性,您可以将搜索服务器端存储在密钥上,然后在get上检索(例如,从内存或数据库),或者将密钥编码为单个querystring密钥或捕获行为的少量密钥。生成的响应将可设置为书签等

分页非常简单-只需查找表单集合中是否存在导航按钮,并做出相应的响应。

Aaah,使用键(可能是md5或类似的键)发布、存储参数(或结果),然后重定向到使用键检索的get。好主意。谢谢我将把这个问题留待一会儿,看看我们是否有其他想法。但你的答案看起来确实是一个可靠的候选人。谢谢