HTTP是超文本传输协议的英文缩写,是基于TCP/IP通讯协议之上用来传输HTML和图片文件的应用协议,原本是用来从万维网服务器传输超文本到本地浏览器。它是一个应用层面向对象的协议,优点是简捷、快速,适用于分布式超媒体信息系统。于1990年提出,经过多年的完善和扩展已经非常的成熟。HTTP协议主要工作于B-S架构之上,这个时候浏览器作为HTTP的客户端通过URL向HTTP的服务器(web服务器)发送所有请求,web服务器根据接收到的请求后,向客户端发送响应信息。客户端向服务器请求发送时,需要传送请求方法和路径。路径就是URL,而HTTP常用的请求方法为GET和POST方法,每种方法规定了客户端与服务器通讯方式和数据报文。
77247753f3724d1ea947b3738ad92ca6?from=pc.jpg
HTTP协议报文客户端与服务器的通讯都是通过一个个请求来实现的,一个HTTP请求的消息包括:请求行、请求头部、空行、请求数据四个部分组成的。
e528a18c44cc487db08b05e9bfd315fd?from=pc.jpg
服务器收到请求后,需要响应,而响应的消息也由四个部分组成:状态行、消息报头、空行、响应正文。
154d2be32aa94b9eba9dd21936c13092?from=pc.jpg
HTTP请求方法HTTP1.0定义三种请求方法:GET、POST、HEAD方法。
HTTP1.1又新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE和CONNECT方法。
5f78898805d24373a4d48dc77e84ea6f?from=pc.jpg
我们常用的主要是GET和POST方法,GET 方法主要是用于向web服务器请求获取数据和资源,而POST主要是将客户端的数据和资源发送给web服务器到达更新和修改的目的。
HTTP请求头请求头包含许多有关的客户端环境和请求正文有用的信息。比如请求头可以声明浏览器所使用的语言,请求正文的长度等。
da6c9d6d514448a09a280350edcafa35?from=pc.jpg
HTTP的请求头根据实际的需求进行组包,并不是固定的,要进行灵活的处理,例如下:
a90a5a5615fd4c9db4445252fb4e7065?from=pc.jpg
HTTP响应头信息响应头部和请求头部差不多,用于传递一些附加的信息,每一个响应头都是一个键值对,键和值之间用英文冒号隔开,后面都是一个回车符和与一个换行符,即每个响应头都单独形成一行。下图为一些常见的响应头:
c259a9ee6a6e46e8b9d14ffc7be53bff?from=pc.jpg
下面是一个完整的请求响应报文:
3f5d1a6529254c51916657d5b104725b?from=pc.jpg


来源:亿佰特物联网实验室