🍎道阻且长,行则将至。🍓
一、HTTP简介🍓
全称:HyperText Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
协议特点
- 基于TCP协议
TCP是一种面向连接的(建立连接之前是需要经过三次握手)、可靠的、基于字节流的传输层通信协议,在数据传输方面更安全。
- 基于请求-响应模型
请求和响应是一 一对应关系
- 是无状态协议
对于事物处理没有记忆能力,每次请求-响应都是独立的。
无状态指的是客户端发送HTTP请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息。这种特性有优点也有缺点:
* 缺点:多次请求间不能共享数据;
* 优点:速度快。
二、请求数据格式🍎
请求数据总共分为三部分内容,分别是==请求行==、==请求头==、==请求体==
1.请求行
HTTP请求中的第一行数据,请求行包含三块内容,分别是 GET[请求方式] /[请求URL路径] HTTP/1.1[HTTP协议及版本]
请求方式有七种,最常用的是GET和POST
2.请求头
第二行开始,格式为key: value形式
请求头中会包含若干个属性,常见的HTTP请求头有:
name | 说明 |
---|---|
Host | 表示请求的主机名 |
User-Agent | 浏览器版本标识 |
Accept | 表示浏览器能接收的资源类型,如text/,image/或者/表示所有 |
Accept-Language | 表示浏览器偏好的语言,服务器可以据此返回不同语言的网页 |
Accept-Encoding | 表示浏览器可以支持的压缩类型,例如gzip, deflate等 |
3.请求体
POST请求的最后一部分,存储请求参数。请求体和请求头之间是有一个空行隔开。
==note==:
GET请求请求参数在请求行中,没有请求体,POST请求请求参数在请求体中
GET请求请求参数大小有限制,POST没有
三、响应数据格式🍎
请求数据总共分为三部分内容,分别是==请求行==、==请求头==、==请求体==响应数据总共分为三部分内容,分别是==响应行==、==响应头==、==响应体==
1.响应行
响应数据的第一行,响应行包含三块内容,分别是 HTTP/1.1[HTTP协议及版本] 200[响应状态码] ok[状态码的描述]
2.响应头
第二行开始,格式为key:value形式
响应头中会包含若干个属性,常见的HTTP响应头有:
name | 说明 |
---|---|
Content-Type | 表示该响应内容的类型,例如text/html,image/jpeg; |
Content-Length | 表示该响应内容的长度(字节数); |
Content-Encoding | 表示该响应压缩算法,例如gzip; |
Cache-Control | 指示客户端应如何缓存,例如max-age=300表示可以最多缓存300秒 |
3.响应体
最后一部分。存放响应数据
☕物有本末,事有终始,知所先后。🍭