使用telnet模拟http请求

HTTP

首先我们需要知道http报文是由一系列的字符串组成的。然后我们来了解具体的相关事项。

方法

HTTP支持几种不同形式的请求命令,这些命令就被称为HTTP方法。每个HTTP请求报文都包含一个方法,这个方法决定了服务区将会执行的动作。

常见的HTTP方法如下:

GET 从服务区向客户端发送命名资源

PUT 将来自客户端的数据存储到一个命名的服务器资源中

DELETE 从服务区中删除命名资源

POST 将客户端数据发送到一个服务区网关应用程序

HEAD 仅发送命名资源响应中的HTTP首部

 

状态码

每条HTTP响应报文返回时都会携带一个状态码。状态码是一个三位数字的代码,每条代码一般代表了一个具体的状态。除了状态码,HTTP还会发送一条解释性的原因短语文本。

如:404 NotFound

需要注意的是所有的处理过程使用的都是数字码,所以说哪怕返回的是404 xxxx也是可以的。

 

报文

HTTP报文都是纯文本。所有对HTTP报文都可以很方便的进行读写。

例:Get  /index.htm HTTP/1.0

Accept:text/html

Host: www.baidu.com

Accept-Language:en

例:HTTP/1.0 200OK

Content-type:text/plain

Content-length:19

TEST!

HTTP报文包括三个部分

起始行:报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说明出现了什么情况。

首部字段:起始行后的内容被称为首部字段,每个字段都包含一个属性和对应的值,为了便于解析,两者之间使用冒号【:】来分隔。首部以一个空行结束

主体:在首部字段的空行后就是可选的报文主体了,其中包含了所有类型的数据,请求主体中包括了要发送给服务器的数据,响应主体中则包含了需要返回给客户端的数据。起始行和数据字段都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意类型的数据。

在windows下使用telnet www.baidu.com 80

这时会显示空白的命令行,按下【ctrl+]】

回车进入编辑状态,此时又回到空白状态,输入http请求

输入两个回车,即两个\r\n即可得到结果

(0)

相关推荐