有没有办法克服URL长度上2k字符的限制?

有没有办法克服URL长度上2k字符的限制?,url,Url,我认为URL的长度只能是2000个字符左右。否则,它会扼杀IE的某些版本。有什么方法可以克服这个问题吗 起初我考虑的是tinyurl,但tinyurl实际上会立即重定向到较长的URL,因此可能也会失败 更新: 我需要这么长的URL,因为我需要能够让人们将URL添加到书签中或通过电子邮件发送给其他人。这就是POST的目的;) 设计用于传输大量数据。你应该看看这一点。没有现实的方法来解决这个问题-这不是规格或类似的限制,而是IE本身以及URL的分配方式(我相信出于某种原因,限制实际上是2083个字符

我认为URL的长度只能是2000个字符左右。否则,它会扼杀IE的某些版本。有什么方法可以克服这个问题吗

起初我考虑的是tinyurl,但tinyurl实际上会立即重定向到较长的URL,因此可能也会失败

更新:
我需要这么长的URL,因为我需要能够让人们将URL添加到书签中或通过电子邮件发送给其他人。

这就是POST的目的;)

设计用于传输大量数据。你应该看看这一点。

没有现实的方法来解决这个问题-这不是规格或类似的限制,而是IE本身以及URL的分配方式(我相信出于某种原因,限制实际上是2083个字符)

由于IE需要将URL一次发送到服务器,我想不出任何聪明的方法可以让你解决这个问题。我考虑过的一些选项是通过POST而不是GET发送查询参数(但这在服务器端通常是不可互换的,客户端会对此进行不同的处理,因为URL不能出现在超链接中,也不能被添加书签或手动输入,如果用户想要刷新,他们将获得“再次发送信息”警告,这是有意义的,因为POST旨在更新远程服务器上的信息,并且只有当查询字符串将其推到超出限制的位置(而不是某个不道德的URL)时,它才会起作用。或者,您也可以将URL分块,在cookie中设置溢出部分,然后向URL的存根发出请求,这足够智能,可以从cookie中提取上下文并将其附加到实际接收的URL。然而,这再次使服务器上的处理复杂化,可能超出了一个普通应用程序的使用范围,并且仍然意味着您不能将该URL放在超链接、书签或其他内容中,因为它的一个重要部分是客户端状态

基本上,其他一切都需要重写服务器,以某种方式拼凑额外的信息,如果您能够做到这一点,那么您应该能够简单地更改URL方案,使所有内容都少于2000个字符。所以没有-没有真正的解决办法


(不过,如果您可以使用tinyurl之类的东西作为代理,而不是向URL发出浏览器重定向,这可能会起作用)。

出于书签的原因,您可以在数据库和参数列表中存储参数字符串的哈希值。这样,当某个人将某个内容加入书签时,他们会得到一个包含哈希的书签,而您的内部软件会查找相应的参数并获取它们

实际上,您正在滚动自己的小url

如果其他人想用相同的参数为页面添加书签,那么散列将是相同的


唯一的问题是,您的哈希表将变得相当大,并且许多“图书标记”可能永远不会被使用。

您的URL看起来像什么?
也许您可以使用gzip或md5来缩短它们,或者将它们存储在数据库中,并将行的id放入url中?

您为什么需要这么长的url?有没有一个“更聪明”的方法来做到这一点?吻:保持简短,笨蛋!另见已商定。这里有一些“有趣的”选择:为什么不使用somesite.com/r.php?id=23456或somesite.com/?id=23456,甚至somesite.com/?23456参数的散列表示如果有人再次使用相同的参数,那么他们将使用相同的书签。老实说,虽然你最好使用mod rewrite,让你的URL有意义并缩短它们,但你可以在散列数据中加入GUID或用户名。