1. HTTP定义
HTTP
全称Hypertext Transfer Protocol
,超文本传输协议,是应用层协议,由从客户端到服务器的请求和从服务器到客户端的响应构成。
2. HTTP协议的主要特点
1. 简单快速
简单:
- 每种资源(图片、页面)都通过固定的
url
来定位。在HTTP
协议中,处理起来比较简单,访问资源时,直接输入相应url
即可。
快速:
- 由于
HTTP
协议简单,使得HTTP
服务器的程序规模小,因而通信速度很快。
2. 灵活
HTTP
允许传输任意类型的数据对象。正在传输的类型由Content-Type
加以标记。
3. 无连接
无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
4. 无状态
无状态是指协议对于事务处理没有记忆能力。无状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。
例如,客户端和服务器端是两种身份。第一次请求结束后,就断开了,第二次请求时,服务器端并没有记住之前的状态,也就是说,服务器端无法区分客户端是否为同一个人、同一个身份。
另一方面,在服务器不需要先前信息时它的应答就较快。
有时,网站能记住我们的登录状态,从而免登陆,这并不是
HTTP
协议的功劳,而是其他手段(例如session
)。
3. HTTP报文的组成部分
HTTP
报文包括请求报文和响应报文。
1. 请求报文
请求报文由四个部分组成:
- 请求行:包括请求方法、请求 URL、HTTP 协议和版本
- 请求头:一些键值对
- 空行:请求头之后是一个空行,通知服务器以下不再有请求头、空行后面的内容是请求体
- 请求体:数据部分,
GET
没有请求数据,POST
有
一个简单的示例:
2. 响应报文
响应报文由四个部分组成:
- 状态行:
HTTP
协议和版本、状态码、状态描述 - 响应头
- 空行
- 响应体
一个简单的示例: