最近线上 Laravel 错误日志发现了一个异常

HTTPException Too Many Attemps

而我一个同事在本地开发的过程中也频繁遇到这个异常。测试环境:Laravel 5.5。

网上查了一下,是 Laravel 5.2 引入的 throttle middleware 造成的。

源码参考

https://github.com/illuminate/routing/blob/master/Middleware/ThrottleRequests.php

public function handle($request, Closure $next, $maxAttempts = 60, $decayMinutes = 1)

其表现是在 HTTP 的 Response 头中缀上了请求次数统计

X-RateLimit-Limit:60
X-RateLimit-Remaining:59

从 Chrome 的 console 看,每个 API 请求都会占用这个 limit 的限额。

X-RateLimit-Limit:60
X-RateLimit-Remaining:53

等过一分钟,再发送一个请求,都会发现限额已经被自动恢复。

对应的配置在 Laravel 项目文件 app/Http/Kernel.php

'api' => [
'throttle:60,1',
'bindings',
]

所以,

  • 第一个参数 60 代表每分钟限制 60 次请求
  • 第二个参数 1 代表触发了限制规则,则1分钟内禁止访问

将 60 调整成 120 就可以保证本地 debug 不会被频繁限制了。

Laravel API 限速异常 HTTPException Too Many Attemps的更多相关文章

  1. Laravel API Tutorial: How to Build and Test a RESTful API

    With the rise of mobile development and JavaScript frameworks, using a RESTful API is the best optio ...

  2. iBrand 开源电商小程序 (Laravel API+ webpack + gulp + 原生小程序)

    iBrand 社交电商产品正式进入开源过程中了,我们制定了详细的开源计划,目前已经发布了 V1 的版本,后续的版本也在陆续整理完善中. 各个版本功能明细如下图: 3 个版本计划在今年春节前全部完成,可 ...

  3. Laravel API跨域访问的实现步骤

    本篇文章给大家带来的内容是关于Laravel API跨域访问的实现步骤,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 服务器A请求服务器B的接口,那么一般会出现跨域问题. 1 XML ...

  4. Laravel API Errors and Exceptions: How to Return Responses

    Laravel API Errors and Exceptions: How to Return Responses February 13, 2019 API-based projects are ...

  5. ASP.NET Web API编程——异常捕获

    1 向客户端发送错误消息 使用throw new HttpResponseException()向客户端抛出错误信息. HttpResponseException包含两个重载的构造函数,其中一个是构造 ...

  6. 如何让 Laravel API 永远返回 JSON 格式响应?

    当你在编写完全为 API 服务的 Laravel 应用时,你希望所有响应都是 JSON 格式的,而不是例如说授权错误会重定向到 /home 或 /login,最终重定向会变成 InvalidArgum ...

  7. 【netcore基础】MVC API全局异常捕捉中间件ExceptionHandlerMiddleWare

    项目中想通过统一的接口格式返回异常信息,而不是404 500等HTTP协议层的异常响应 例如 { , , "message":"用户名或密码不正确", &quo ...

  8. Laravel validate 500异常 添加手机验证,中文验证与Validator验证的“半个”生命周期

    今天来讲一下,Lumen的Validator函数 1 2 3 4 5 6 7 8 9 10 11 use Validator;   ...   Class .. {   public function ...

  9. 推荐 Laravel API 项目必须使用的 8 个扩展包

    如今在现代网络开发中,比较流行的模式是基于 API 开发,可以通过手机或网站来创建服务. Laravel 是创建基于 API 的项目的最佳框架之一,它为世界各地的大型社区提供了高速开发. Larave ...

随机推荐

  1. Linux集群部署自定义时间同步服务器(ntpd)

    Linux集群部署自定义时间同步服务器(ntpd) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 身为一名运维人员,在搭建集群的时候,第一步需要做的就是同步每个机器的时间,尤其是在 ...

  2. 面向对象【day08】:反射的最佳实践(三)

    本节内容 1.伪造web框架的路由系统 2.反射函数 3.扩展导入模块 4.企业最佳实践 一.伪造web框架的路由系统 commons.py #!/usr/bin/env python # -*- c ...

  3. linux 出现ping,错误提示:connect :network is unreachable

    今天克隆Centos7后  修改IP地址 修改前: IP:172.16.0.198   默认网关:172.16.0.254 修改后: IP:172.16.1.100  默认网关:172.16.0.25 ...

  4. 学习Git笔记

    一.名词解释 1.仓库(Repository) 仓库用来存放项目代码,每个项目对应一个仓库,多个开源项目则有多个仓库. 2.收藏(Star) 收藏项目,方便下次查看 3.复制克隆项目(Fork) 该f ...

  5. mysql常用sql汇总

    给一张表新增一个字段 ALTER table student add zz INT() DEFAULT COMMENT '0是授权 1未授权' 给表student 新增一个zz的字段 默认是0 后面是 ...

  6. AES加密【转】

    .   此时就一定要使用如下代码步骤 : 1.SecureRandom的key定下来. SecureRandom 实现完全隨操作系统本身的內部狀態,除非調用方在調用 getInstance 方法之後又 ...

  7. webkitAnimationEnd事件与webkitTransitionEnd事件

    写一个焦点图demo,css3动画完成以后要把它隐藏掉,这里会用到css3的事件,以前没有接触过,结果查了一下发现这是一片新天地啊,而且里面还有好多坑,比如重复动画多次触发什么的.anyway,我还是 ...

  8. Linux - sort 排序

    -t # 指定排序时所用的栏位分隔字符 -n # 依照数值的大小排序 -r # 以相反的顺序来排序 -f # 排序时,将小写字母视为大写字母 -d # 排序时,处理英文字母.数字及空格字符外,忽略其他 ...

  9. CF949D Curfew

    传送门 跟这个大佬学的->戳我 假设只有一个宿管,那么从前往后做的过程中,如果能到达某个寝室范围内的人数不够\(b\),那么不如把这个寝室空出来,这样更有利于后面的抉择;反之,就把这个寝室搞正好 ...

  10. DSO windowed optimization 代码 (4)

    5 "step"计算 参考<DSO windowed optimization 公式>,计算各个优化变量的增加量. 公式再写一下: \[\begin{align} \b ...