2013-04-02 195 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响应。