在telnet中找不到404,在浏览器中工作正常

时间:2010-05-23 19:15:20

标签: python c http telnet

我有一个非常恼人的问题,当我在浏览器中打开一个网址(http://celebs.widewallpapers.net/md/a/adriana-lima/1440/Adriana-Lima-1440x900-002.jpg)时,它运行正常..但是当我尝试通过telnet在bash上访问它时,我找不到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

Content-Type:text / html;字符集=窗户-1251

内容长度:166 连接:关闭

请帮我解决这个问题,因为我正在尝试制作一个C批量下载程序,它几乎与telnet一样。

1 个答案:

答案 0 :(得分:10)

您没有传递主机标头。根据HTTP / 1.1,您需要告诉Web服务器您希望与哪个虚拟主机通信。即使您在请求中指定了HTTP / 1.0,今天99%的服务器也只会说HTTP / 1.1。

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.
相关问题