您可以传递给Wininet函数HttpOpenRequest的最大URL长度是多少?
答案 0 :(得分:4)
WinInet.h中有一些最大长度值:
...
//
// maximum field lengths (arbitrary)
//
#define INTERNET_MAX_HOST_NAME_LENGTH 256
#define INTERNET_MAX_USER_NAME_LENGTH 128
#define INTERNET_MAX_PASSWORD_LENGTH 128
#define INTERNET_MAX_PORT_NUMBER_LENGTH 5 // INTERNET_PORT is unsigned short
#define INTERNET_MAX_PORT_NUMBER_VALUE 65535 // maximum unsigned short value
#define INTERNET_MAX_PATH_LENGTH 2048
#define INTERNET_MAX_SCHEME_LENGTH 32 // longest protocol name length
#define INTERNET_MAX_URL_LENGTH (INTERNET_MAX_SCHEME_LENGTH \
+ sizeof("://") \
+ INTERNET_MAX_PATH_LENGTH)
...
答案 1 :(得分:2)
HttpOpenRequest没有最大长度,但您定位的服务器软件可能会限制您的网址长度。
Apache(服务器)
我早期的尝试来衡量 Web浏览器中的最大URL长度 陷入服务器URL长度限制 大约4,000个字符, 之后Apache产生了“413 实体太大“错误。我使用了 目前最新的Apache构建发现 在Red Hat Enterprise Linux 4中 仅限官方Apache文档 提到一个8,192字节的限制 请求中的单个字段。
Microsoft Internet Information Server(服务器)
默认限制为16,384个字符 (是的,微软的网络服务器接受 比微软网站更长的网址 浏览器)。这是可配置的。
Perl HTTP ::守护程序(服务器)
最多可以使用8,000个字节。那些 构建Web应用服务器 使用Perl的HTTP :: Daemon模块 遇到16,384字节的限制 所有HTTP请求的组合大小 头。这不包括 POST方法表单数据,文件上传, 等,但它确实包括URL。在 这样做会导致413错误 当URL明显更长时 超过8,000个字符。这个限制 可以轻松删除。寻找所有 在Daemon.pm中出现16x1024 并用更大的值替换它们。 当然,这确实会增加你的 接触拒绝服务攻击。
(来自Boutell.com)
答案 2 :(得分:1)
I would suggest less than 2000 characters.,但此KB article表明Internet Explorer的限制为2083,这也可能适用于您的情况。