目录
一、概念
超文本传输协议:规定了浏览器和服务器之间数据传输的规则
传输数据的规则:客户端浏览器和服务器之间进行数据交互,传输的格式
建立好约定:才能获取各自的意图
两者得按照一定的格式去书写
二、特点
- 基于TCP协议:面向连接,安全,三次握手的连接
- 基于请求响应模型:一次请求对应一次响应
- HTTP协议是无状态的协议:对于事务处理没有记忆力,每次请求响应都是独立的
- 缺点:多次请求间不能共享数据
- 优点:速度快
三、请求数据的格式
- 请求行:请求数据的第一行。GET表示请求方式 /代表请求资源的路径 HTTP/1.1表示协议版本
- 请求头:第二行开始,格式为key:value形式
- 请求体:POST请求最后一部分,存放请求参数
- 常见请求头
- Host:表示请求的主机名
- User-agent:浏览器版本
- Accept:表示浏览器能够接收的资源类型
- Accept-Language:表示浏览器偏好的语言,服务器可以根据此返回不同语言的网页
- Accept-Encoding:支持的压缩类型,例如zip
四、GET和POST请求区别
1.get请求请求参数在请求行中没有请求体。post请求请求参数在请求体中
2.get请求请求参数大小有限制,post没有
五、响应数据的格式
- 响应行:响应数据的第一行,其中HTTP/1.1表示协议版本 200表示响应状态码,🆗表示状态码描述
- 响应头:第二行开始,格式为key:value形式
- 响应体:最后一部分,存放响应数据
六、常见HTTP响应头
- Content-Type:表示该响应内容的类型,例如text/html,image/jpeg;
- Content-Length:响应内容长度
- Content-Encoding:压缩语法
- Cache-Control:指示客户端如何缓存,例如max-age=300,表示最多缓存300秒
七、响应状态码
状态码大全:https://cloud.tencent.com/developer/chapter/13553
状态码分类 | 说明 |
1xx | 响应中--临时状态码,表示请求已经接受,告诉客户应该继续请求或者如果它已经完成则忽略它 |
2xx | 成功--表示请求已经被成功接收,处理已完毕 |
3xx | 重定向--重定向到其他地方,他让客户端再发起一个请求以完成整个处理 |
4xx | 客户端错误--处理发生错误,责任在客户端如:客户端请求一个不存在的资源,客户端未被授权,禁止访问等 |
5xx | 服务器端错误--处理发生错误,责任在服务端,如:服务端抛出异常,路由出错,HTTP版本不支持 |
八、常见的响应状态码
状态码 | 英文描述 | 解释 |
200 | OK | 请求成功,响应成功 |
302 | Found | 所请求资源已经移动到另外一个位置,位置已经通过Location响应头告诉URL,浏览器接收到状态码和URL后,会去自动重新访问新的URL,获取资源 |
304 | Not Modified | 你请求的资源和上一次的一样,所以你直接用本地缓存,隐式重定向 |
400 | Bad Request | 客户端的请求存在语法错误 |
403 | Forbidden | 服务端拒绝提供服务,比如:没有权限访问相关资源 |
404 | Not Found | 请求资源不存在,URL写错了,或者资源被删除了 |
428 | Precondition Required | 服务器要求有条件的请求:要访问该资源必须携带特定的请求头 |
429 | Too Many Request | 太多请求,限制客户端请求资源的数量 |
431 | Request Header Fields Too Large | 请求头太大,服务器不想处理 |
405 | Method Not Allowed | 请求方式有误 |
500 | Internal Not Allowed | 服务器出现不可预期的错误,去检查日志 |
503 | Service Unavailable | 服务端尚未准备好处理请求 |
511 | NetWork Authentication Required | 客户端需要进行身份验证才能获得王诺访问权限 |