代码之家  ›  专栏  ›  技术社区  ›  Muhammad Gelbana

HTTP端口上的破折号(即-)请求的来源

  •  0
  • Muhammad Gelbana  · 技术社区  · 5 年前

    我们最近将tomcat服务器升级到v9,它开始抛出异常,以接收包含以下数据的HTTP请求

    1.1.1.1 - - [30/Jun/2020:04:55:31 +0000] "-" 400 1921
    

    这与往常完全不同。。。

    1.1.1.1 - - [30/Jun/2020:04:55:31 +0000] "GET / HTTP/1.1" 404 533
    

    我们的客户端似乎仍在采用HTTP v1.1,但这与tomcat抱怨的“-”有关吗?“-”代表什么?

    1 回复  |  直到 5 年前
        1
  •  0
  •   Evert    5 年前

    - 在这种日志格式中,通常意味着缺少一个值。

    缺少HTTP方法和HTTP/1.1请求行 400 Bad Request 结果告诉我 某物 正在打开TCP连接并发送完全不是HTTP的东西。

        2
  •  0
  •   Dalton Bentley    2 年前

    请参阅 Apache Log Files server documentation Apache Core Features (错误日志格式指令)。我假设Apache在Tomcat中的Java实现使用大致相同的语法。

    如Evert所述,如果日志条目代码中的相应项目不产生任何输出,则-(减号)修饰符会导致记录减号。

    您的正常日志条目:

    1.1.1.1 - - [30/Jun/2020:04:55:31 +0000] "GET / HTTP/1.1" 404 533

    似乎正在使用通用日志格式(CLF)。,

    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    其中第一个条目是向服务器发出请求的客户端(远程主机)的IP地址。这两个减号可能表示缺少身份和用户ID(请参阅引用的日志文档)。下一个字段显然是日期和时间。引用的下一个字段是来自客户端的请求行:首先,客户端使用的方法是GET。第二,客户端请求公共文档根“/”,第三,客户端使用协议HTTP/1.0。您的服务器向客户端返回了状态代码404,返回给客户端的对象(不包括响应头)的大小为533字节。

    现在,你不寻常的日志条目,

    1.1.1.1 - - [30/Jun/2020:04:55:31 +0000] "-" 400 1921

    缺少客户端的请求行,因此在那里输入了减号。至于什么可能会发送这样的请求,如果你连接到互联网,可能是某个机器人在探测你的服务器。您可以通过以下方式轻松反向识别IP地址 cqcounter whois 例如,“1.1.1.1”似乎是澳大利亚APNIC研发机构,可能是良性的。

    推荐文章