系统信息:Windows 7 64 位 VirtualBox 4.2.18 Ubuntu 12.04 Guest Apache 2 已安装并正在运行
在终端上运行 HEAD / HTTP/1.0 返回服务器为 Oversee Turing v1.0.0
为什么服务器将自己标识为 Oversee Turing?
除网络服务器统计网站外,网上似乎没有太多信息。
我想知道是否有更多有关此事的背景信息。
答案1
您没有向本地服务器查询其 HEAD 响应。您查询的服务器是您的本地文件系统,,file:/
用于您的第一个参数和http.com
第二个参数。所以不用担心,除非您告诉 Apache 这样做,否则它不会将自己标识为Oversee Turing
。由于您提供了两条路径,因此您会得到两个响应。
存在多种检查标题的方法,由于这不是问题所在,因此我就不介绍它了。
深入解释:
首先,当您给出/
HEAD 的路径时,它被视为指向文件系统根目录的本地绝对路径,并将扩展为file:/
。
其次,HTTP/1.0
被视为另一个绝对路径。要了解如何解释参数,我们必须仔细查看下面的源代码。但总结起来就是 HEAD
指向perl
脚本的命令。此 perl 脚本利用uf_uri
,来自的函数来确定并返回用户友好的/usr/share/perl5/URI/Heuristic.pm
完整。这是通过运行函数来完成的。URI
URI
uf_uristr
uf_uristr
将在 179 行匹配# no scheme specified
,并将添加模式以http
进一步扩展带有域结尾的猜测图,在 209+210 行它将添加.com
。不同的域结尾将在 215 行的 for 中进行测试。测试将使用并将gethostbyname("$guess.")
设置$host
为当前$guess
并退出 for 循环(如果它获得有效结果)。
然后它将URI
返回到第 226 行的初始 perl 脚本;
$_ = "$scheme://$host$_";
$scheme = http
$host = http.com
$_ = /1.0
所以最终的 $_ 将是http://http.com/1.0
来源
$ ls -al /usr/bin/HEAD
lrwxrwxrwx 1 root root 11 Nov 23 2011 /usr/bin/HEAD -> lwp-request
$ file /usr/bin/lwp-request
/usr/bin/lwp-request: a /usr/bin/perl -w script, ASCII text executable
注意uf_uri
:
vim +196 /usr/bin/lwp-request +"sp +440 /usr/bin/lwp-request"
uf_uri
调用该包uf_uristr
的/usr/share/perl5/URI/Heuristic.pm
一部分liburi-perl
。
答案2
我在我的服务器上亲眼看到了这个。我找到了这篇文章:
http://groups.yahoo.com/neo/groups/win4n6/conversations/topics/3003
归根结底,这只是一个别名,可能与某人有关监督网。要获取您的服务器版本,只需使用基本httpd -v
修饰符。