关于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. 参数类型没有限制,理论上可以传递任意数据类型,只不过要和请求头对应
相关推荐
gxhlh20 分钟前
React Native防止重复点击
javascript·react native·react.js
一只小白菜~36 分钟前
实现实时Web应用,使用AJAX轮询、WebSocket、还是SSE呢??
前端·javascript·websocket·sse·ajax轮询
计算机学姐1 小时前
基于python+django+vue的在线学习资源推送系统
开发语言·vue.js·python·学习·django·pip·web3.py
晓翔仔1 小时前
CORS漏洞及其防御措施:保护Web应用免受攻击
前端·网络安全·渗透测试·cors·漏洞修复·应用安全
jingling5551 小时前
后端开发刷题 | 数字字符串转化成IP地址
java·开发语言·javascript·算法
月夕花晨3741 小时前
C++学习笔记(26)
c++·笔记·学习
快快小毛毛1 小时前
CC攻击防御策略要怎么调整?使用游戏盾有效解决
运维·服务器·网络·tcp/ip·游戏·udp
lys_131 小时前
wireshark打开时空白|没有接口,卸载重装可以解决
网络·测试工具·wireshark
向往风的男子1 小时前
【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(三十一)
学习·容器·kubernetes
J老熊1 小时前
Linux下抓包分析Java应用程序HTTP接口调用:基于tcpdump与Wireshark的综合示例
java·linux·运维·web安全·http·面试