超时是客户端自身设定的截止时间。如果没有超时,向服务器发出的请求如果始终没有响应,就会无限期地占用连接、线程,并耗尽用户的耐心。超时通常分为几个部分:连接等待时间、接收第一个字节的等待时间以及整个数据交换过程的总耗时。
当截止时间过后,客户端会中止请求并报告错误——在浏览器中通过 AbortController 报告,在大多数库中则报告超时异常。每一跳都有自己的超时机制:浏览器、CDN、负载均衡器、网关和应用程序。当内部超时时间长于外部超时时间时,外部层会首先放弃请求,内部的请求会继续执行,无需等待。
并非请求超时。服务器可能在客户端停止监听后接收到请求并完成处理;也可能是超时的 POST 请求创建了订单。将超时视为"unknown outcome" ,并使用幂等键确保写入操作可以安全重试。
GET /protocol/v1/gateway-timeout请求大约需要三秒钟才能返回 504,而 GET /pizza/v1/oven/preheat大约需要三秒钟才能成功——设置两秒钟的客户端超时时间,比较一下每个请求的执行情况。
所有术语 · 测试技巧 · 全部 39 个模拟 REST API
最后更新时间