telnet中404未找到,浏览器正常

4 投票
1 回答
2356 浏览
提问于 2025-04-15 23:03

我遇到了一个很烦人的问题,当我在浏览器中打开一个网址( 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.

撰写回答