HTTP超文本传输协议,以下简称HTTP,用于实现服务器和客户端之间的数据传输。它可以传输任何数据类型,如文本、HTML、图片、文件、声音等。简单来说,HTTP就像一个“信使”,在客户端和服务器端之间承载数据传输,如下图所示:
1.HTTP功能

HTTP的主要特性如下:
快速:客户端向服务器发送请求时,只需要传递请求方法、路径和请求参数。因为协议简单,HTTP服务器的程序规模小,所以通信速度快。
无连接:所谓无连接是指每个连接只处理一个请求。服务器处理完客户的请求后,会立即断开连接。
无状态:HTTP不记录每个请求的身份信息,所以上一个请求和下一个请求“互不认识”。
可以传输任何数据类型:HTTP允许传输任何数据类型,只需在请求头中标识数据类型Content-Type即可。
一对一通信:每个HTTP请求,一个客户端对应一个服务器。
2.HTTP作文
HTTP由以下两部分组成:
请求对象请求。
响应对象响应。
每个HTTP请求由一个请求和一个响应组成,如下图所示:
2.1请求对象
该请求包含四个部分:
请求行
请求标题
空行
请求文本
如下图所示:
请求行
该请求包含以下三个部分:
请求类型方法,如GET。
请求的URL地址,例如https://www.baidu.com。
HTTP版本号,比如HTTP/1.1。
其中,所有请求类型如下:
请求标题
发送请求时,请求头描述了更多的请求信息。它以“name: value”的形式存在,每个请求头占一行。的常见请求标头如下:
主机:表示服务器的地址和端口号。
Content-Type:用于描述请求体中的数据类型。常见的类型有:json格式的application/json、表单格式的application/x-www-form-urlencoded、文件格式的multipart/form-data等。

Content-Length:用于描述请求体中的数据长度。需要注意的是,这里数据长度的统计单位是字节而不是字符。
用户代理:用户代理信息,如系统信息、浏览器类型和访问用户的版本信息。
2.1.3 空线
没有内容的空行用于分隔请求头和请求体的特殊组成部分。
请求文本
要在业务系统中传递的参数。
2.2响应对象
响应对象也由4部分组成:
线条
应答标题
空行
回复文本
如下图所示:
状态行
状态行用于描述服务器的返回状态。它由3部分组成:
HTTP版本号,比如HTTP/1.1。
状态代码,如200。
描述信息,如OK。
常见的状态代码如下:
200:成功返回。
31:永久重定向。
32:临时重定向。
404:找不到页面。
50:服务器程序出错。
响应标题
与请求头类似,响应头也以“name: value”的形式存在,每个头占一行。的常见标头包括Content-Type,用于描述响应正文的数据类型。常见的数据类型有:json格式的application/json和html格式的text/html。
2.2.3 空线
不包含任何内容的空行,用于分隔状态行和响应正文的特殊部分。

回应文本
所有数据返回给客户端。
摘要
HTTP超文本传输协议用于实现服务器和客户端之间的数据传输。它的特点是简单,快速,无连接,无状态,能够传输任意数据类型和一对一的通信。HTTP协议由两部分组成:请求对象和响应对象。
资料来源:https://www.cnblogs.com/vipstone/p/16465257.html


