我了解到你可以使用 telnet 下载网页(发出 http 请求),例如
telnet www.example.com 80
GET HTTP / HTTP/1.1
HOST: www.example.com
那么输出将是一个 html 源页面或者其他内容。
我的问题是,如果我们在初始化 telnet 请求时指定了 www.example.com
telnet www.example.com 80
为什么我们还需要再次指定
HOST: www.example.com
?
多谢你们!
答案1
telnet
不理解 HTTP,所以所做的只是打开到端口telnet example.com 80
的连接。后续的 HTTP 请求完全由您决定,包括标头。example.com
80
如果没有Host
标头,您的请求将转到服务器处理上的默认虚拟主机example.com
(就像您在浏览器中输入服务器的 IP 地址一样),这可能会不是是example.com
。