CMS中搜索表单使用POST还是GET方法?

13

我在一件事上有些困惑。我无法决定在我的搜索表单中使用POST方法还是GET方法。

通常情况下,我会为这样的表单使用GET方法,以便用户可以将他们得到的结果添加到书签中。但是这次,搜索表单出现在管理区域中,因此结果只与短时间内有关,并且不需要添加结果到书签中,当然,这些结果并不公开给所有人。

更具体地说,搜索功能是为了与用户列表一起使用的,因此可能要搜索某些特定的用户。我的想法是使用POST方法,其中表单将重定向到同一页,以便我可以通过搜索字符串获取已过滤的用户列表。还有分页,因此我会在每个分页链接的末尾添加搜索字符串(下一页、上一页、第一页和最后一页链接),以便搜索字符串不会在之后的任何会话中丢失(如对搜索结果进行分页等)。

没有明显的原因要选择一个而不是另一个,两者都可以使用。POST方法会稍微麻烦一点,但另一方面,搜索表单中有高级选项(大约5个复选框),我不喜欢在URL栏中混杂太多的值的想法(我预计用户在搜索会话之后不会经常使用分页,因此这些值不会经常添加到地址栏中)如果使用POST方法。

在CMS和类似系统中搜索时,您更喜欢哪一个?

谢谢大家!

2个回答

51

获取数据时,请使用GET请求,使用POST请求会导致刷新和后退问题。

不要过于追求URI的美观,它们只是工具而不是艺术品。


2
嗯,你说得对,那只是我的完美主义作祟,让我想到了愚蠢的想法。谢谢 ;) - Ondrej

3

也许我(主要是)总是选择POST而不是GET,它更整洁、清爽,并且在任何主流浏览器中使用POST方法时回溯问题都已成为过去,它们只会问您是否要重新发送数据,不是吗?

主要的例外是动态网页的书签(例如movieweb.com/movies.php?movie=the_three_mosqueteers),但是如果不是这种情况,我认为使用POST更好。


8
“exception” 看起来更像是网络的主要用法 ;) - Gabriele Petrioli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接