telnet中404未找到,浏览器正常
我遇到了一个很烦人的问题,当我在浏览器中打开一个网址( http://celebs.widewallpapers.net/md/a/adriana-lima/1440/Adriana-Lima-1440x900-002.jpg )时,一切正常。但是当我在bash中用telnet访问这个网址时,却出现了404未找到的错误!
这是我在终端输入的内容:
$ telnet celebs.widewallpapers.net 80
HEAD /md/a/adriana-lima/1440/Adriana-Lima-1440x900-002.jpg HTTP/1.0
[按回车]
[再按回车]
结果是:HTTP/1.1 404 Not Found
服务器:nginx
日期:2010年5月23日 星期日 21:36:05 GMT
内容类型:text/html; charset=windows-1251
内容长度:166
连接:关闭
请帮帮我,因为我正在尝试制作一个C语言的批量下载器,它的工作方式几乎和telnet一样。
1 个回答
10
你没有传递主机头信息。根据HTTP/1.1的规定,你需要告诉网络服务器你想要连接哪个虚拟主机。现在99%的服务器都只会使用HTTP/1.1,即使你在请求中指定了HTTP/1.0。
jb@apto % telnet celebs.widewallpapers.net 80
...
HEAD /md/a/adriana-lima/1440/Adriana-Lima-1440x900-002.jpg HTTP/1.1
Host: celebs.widewallpapers.net
HTTP/1.1 200 OK
Server: nginx
Date: Sun, 23 May 2010 22:08:36 GMT
Content-Type: image/jpeg
Connection: close
Last-Modified: Sun, 27 Apr 2008 14:30:17 GMT
ETag: "4784e0-264b0-48148df9"
Accept-Ranges: bytes
Content-Length: 156848
Connection closed by foreign host.