网站托管URL长度限制?

网站托管URL长度限制?,url,web-hosting,Url,Web Hosting,我正在设计一个web应用程序,它与我的iPhone应用程序相关联。它向web服务器发送大量的URL(大约15000个)。我使用的是NearlyFreeSpeech.net,但它们最多只支持2000个字符的URL。我想知道是否有人知道支持超大URL的web托管?谢谢你,艾萨克 编辑:我的程序需要在Safari中打开一张图片。我可以通过两种方式来实现: 将其发送到URL中编码的base64,只需回显查询参数即可 首先将其发布到我的应用程序中的服务器,然后服务器将在将照片存储到数据库中后发回一个唯一

我正在设计一个web应用程序,它与我的iPhone应用程序相关联。它向web服务器发送大量的URL(大约15000个)。我使用的是NearlyFreeSpeech.net,但它们最多只支持2000个字符的URL。我想知道是否有人知道支持超大URL的web托管?谢谢你,艾萨克

编辑:我的程序需要在Safari中打开一张图片。我可以通过两种方式来实现:

  • 将其发送到URL中编码的base64,只需回显查询参数即可
  • 首先将其发布到我的应用程序中的服务器,然后服务器将在将照片存储到数据库中后发回一个唯一的ID,我将其附加到一个URL,我将在Safari中打开该URL,该URL从数据库中检索照片并将其从数据库中删除
你们看,我很懒,而且我知道移动Safari可以支持多达80000个字符的URI,所以我认为这是一个不错的方法。如果这真的有什么问题,请告诉我


编辑:我最终以正确的方式完成了这项工作。谢谢。

虽然它没有直接回答您的问题,也没有官方规定的URL最大长度,但浏览器和服务器有实际限制-请参阅以了解一些详细信息。简而言之,由于IE(至少在使用中的某些版本)不支持超过2083个字符的URL,因此最好保持在该长度以下。

如果要发送15000个字符长的URL,很可能:

改用HTTP POST之类的东西


您遇到的限制并不是主机的问题,而是web服务器对URL的长度有限制。根据,Apache将您限制在4k字符左右,IIS默认将您限制在16k。

如果您只需要在Safari中打开它,而服务器不需要参与,为什么不使用

通过网络发送长URI基本上从来都不是正确的做法。正如您所注意到的,一些web主机不支持长URI。一些代理服务器也可能会阻塞长URL,这意味着你的应用程序可能无法为那些代理背后的用户工作。如果您需要将应用程序移植到其他浏览器,其他浏览器可能不支持那么长的URI

如果需要将数据上传到服务器,请使用POST。是的,这是一次额外的往返旅行,但会更可靠

此外,如果您使用GET请求将数据上载到服务器,则容易受到各种攻击;基本上,攻击者只需让用户点击一个链接(可能被其他URL缩短服务隐藏,或者当用户不仔细查看他们正在点击的URL时,只是作为链接嵌入到网页中),就可以诱使用户上传(比如)goatse到他们的帐户


除了不会实际改变服务器上任何内容的查询参数外,您不应该使用GET向服务器发送数据。

您能详细说明为什么它会发送如此大的URL吗?这个问题提供了使用post为iphone应用程序上载图像的详细信息。IIS 6中的硬限制是32767个字符。我以前已经达到了这个上限:(使用谷歌的图表APILOL。建议:保护这篇文章不受LOL评论的影响。@ceejayoz:我应该在哪里更改IIS限制?@Kumaran我认为你没有抓住重点。你做错了。您好,这就是重点所在-但是openURL中有一个超级恼人的错误:它不允许你打开数据:URI。因此,我的网站采用Base64编码的数据,并使用将其转换为数据uri并重定向到那里:(如果他们不支持,那么我认为您需要使用POST路由。URL中的大量数据只会导致各种兼容性问题,而从GET请求中镜像数据将导致各种跨站点请求伪造问题。