什么是apache的最大URL长度?

Ste*_*tef 59 apache url http

apache中URL的最大长度是多少?它在哪里记录,是否可配置?

我正在实现一个openid身份提供程序,并且想知道我遇到的局限性.我知道Internet Explorer上的2048字节路径限制.这可以使用用户代理检测特别处理.其他浏览器的URL限制要高得多.

所以我感兴趣的是编写应用程序时的apache服务器限制.

Gum*_*mbo 67

请求行长度的默认限制为8190字节(请参阅LimitRequestLine指令).如果我们为请求方法(即GET)减去三个字节,为版本信息(即HTTP/1.0/ HTTP/1.1)减去8个字节,为分隔空间减去两个字节,我们最终为URI路径加查询提供8177个字节.

  • 你是对的.我用Apache 2.2.11测试它并调整LimitRequestLine效果很好.对于踢球,我已成功使用128K网址. (7认同)
  • 请注意,这是__bytes__; 使用urlencoded多字节字符,很容易达到此限制(因为n字节字符需要n*3字节:`☢`变为'%E2%98%A2`). (4认同)
  • 您是否需要重新编译才能使用如此大的值?我的版本(2.2.15)默默地忽略了8190以上的LimitRequestLine指令,除非使用添加的CFLAG"-D DEFAULT_LIMIT_REQUEST_LINE = 16384"重新编译(然后它允许最多16384). (3认同)

lo_*_*fye 17

  • Internet Explorer:2,083个字符,URL的路径部分中不超过2,048个字符
  • Firefox:显示65,536个字符,但更长的URL仍然可以工作,甚至超过100,000
  • Safari:> 80,000个字符
  • 歌剧:> 190,000个字符
  • IIS:16,384个字符,但可配置
  • Apache:4,000个字符

来自:http://www.danrigsby.com/blog/index.php/2008/06/17/rest-and-max-url-size/

  • 引用的链接已经死了. (4认同)
  • *或者是* https://web.archive.org/web/20120330062735/http://www.danrigsby.com:80/blog/index.php/2008/06/17/rest-and-max-url -尺寸 (4认同)

Rig*_*der 6

官方长度根据正式的Apache文档是8,192,但很多人遇到麻烦在~4,000.

无论如何,MS Internet Explorer通常都是限制因素,因为它将最大URL大小限制为2,048.


Tom*_*ime 5

GET 请求中允许的 URI 的默认大小为 8177 个字符。用于此类测试的 Python 中的简单代码。

#!/usr/bin/env python2

import sys
import socket

if __name__ == "__main__":
    string = sys.argv[1]
    buf_get = "x" * int(string)
    buf_size = 1024
    request = "HEAD %s HTTP/1.1\nHost:localhost\n\n" % buf_get
    print "===>", request

    sock_http = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock_http.connect(("localhost", 80))
    sock_http.send(request)
    while True:
       print "==>", sock_http.recv(buf_size)
       if not sock_http.recv(buf_size):
           break
    sock_http.close()
Run Code Online (Sandbox Code Playgroud)

在 8178 个字符上,您将收到这样的消息:HTTP/1.1 414 Request-URI Too Large

  • 这是默认长度,可通过 LimitRequestLine 配置指令更改。 (3认同)