2013-04-02 248 views

回答

15

的telnet服務器名80


GET /index.html

30

你可以做

telnet stackoverflow.com 80 

,然後粘貼

GET /questions HTTP/1.0 
Host: stackoverflow.com 


# add the 2 empty lines above but not this one 

H ERE是成績單

$ telnet stackoverflow.com 80 
Trying 151.101.65.69... 
Connected to stackoverflow.com. 
Escape character is '^]'. 
GET /questions HTTP/1.0 
Host: stackoverflow.com 

HTTP/1.1 200 OK 
Content-Type: text/html; charset=utf-8 
... 
+0

Hrm,它對我來說工作得很好(並且'Accept'頭也不是必需的)。 如果您足夠快地執行它(並使用與真實瀏覽器相同的頭文件),那麼根本不可能區分CLI請求和瀏覽器中的請求。區分的唯一方法是查看更大的背景(例如後續請求或缺少後續請求或時間,但即使如此,它也不是確定性的,因爲用戶可能使用擴展或設置來禁用外部資源的加載)。 – jdunk

+0

在導致「HTTP/1.1 400錯誤請求」響應的行的開頭處有多餘的空格。我修好了,並附上了一份成績單。乾杯。 –

4

留給後人,你的問題是如何發送一個HTTP請求到https://stackoverflow.com/questions。真正的答案是:你不能使用telnet,因爲這是一個僅限https的可訪問url。

所以,你可能想使用openssl,而不是telnet,這樣例如

$ openssl s_client -connect stackoverflow.com:443 
... 
--- 
GET /questions HTTP/1.1 
Host: stackoverflow.com 

這會給你的HTTPS響應。