关于HTTP通讯流程知识点补充—常见状态码及常见请求方式

1、常见的 HTTP 响应状态码

  • 在一个HTTP请求响应报文中的状态行会有一个响应状态码
  • 这个状态码是用来描述本次响应的状态的 ●
  • 通常会出现五种状态码
  1. 100 ~ 199
  2. 200 ~ 299
  3. 300 ~ 399
  4. 400 ~ 499
  5. 500 ~ 599

2、100 ~ 199------请求准备状态

一般我们看不到,因为表示请求继续

  1. 100: 继续请求,前面的一部分内容服务端已经接受到了,正在等待后续内容
  2. 101: 请求者已经准备切换协议,服务器页表示同意
  3. 剩下的状态码:可以在服务端自定义这些状态码,但是已经有含义的这些规范的状态码是可以继续沿用的

3、200 ~ 299------请求成功

  • 2开头的都是表示成功,本次请求成功了
  • 只不过不一样的状态码有不一样的含义(语义化)
  1. 200: 标准请求成功(一般表示服务端提供的是网页)
  2. 201: 创建成功(一般是注册的时候,表示新用户信息已经添加到数据库)
  3. 203: 表示服务器已经成功处理了请求,但是返回的信息可能来自另一来源(服务端返回的数据不是在本地服务器返回的,而是通过其它服务器返回的数据,比如a找b借钱,b不够则找c借钱,c给完b,b在把数据给a)
  4. 204: 服务端已经成功处理了请求,但是没有任何数据返回

4、300 ~ 399------重定向

  • 3开头也是成功的一种,但是一般表示:重定向
  1. 301: 永久重定向 => 当前服务器压根不是处理响应的服务器,只是转发请求的服务器,比如淘宝:请求的太多了,可能会把各种请求分给不同功能的服务器去处理
  2. 302: 临时重定向 => 服务器负载满了,给浏览器临时分配一个处理的地方
  3. 304: 使用的是缓存的数据
  4. 305: 使用代理 => 当前服务器并不负责返回响应,它只是转发请求的,让别的服务器去返回响应,然后它在转回数据

5、400 ~ 499------表示错误,配置信息可能出错了

  • 4开头表示客户端出现错误
  1. 400: 请求的语法服务端不认识
  2. 401: 未授权(你要登录的网站需要授权登录)
  3. 403: 服务器拒绝了你的请求 => 没有携带正确的信息/发起了一些异常请求/因为一些安全策略被服务器拒绝,来源可能不够安全
  4. 404: 服务器找不到你请求的 URL => 实际开发中:一般都会404去指代一切找不到资源的情况
  5. 407: 你的代理没有授权 => 违规代理
  6. 408: 请求超时 => 服务端超时
  7. 410: 你请求的数据已经被服务端永久删除

6、500 ~ 599------服务器错误

  • 5开头的表示服务端出现了错误
  1. 500: 服务器内部错误 => 告知服务端错误情况,让他维护一下代码
  2. 503: 服务器当前不可用(过载或者维护),也有可能是防火墙出现问题了 => 请求被防火墙拦截/服务器返回的响应被防火墙拦截
  3. 505: 请求的协议服务器不支持

7、常见的 HTTP 请求方式

  • 每一个HTTP请求请求行里面会有一个东西叫做请求方式
  • 不同的请求方式代表的含义不同
  • 我们比较常用的就是GETPOST
  1. GET: 一般用于获取一些信息使用(获取列表)
  2. POST: 一般用于发送一些数据给服务端(登录)
  3. PUT: 一般用于发送一些数据给服务当让其添加新数据(注册)
  4. DELETE: 一般用域删除某些数据
  5. HEAD: 类似于 GET 的请求,只不过一般没有响应的具体内容,用于获取报文头
  6. CONNECT: HTTP/1.1 中预留的方式,一般用于管道链接改变为代理的时候使用
  7. PATCH: 是和 PUT 方式类似的一个方式,一般用于更新局部数据
  8. OPTIONS: 允许客户端查看服务端性能

8、GET 请求特征

  1. 参数QueryString的形式发送,也就是直接拼接在 => 请求路径的后面(url?QueryString => url?key = value)
  2. GET 请求会被浏览器主动缓存 => 在下次请求时,如果请求的参数没有发生改变,那么就可能调用缓存,提升浏览器的执行性能
  3. GET 请求根据不同的浏览器对长度是有限制
    • IE: 2083 个字符
    • FireFox: 65536 个字符
    • Safari: 80000 个字符
    • Opera: 190000 个字符
    • Chrome: 8182 个字符
    • APACHE(server阿帕奇服务器-后端处理请求的服务器): 理论上接受的最大长度是 8192 个字符(有待商榷)
  4. 参数的类型有限制,只接受 ASCII 码的格式

9、POST 请求特征

  1. 参数以request body的形式发送,也就是放在请求体
  2. POST 请求不会被浏览器主动缓存,除非手动设置
  3. POST 请求的理论上是没有限制的(不限制长度 => 携带的数据内存大小),除非服务端做了限制
  4. 参数类型没有限制,理论上可以传递任意数据类型,只不过要和请求头对应
相关推荐
斑布斑布几秒前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习
Spring_java_gg11 分钟前
如何抵御 Linux 服务器黑客威胁和攻击
linux·服务器·网络·安全·web安全
bysking28 分钟前
【前端-组件】定义行分组的表格表单实现-bysking
前端·react.js
Chef_Chen41 分钟前
从0开始学习机器学习--Day13--神经网络如何处理复杂非线性函数
神经网络·学习·机器学习
王哲晓44 分钟前
第三十章 章节练习商品列表组件封装
前端·javascript·vue.js
fg_4111 小时前
无网络安装ionic和运行
前端·npm
理想不理想v1 小时前
‌Vue 3相比Vue 2的主要改进‌?
前端·javascript·vue.js·面试
酷酷的阿云1 小时前
不用ECharts!从0到1徒手撸一个Vue3柱状图
前端·javascript·vue.js
微信:137971205871 小时前
web端手机录音
前端
齐 飞1 小时前
MongoDB笔记01-概念与安装
前端·数据库·笔记·后端·mongodb