使用Telnet协议探究HTTP事务

2017-04-05  本文已影响0人  陆小红_

写在前面

我们在绝大部分使用HTTP服务的场景中,都是利用浏览器或者请求发送工具(Postman)来构造HTTP请求报文,并由这些工具接收响应报文,最终根据一定规则渲染报文的效果(二进制流、文件、图片、或普通web界面)。那么HTTP协议到底是怎么工作的呢?或者说一次HTTP的请求事务过程是怎样的呢?下面我们利用【telnet】命令来探究HTTP事务的执行过程。

Telnet与HTTP

由于HTTP使用了TCP/IP 传输协议,而且它是基于文本的,没有使用那些难以理解的二进制格式,因此很容易直接与Web服务器进行对话。Telnet程序可以将(本地)键盘连接到某个目标(远端或本地)TCP端口,并将此TCP端口的输出回送到显示屏(本地)上。Telnet常用于远程终端会话,但它几乎可以连接所有的TCP服务器,包括HTTP服务器。可以通过Telnet程序直接与Web服务器进行对话。通过Telnet可以打开一条到某台机器上某个端口的TCP连接,然后直接向那个端口输入一些字符(命令)。Web服务器会将Telnet程序作为一个Web客户端来处理,所有回送给TCP连接的数据都会显示在(本地)显示屏上。
  我们用Telnet与一个实际的Web服务器进行交互。我们要用Telnet获取URL www.jianshu.com/index 所指向的文档。下面我们来说明一下会发生什么情况:

Telnet模拟HTTP客户端开启HTTP事务

下面是使用Telnet的HTTP事务图:

Telnet模拟HTTP客户端开启HTTP事务示意图
  Telnet会查找主机名(使用DNS找到对应的IP地址)并打开一条连接,连接到在 www.jianshu.com 的端口80 上监听的Web服务器。这条命令之后的三行内容是Telnet的输出,告诉我们它已经建立了连接。
  然后我们输入最基本的请求命令 GET /index HTTP/1.1,发送一个提供了远端主机名的Host首部,后面跟上一个空行,请求从服务器 www.jianshu.com 上获取资源 /index。随后,服务器会以一个响应行、几个响应首部、一个空行和最后面的HTML文档主体来应答。
上一篇下一篇

猜你喜欢

热点阅读