关于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. 参数类型没有限制,理论上可以传递任意数据类型,只不过要和请求头对应
相关推荐
三言老师5 分钟前
CentOS7 / 8 yum 查询软件安装路径实操
运维·服务器·网络·centos
shawxlee9 分钟前
vue3+axios挑战最简洁实用的配置封装+接口调用:请求拦截器、响应拦截器、通用请求方法(单个请求/并发请求/下载文件)、统一接口管理
前端·经验分享·vue·接口·axios·api
倚栏听雨_ylty23 分钟前
H3C交换机关闭Telnet和HTTP服务实例
运维·网络·tcp/ip·网络安全
崖边看雾25 分钟前
Python学习——函数
开发语言·windows·python·学习·pycharm
xywww16829 分钟前
Claude Opus 5 API 接入实战:国内项目上线前的网络、Key、限流和排错清单
大数据·linux·网络·数据库·云计算·aws
ShineWinsu32 分钟前
对于Linux:http的解析
linux·网络·c++·网络协议·http·请求·响应
-拟墨画扇-33 分钟前
神经网络 | ⑬ 超参数验证:找到最佳学习超参数
深度学习·神经网络·学习
yuhaiqiang35 分钟前
上线一个人静态网站需要多少钱,难不难?
前端·后端·程序员
宸津-代码粉碎机39 分钟前
Jar热部署进阶实战|修复原生方案OOM与类冲突问题,生产级无BUG优化方案
java·大数据·服务器·开发语言·前端·人工智能·python
白猫不黑41 分钟前
SQL注入实战:手工注入全流程详解
网络·数据库·sql·web安全·网络安全·信息安全