我有一个非常恼人的问题,当我在浏览器中打开一个网址(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一样。
答案 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.