![32304d866d3075d2dacc98c1cb5a4ad1.png](https://i-blog.csdnimg.cn/blog_migrate/7736e47d6a7471ba680230cae034991f.png)
HTTP协议(HyperText Transfer Protocal)
HTTP(超文本传输协议)是应用层上的一种客户端/服务端模型的通信协议,它由请求和响应构成,且是无状态的。
![51aeec5e1f7bfb66707b58a9c4a89a8a.png](https://i-blog.csdnimg.cn/blog_migrate/b381eef2696ab061e98f0d6a7df518dd.png)
- 协议
协议规定了通信双方必须遵循的数据传输格式,这样通信双方按照约定的格式才能准确的通信。
- 无状态
无状态是指两次连接通信之间是没有任何关系的,每次都是一个新的连接,服务端不会记录前后的请求信息。
URL构成
![1accedfe020de10ed70cf5f0a836fd65.png](https://i-blog.csdnimg.cn/blog_migrate/3fd01a30ea63fa4613ac58561a81228f.png)
协议内容
请求(request)
由请求行、请求头部、请求正文3部分组成
![42fc5090b3b0475cb61ed895258ce778.png](https://i-blog.csdnimg.cn/blog_migrate/85361c839772064a1a1d8ac1d56becdb.png)
1,请求行
由3部分组成,分别为:请求方法、URL(见备注1)以及协议版本,之间由空格分隔
请求方法包括GET、HEAD、PUT、POST、TRACE、OPTIONS、DELETE以及扩展方法
2,请求头部
请求头 说明
- Host 接受请求的服务器地址,可以是IP:端口号,也可以是域名
- User-Agent 发送请求的应用程序名称
- Connection 指定与连接相关的属性,如Connection:Keep-Alive
- Accept-Charset 通知服务端可以发送的编码格式
- Accept-Encoding 通知服务端可以发送的数据压缩格式
- Accept-Language 通知服务端可以发送的语言
3,请求正文
![5f66ce3fe444693c421789f7d355f5a2.png](https://i-blog.csdnimg.cn/blog_migrate/17ccfb1c904e42d38fb5d04b1d02478a.jpeg)
![5bd55ff43257dbe6d83a1c45a7d48ec3.png](https://i-blog.csdnimg.cn/blog_migrate/2f582869e41302d3c694084885bcb490.png)
响应(response)
由状态行、响应头部、响应正文3部分组成
![3ebbce0be10accc1b8e8756537bc149e.png](https://i-blog.csdnimg.cn/blog_migrate/88dca9c5448be74450703ac14ca5dbf7.png)
1,状态行
由3部分组成,分别为:协议版本,状态码,状态码描述,之间由空格分隔
状态代码为3位数字,200~299的状态码表示成功,300~399的状态码指资源重定向,400~499的状态码指客户端请求出错,500~599的状态码指服务端出错
状态码 说明
- 200 响应成功
- 301 永久重定向,搜索引擎将删除源地址,保留重定向地址
- 302 暂时重定向,重定向地址由响应头中的Location属性指定
- 304 缓存文件并未过期,还可继续使用,无需再次从服务端获取
- 400 客户端请求有语法错误,不能被服务器识别
- 403 服务器接收到请求,但是拒绝提供服务(认证失败)
- 404 请求资源不存在
- 500 服务器内部错误
2,响应头部
响应头 说明
- Server 响应成功
- Content-Type 永久重定向,搜索引擎将删除源地址,保留重定向地址
- Content-Length 暂时重定向,重定向地址由响应头中的Location属性指定
- Content-Charset 缓存文件并未过期,还可继续使用,无需再次从服务端获取
- Content-Encoding 客户端请求有语法错误,不能被服务器识别
- Content-Language 服务器接收到请求,但是拒绝提供服务(认证失败)
响应示例:
![501a59d4994fd6eb21fbd4b75e7741b2.png](https://i-blog.csdnimg.cn/blog_migrate/8c44a4ee71dab2973f64833e8d4bb203.jpeg)