为什么我在一个网络上获得HTTP代码414而不是另一个网络?

时间:2010-06-09 20:38:33

标签: iphone http url networking

我有一个其他工作的iPhone程序。最近的更改意味着它会生成一些非常长的URL(有时超过4000个字符),我知道这不是一个好主意,我知道如何修复 - 这不是我在这里要求的。

奇怪的是,当我使用3G网络(Vodafone UK)进行连接时,我收到此HTTP“414 Request-URI Too Long”错误,但当我使用本地WiFi连接进行连接时,它可以正常工作。

为什么我会使用不同类型的网络获得不同的结果?他们可以根据连接的来源将请求路由到不同的服务器吗?或者这里有其他危险吗?

推论问题与这种情况有多相关。是否可能在我使用单元网络或某些网络时发生?

3 个答案:

答案 0 :(得分:3)

我怀疑你的3G请求是通过一些不需要4000个字符长URL的代理传递的,并返回HTTP 414错误。

答案 1 :(得分:2)

我怀疑Vodafone连接是通过无法处理超长网址的代理和/或网关,而且414 Request-URI Too Long来自 it

答案 2 :(得分:1)

一些无线运营商 - 包括沃达丰英国公司,我相信 - 部署内联代理,透明地拦截您的HTTP请求以进行优化。其中一些代理基于Squid代理缓存等软件,可能会遇到很长的URL问题。因此,您的请求甚至可能无法进入您的服务器。

要解决此问题,您可以尝试在非标准TCP端口上将HTTP请求发送到服务器。一般来说,这些代理只配置为在端口80上执行HTTP处理。因此,如果您可以在不同的端口上发送流量,它可能会毫发无损地通过。