HTTP-概述
概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
特点:
1、基于TCP协议:面向连接,安全
2、基于请求-响应模型的:一次请求对应一次响应
3、HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。
缺点:多次请求间不能共享数据。
优点:速度快
HTTP-请求协议
请求协议就是请求数据的格式
请求行 请求数据第一行(请求方式、资源路径)
请求头 第二行开始(格式key:value)(包含主机名、浏览器(版本、资源类型、偏好语言等))
请求体 POST请求,存放请求参数
GET:请求参数在请求行中,没有请求体
POST:请求参数在请求体中,POST请求大小没有限制
HTTP-响应协议
响应协议就是请求数据的格式
响应行 响应数据第一行(协议、状态码、描述)
响应头 第二行开始(格式key:value)(包含主机名、浏览器(版本、资源类型、偏好语言等))
响应体 最后一部分,存放响应数据
HTTP响应格式(响应码、响应头内容)
常见的响应状态码
100 | 请求者应当继续提出请求。 |
101 | 请求者已要求服务器切换协议,服务器已确认并准备进行切换。 |
200 | 正确的请求返回正确的结果,如果不想细分正确的请求结果都可以直接返回200。 |
201 | 表示资源被正确的创建。比如说,我们 POST 用户名、密码正确创建了一个用户就可以返回 201。 |
202 | 请求是正确的,但是结果正在处理中,这时候客户端可以通过轮询等机制继续请求。 |
203 | 请求的代理服务器修改了源服务器返回的 200 中的内容,我们通过代理服务器向服务器 A 请求用户信息,服务器 A 正常响应,但代理服务器命中了缓存并返回了自己的缓存内容,这时候它返回 203 告诉我们这部分信息不一定是最新的,我们可以自行判断并处理。 |
300 | 请求成功,但结果有多种选择。 |
301 | 请求成功,但是资源被永久转移。比如说,我们下载的东西不在这个地址需要去到新的地址。 |
303 | 使用 GET 来访问新的地址来获取资源。 |
304 | 请求的资源并没有被修改过。 |
308 | 使用原有的地址请求方式来通过新地址获取资源。 |
400 | 请求出现错误,比如请求头不对等。 |
401 | 没有提供认证信息。请求的时候没有带上 Token 等。 |
402 | 为以后需要所保留的状态码。 |
403 | 请求的资源不允许访问。就是说没有权限。 |
404 | 请求的内容不存在。 |
406 | 请求的资源并不符合要求。 |
408 | 客户端请求超时。 |
413 | 请求体过大。 |
415 | 类型不正确。 |
416 | 请求的区间无效。 |
500 | 服务器错误。 |
501 | 请求还没有被实现。 |
502 | 网关错误。 |
503 | 服务暂时不可用。服务器正好在更新代码重启。 |
505 | 请求的 HTTP 版本不支持。 |