Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
您可以传递给Wininet函数HttpOpenRequest的最大URL长度是多少?_Url_Wininet - Fatal编程技术网

您可以传递给Wininet函数HttpOpenRequest的最大URL长度是多少?

您可以传递给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

您可以传递给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 并用更大的值替换它们。 当然,这确实会增加你的压力 暴露于拒绝服务攻击


(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没有最大长度”-这句话不合适。