跳至主要內容

记一次http@421状态码的排查情况

devstatus@421http大约 1 分钟约 416 字

记一次http@421状态码的排查情况

  1. 后台返回421状态码时,浏览器底层会自动重发一次相同的请求
  2. F12查看只有一次请求,前端请求的返回也只有一条
  3. 通过抓包软件或者ng后台日志可以确认浏览器确认发了2条相同的请求

1. 过程

一次日常版本测试中,测试同事反馈某一场景下后台日志收到:接口A有2条相同的请求日志,而接口B只有一条请求日志。

1.1. 排查

  1. 是不是对应的请求输出日志有两条
    1. 不是
  2. 是不是接口A跨域的option请求
    1. 不是,这个接口虽然跨域,但是因为是简单请求,所以没有option请求。
  3. 是不是前端代码逻辑问题
    1. 不是,通过F12调试看网络请求只有一个请求。对应的业务代码也只收到一次回调。
    2. 通过抓包软件查看,确实有两次相同的接口A请求
  4. 该接口http@200成功时的日志情况
    1. 接口A只有一条请求记录。
    2. 查看http规范中421状态码的说明,同时找后台同事切换到其他错误码423验证,只有一条请求记录。
  5. 老机型的部分浏览器验证
    1. http@421只发了一次请求。

1.2. 确认

  1. 新的浏览器已经实现了http规范,在http@421时会自动重发请求

2. 参考