您可以传递给Wininet函数HttpOpenRequest的最大URL长度是多少?
您可以传递给Wininet函数HttpOpenRequest的最大URL长度是多少?,但这表明Internet Explorer有2083的限制,这很可能也适用于您的情况。HttpOpenRequest没有最大长度,但您针对的服务器软件可能会限制您的URL长度 Apache(服务器) 我早期尝试测量 web浏览器中的最大URL长度 遇到服务器URL长度限制 大约4000个字符, 之后Apache生成一个“413” “实体太大”错误。我用了 找到当前最新的Apache内部版本 在Red Hat Enterprise Linux 4中。这个 仅限Apache官方文档 在一个 请求中的单个字段 Microsoft Internet信息服务器(服务器) 默认限制为16384个字符 (是的,Microsoft的web服务器接受 比Microsoft的web更长的URL 浏览器)。这是可配置的 PerlHTTP::守护进程(服务器) 最多可使用8000字节。那些 构建web应用服务器 使用Perl的HTTP::Daemon模块 在上遇到16384字节的限制 所有HTTP请求的组合大小 标题。这不包括 发布方法表单数据,上传文件, 等等,但它确实包含URL。在里面 这导致了一个413错误 当URL明显更长时 超过8000个字符。这一限制 可以很容易地移除。寻找所有 Daemon.pm中出现的16x1024 并用更大的值替换它们。 当然,这确实会增加你的压力 暴露于拒绝服务攻击您可以传递给Wininet函数HttpOpenRequest的最大URL长度是多少?,url,wininet,Url,Wininet,您可以传递给Wininet函数HttpOpenRequest的最大URL长度是多少?,但这表明Internet Explorer有2083的限制,这很可能也适用于您的情况。HttpOpenRequest没有最大长度,但您针对的服务器软件可能会限制您的URL长度 Apache(服务器) 我早期尝试测量 web浏览器中的最大URL长度 遇到服务器URL长度限制 大约4000个字符, 之后Apache生成一个“413” “实体太大”错误。我用了 找到当前最新的Apache内部版本 在Red Hat E
(from)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)
...
是的,我们在这个数量上失败了。你知道这些限制是包括名称-值对(例如url?data=x…)还是仅包括url本身吗?@David Sykes:我相信这些限制是基于用于存储字符的缓冲区的大小,所以我假设包括名称-值对。但我只是猜测,“HttpOpenRequest没有最大长度”-这句话不合适。