最近线上 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. pyglet 绝对路径资源导入以及视频播放(二)

    今天终于搞明白怎么把绝对路径内的视频文件和音频文件导入到资源... 代码: #-*- coding:gbk -*- import pyglet import os window=pyglet.wind ...

  2. list 删除一个元素的三种做法--python

    我们以一个字符串为元素类型的 list 为例,进行列表元素的删除: l = ['no surfing', 'flippers'] 法一:remove(val) >>> l.remov ...

  3. saltstack 常用模块

    cp模块 功能:实现远程文件.目录的复制,以及下载URL文件等操作 使用cp模块配置管理之前,要首先指定saltstack所有状态文件的根目录,在master上做如下操作: 指定根目录(确定指定的目录 ...

  4. 数据库入门理论知识介绍以及编译安装MySql

    数据库入门理论知识介绍以及编译安装MySql 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 1.目前90%以上的公司面临的运维的瓶颈都在后端 最常见的2大瓶颈就是: 1&g ...

  5. centos7下安装nginx的方法

    没有用tar包的方法,太麻烦,还需要找,还需要编译,还需要下乱七八糟的依赖模块.麻烦的一逼,看网上说的.就采用了在线安装的方法.很快.注意一下,这种方法安装是安装到系统默认的位置.我也不知道怎么换.留 ...

  6. Python复习笔记(三)函数进阶

    问题 1:在函数内部,针对参数使用 赋值语句,会不会影响调用函数时传递的 实参变量? —— 不会! 无论传递的参数是 可变 还是 不可变 只要 针对参数 使用 赋值语句,会在 函数内部 修改 局部变量 ...

  7. DotNetBar 控件设置空内容时显示内容

    可以通过修改所有关于Watermark时的设置.

  8. linux space/mark设置

    参考链接: http://blog.csdn.net/zhaozh2000/article/details/6460223 串口数据的发送: 数据的发送: 数据位+检验位+停止位, 进行数据的发送.( ...

  9. cetus系列~ cetus+mha

    一 简介:mha+cetus高可用架构二 环境  1 mysql 5.7 并行复制+GTID  2 cetus最新版  3 mha0.57二 安装  1 安装mha-rpm包  2 做免密认证  3 ...

  10. python中的%s%是什么意思

    它是一个字符串格式化语法(它从C借用). 请参阅  “格式化字符串”: Python支持将值格式化为字符串.虽然这可以包括非常复杂的表达式,但最基本的用法是将值插入到%s 占位符的字符串中  . 编辑 ...