Html 如何使用telnet发出请求?

Html 如何使用telnet发出请求?,html,sockets,http,telnet,Html,Sockets,Http,Telnet,这就是问题所在,使用firefox的livehttp header插件,我看到站点的标题是GET/HTTP/1.1。现在,当我从命令行telnet www.stackoverflow.com 80调用telnet并使用相同的报头时,我得到了这个响应 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> <HTML><HEAD><T

这就是问题所在,使用firefox的livehttp header插件,我看到站点的标题是
GET/HTTP/1.1
。现在,当我从命令行
telnet www.stackoverflow.com 80
调用telnet并使用相同的报头时,我得到了这个响应

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Hostname</h2>
<hr><p>HTTP Error 400. The request hostname is invalid.</p>
</BODY></HTML>

错误的请求
错误的请求-无效的主机名
HTTP错误400。请求主机名无效

我使用了相同的请求。那么为什么响应不同呢?

您没有使用相同的请求。这是我的浏览器向Stackoverflow发出的请求:

GET / HTTP/1.1
Host: stackoverflow.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
DNT: 1
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Cookie: REDACTED! REDACTED!
主机
标题对于现在的大多数网站来说都是必不可少的(因为很多网站使用虚拟名称托管来允许多个网站(通过主机名区分)托管在一个ip地址上。

您没有使用相同的请求。这是我的浏览器向Stackoverflow发出的请求:

GET / HTTP/1.1
Host: stackoverflow.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
DNT: 1
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Cookie: REDACTED! REDACTED!
主机
标题对于现在的大多数网站来说都是必不可少的(因为很多网站使用虚拟名称托管来允许多个网站(通过主机名区分)托管在一个ip地址上。

您没有使用相同的请求。这是我的浏览器向Stackoverflow发出的请求:

GET / HTTP/1.1
Host: stackoverflow.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
DNT: 1
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Cookie: REDACTED! REDACTED!
主机
标题对于现在的大多数网站来说都是必不可少的(因为很多网站使用虚拟名称托管来允许多个网站(通过主机名区分)托管在一个ip地址上。

您没有使用相同的请求。这是我的浏览器向Stackoverflow发出的请求:

GET / HTTP/1.1
Host: stackoverflow.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
DNT: 1
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Cookie: REDACTED! REDACTED!

主机
标题在当今的大多数网站中都是必不可少的(因为很多网站使用虚拟名称托管来允许多个网站(通过主机名进行区分)将托管在单个ip地址上。

因为您省略了
主机:域名
头,它通常位于第一行之后。HTTP请求通常由多行组成。因为您省略了
主机:域名
头,它通常位于第一行之后。HTTP请求通常由多行组成。因为e您省略了通常在第一行之后的
Host:thedomainname
标头。HTTP请求通常由多行组成。因为您省略了通常在第一行之后的
Host:thedomainname
标头。HTTP请求通常由多行组成。