2010-05-23 83 views
4

我有一個非常惱人的問題,當我在瀏覽器中打開一個url(http://celebs.widewallpapers.net/md/a/adriana-lima/1440/Adriana-Lima-1440x900-002.jpg),它工作正常..但是當我嘗試通過bash上的telnet訪問它時,我得到404沒有發現!404沒有在telnet中找到,在瀏覽器中工作正常

我的確切終端:

$遠程登錄celebs.widewallpapers.net 80

HEAD /md/a/adriana-lima/1440/Adriana-Lima-1440x900-002.jpg HTTP/1.0 [進入] [進入]

HTTP/1.1 404未找到

服務器:nginx

日期:太陽,23五月2010 21: 36:05 GMT

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

的Content-Length:166 連接:關閉

請幫我這個作爲我米試圖使一個C批量下載,這幾乎是工作作爲Telnet相同。

+1

由calmh提供的答案很可能是正確的,但你可以使用'wireshark'和/或tcpdump的同時捕獲的交易(通過telnet與瀏覽器),然後檢查它們的區別。瀏覽器發送的很多內容對您的遠程登錄版本來說不是必需的或者甚至是準確的,但會有一些需要的東西。你可能還想看看'wget'(web get),'curl'(複製URL)和'nc'(網絡貓)的工具。 Telnet可能會在進入通過模式之前發送一些終端設置內容。 – nategoose 2010-05-23 19:57:54

+1

爲什麼這有一個python標籤? – Puddingfox 2010-05-23 20:49:38

+0

@puddingfox 可能會生成視圖。不過,一些管理員應該關閉它。 – new123456 2010-08-03 17:26:47

回答

10

您未通過主機標題。根據HTTP/1.1,您需要告訴Web服務器您期望與哪個虛擬主機通話。即使您在請求中指定了HTTP/1.0,今天99%的服務器也只會與HTTP/1.1進行通話。

[email protected] % 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. 
相關問題