我想知道这是不是一个错误,但是现在我在所有搜索网址中使用GET。原因是使用GET Url,用户可以简单地复制地址栏上的链接并轻松共享或保存。例如Google似乎也使用GET Url(表单)。
因为它是带有过滤器的搜索表单,所以生成的URL的长度和排序等都是不可预测的。我担心URL可能超出长度限制的边缘情况。可能的解决方案是实际POST数据,然后根据该数据生成唯一的哈希值,然后使用它作为搜索的URL。这个解决方案确实需要将实际的表单数据保存到数据库,例如,然后在每个搜索请求上重新查询它,这似乎是浪费。
我想知道我还有其他想法吗?
编辑:我想在这里感谢你的所有答案,他们帮了很多忙。我将在下面总结我为解决这个问题所做的工作,希望它可以帮助其他人:
答案 0 :(得分:3)
首先,根据this Stack Overflow answer,你可以直到2000个字符 1 。
一旦达到这个限制,如果你想保持你的网址可分享,你可以看到几个选择:
让我们考虑这些方法的相对优点。
赞成哈希...
hash
轻松地在PHP中执行此操作,而使用压缩方法的工具则不太明显。赞成压缩...
根据您的具体情况,其中一些因素可能与您无关;我留给你来衡量你的优先事项。
如果您想要采用压缩路线,我不知道向您推荐什么工具。 How to compress URL parameters可能是一个开始寻找的好地方。也许还要考虑https://github.com/pieroxy/lz-string压缩https://github.com/nullpunkt/lz-string-php来解压缩。
1 请注意,2000个字符的URL很长。你的网址真的很长吗?