1.HTTP协议
HTTP协议(Hypertext Transfer Protocol)是一个简单的请求-响应协议
特点 | 描述 |
---|---|
简单快速 | HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快 |
灵活 | HTTP协议允许传输任意类型的数据对象。传输类型由Content-Type加以标记 |
无连接 | 每次连接只处理一个请求(注:HTTP1.1版本后支持可持续连接,即一次连接可以处理多个请求) |
无状态 | HTTP协议对于事务处理是没有记忆能力 |
2.HTTP协议请求的组成
(1)请求行
以一个方法符号开始,以空格分开,后面跟着请求的URI和协议的版本
格式:请求方法类型 URI 版本协议
(2)请求头
请求头包含了多个字段,用于描述一个HTTP请求的属性。这些字段由键值对组成。
常见的HTTP请求属性 | 描述 |
---|---|
Host | 客户端指定想要访问的Web服务器的域名/IP和端口号 |
Connection | 连接方式,close表示短连接,keep-alive表示持久连接 |
Upgrade-Insecure-Requests | 服务器是否支持HTTPS加密协议 |
Cache-Control | 指定请求和响应遵循的缓存机制 |
User-Agent | 浏览器种类 |
Accept | 告诉服务器自己接受什么介质类型 |
Accept-Encoding | 浏览器申明自己接受的编码方式 |
Accept-Language | 浏览器申明自己接受的语言 |
Accept-Charset | 浏览器申明自己接受的字符集 |
(3)请求体
用于传输请求的数据,是可选的(GET请求没有请求体,POST请求有请求体)
3.HTTP协议响应的组成
(1)响应行
协议的版本,以空格分开,后面跟响应状态码和状态码的简短描述
格式:版本协议 响应状态码 状态码的简短描述
HTTP状态码分类 | 描述 |
---|---|
1xx | 信息,服务器收到请求,需要请求者继续执行操作 |
2xx | 成功,操作被成功接收和处理 |
3xx | 重定向,需要进一步的操作以完成请求 |
4xx | 客户端错误,请求包含语法错误或无法完成请求 |
5xx | 服务器错误,服务器在处理请求的过程中发生错误 |
(2)响应头
响应头包含了多个字段,包含当前响应的详细信息。由键值对组成
常见的HTTP响应信息 | 描述 |
---|---|
Date | 响应的Date使用的是GMT时间格式,表示响应消息送达时间 |
Content-Encoding | 文档编码方式 |
Content-Length | 内容长度 |
Content-Type | 表示响应的文档属于什么MIME类型 |
(3)响应体
包含了服务器返回给客户端的实际数据。响应体的内容取决于请求的类型和状态码