首页
学习
活动
专区
圈层
工具
发布

Laravel学习笔记(二)—— 路由,请求接收与转发

前言 对于新手而言,你可能只需要会使用Laravel就行了,这也是我第一章没写Laravel生命周期的原因。...(~~其实目前我也不是蛮懂,我怕写了被打脸~~)不过,学到后面肯定是要把她(Laravel)摸透的,暂时先留个坑,学会了再来填坑。毕竟,在我写笔记的时候,我也是一个Laravel的新手、初学者。...路由文件—— routes文件夹 上篇文章我有提到routes文件夹里四个文件,web.php、api.php、 console.php 和 channels.php。...这就是默认的welcome视图,当我们部署好默认的Laravel项目后,打开浏览器后看到的是Laravel的默认welcome界面,就是web.php路由和welcome.blade.php视图文件起的作用...method,any用于匹配所有类型的请求。

3.8K01
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    记录一次ajax 429请求laravel api的错误

    访问频率限制中间件throttle的使用 1、访问频率限制概述 频率限制经常用在API中,用于限制独立请求者对特定API的请求频率。...注意:每个API都会选择一个自己的频率限制时间跨度,GitHub选择的是1小时,Twitter选择的是15分钟,Laravel中间件选择的是1分钟。...2、如何使用Laravel的访问频率限制中间件 在Laravel 5.2的新特性中,你可以使用一个新的中间件 throttle,让我们先来看看这个中间件的用法,首先我们定义一个路由规则如下: Route.../users路由,就会看到响应头如下所示: 该响应意味着: 请求成功(状态码为200) 每分钟只能访问60次 在本时间段内还能访问57次 如果访问次数超过60次,响应头如下: 同时,响应内容文本为:...原因如下: laravel框架api路由默认加载 throttle中间件,该中间件限制了一分钟内访问api的次数: 注释掉这行之后就取消了访问的限制 第一个参数 60 代表每分钟限制 60 次请求

    3K10

    Laravel :API 请求频率限制(Throttle中间件),自定义返回JSON类型,自定义时间单位

    Laravel api Throttle 请求限制 Laravel (Throttle中间件) Laravel 自带了一个 Throttle 中间件,默认的设置是 1 分钟内请求超过 60 次就会触发这个...限流原理 获取唯一请求来源,进行唯一标识(key) 获取该请求请求次数 (hits) 判断是否超过最大限制 若达到上限,进入5。未达到,则进入6 丢出访问次数限制异常,结束请求。...若是第一次,则需要 hits = 1(次数), 并添加访问标识 key (1分钟)到缓存中,以标记请求周期。...此时请求处在 “1分钟内请求次数达到60次”,即达到限制,返回 false 。 此时请求处在 “不在1分钟内请求次数达到60次”,即不在周期内,需要重新计算周期。...更多参考文档:https://www.cnblogs.com/toughlife/p/10601069.html 自定义返回的类型 Laravel 默认 返回的是一个 429 的 html 页面,做 api

    6.4K10

    基于 Redis 发布订阅 + Socket.io 实现事件消息广播功能

    客户端依然可以发送请求到服务端,服务端也可以主动发送数据到客户端,而无需客户端发起请求,并且支持同时向多个客户端发送数据,就像「广播」一样 —— 大喇叭一喊,所有人都接收到消息了。...在正式开始构建之前,学院君先列出基本实现流程如下: 在 Laravel 服务端通过 Redis 主动发布消息; 在 Websocket 服务器(基于 Socket.io 实现)里通过 Redis 订阅功能接收服务端...Redis 发布的消息,再将其广播到所有与之建立连接的 Websocket 客户端(基于 Socket.io 提供的 API 方法); 在 Websocket 客户端(基于 Socket.io 实现)...要构建 Websocket 服务端,需要先安装 socket.io 服务端依赖,同时还要引入 ioredis 依赖以便通过 Redis 订阅 Laravel 服务端基于 Redis 发布的事件消息,Redis...: 再看两个浏览器窗口,在 Websocket 消息流中,可以看到 Websocket 服务端广播事件消息到客户端的记录: 再看浏览器 Console 标签页,两个浏览器窗口都打印出了「学院君」,说明客户端已经成功接收到服务端广播的消息

    5.5K20

    PHP-web框架Laravel-路由(一)

    路由是将HTTP请求映射到应用程序中正确控制器的机制。在Laravel中,路由负责确定应用程序如何响应传入的HTTP请求。...Laravel路由基础知识Laravel路由定义在应用程序的routes目录中。这些路由可以定义在web.php文件中,也可以定义在api.php文件中。...web.php文件通常包含处理Web应用程序请求的路由,而api.php文件通常包含处理API请求的路由。定义路由在Laravel中,可以使用Route类定义路由。...我们使用Route::get方法来指定我们想要处理GET请求,我们使用闭包函数来定义我们想要执行的动作。接收参数在Laravel中,可以通过路由接收HTTP请求中的参数。...例如,下面的路由将接收一个名为“name”的必需参数:Route::get('/hello/{name}', function ($name) { return 'Hello, '.

    1.8K10

    Laravel 用户认证

    现在很少见了 基于 api 的身份验证:常见于前后端分离的项目,一套api同时给前端,Android,iOS提供服务;使用token完成身份验证。...也是当下最流行的开发模式 在其核心,Laravel 的用户认证是由「看守器」和「提供器」。看守器定义如何对每个请求的用户进行身份验证。...} Auth::attempt方法会做两件事: 查询用户:除了password以外的字段都会作为查询条件 比对密码:明文密码即可,因为框架将该值与数据库中的散列密码进行比较之前会自动加密 以上两个操作都成功才会返回...' => 'jwt', 'provider' => 'users', ], ], 闭包请求看守器 实现自定义的、基于 HTTP 请求的身份验证系统的最简单方法是使用 Auth::...传递给方法的第二个参数应该是一个闭包,该闭包接收传入的 HTTP 请求并返回用户实例,或者,如果验证失败返回 null: use App\Models\User; use Illuminate\Http

    3.2K20

    深入浅出 Laravel 路由执行原理

    在之前的源码清单中,我们看到在 map 方法内部会分别调用并执行了 mapWebRoutes() 和 mapApiRoutes() 这两个方法,它们的工作是分别加载 Web 路由和 Api 路由配置。...将请求发送到中间件和路由中,这个由管道组件完成(Pipeline)。 对于前两个阶段的处理可以阅读我给出的相关文章。...从这段源码我们知道路由分发接收 $request 请求实例,然后执行分发(dispatch)操作,这些处理会回到 Illuminate\Routing\Router 服务中处理: <?...return static::toResponse($request, $response); } ... } 路由分发流程 Illuminate\Routing\Router 服务将接收被分发到的请求...总结 在这篇文章我们主要学习一下几个有关路由处理的相关知识: Laravel 中的路由如何被加载到项目中; 如何接收 HTTP 请求; 如何依据 HTTP 请求($request)查找所匹配的路由; 运行路由闭包或控制器方法

    7.8K30

    JSON Web Token(JWT)教程:一个基于Laravel和AngularJS的例子

    同时,由于目前个人用的后台一直是java,前端也没用过AngularJS,vue也是最近才开始学,所以Laravel和AngularJS部分 并不十分了解,若有错误,欢迎及时提出。 ?...通过使用URI或URN命名避免发送者和接收方不属于封闭网络时 JWT中的命名冲突。...---- 使用Laravel 5和AngularJS的JSON Web Token示例 (译注:由于对Laravel和AngularJS不熟悉,这里的以英文原文为准,同时若发现这里有错误,欢迎随时提出。...当我们向一个API 服务器( server),如 api.jwt.dev/v1/restricted发出POST请求时,我们正在进行跨域请求,并且必须在后端启用CORS。...我们还定义了两个常量,其中包含我们对后端的HTTP请求的URL。 请求拦截器 AngularJS的$ http服务允许我们与后端通信并发出HTTP请求。

    35.6K10

    Laravel队列简单使用

    消息队列的主要特点是异步处理,主要目的是减少请求响应时间和解耦。所以主要的使用场景就是将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。...同时由于使用了消息队列,只要保证消息格式不变,消息的发送方和接收方并不需要彼此联系,也不需要受对方的影响,即解耦和。...queue:failed-table php artisan migrate 生成任务类 生成的文件存放在 app\Jobs php artisan make:jon QueueName 该文件有两个方法...模型,将会只序列化模型的 ID $this->topic = $topic; } public function handle() { // 请求百度...API 接口进行翻译 $slug = app(\App\Handlers\TranslateHandler::class)->translate($this->topic->title

    1.2K20

    深入剖析 Laravel 服务提供者实现原理

    服务提供者的功能是完成 Laravel 应用的引导启动,或者说是将 Laravel 中的各种服务「注册」到「Laravel 服务容器」,这样才能在后续处理 HTTP 请求时使用这些服务。...服务提供者的典型处理流程是,当接 Laravel 应用接收到 HTTP 请求时会去执行「服务提供者的 register(注册)」方法,将各个服务「绑定」到容器内;之后,到了实际处理请求阶段,依据使用情况按需加载所需服务...这样就需要在「注册」绑定时,同时需要关注服务的注册顺序,但这一点 Laravel 并不作出任何保证。...配置服务提供者 了解完「服务提供者」两个重要方法后,我们还需要知道 Laravel 是如何查找到所有的服务提供者的。...接收 HTTP 请求时启动应用引导程序。

    5K10

    【Laravel系列7.4】安全相关

    默认情况下,Laravel 框架虽然提供了 Api 的验证功能,但还需要我们手动的添加一些内容,比如说数据库需要添加一个 api_token 的 varchar 字段,给个 80 左右的长度即可。...直接在请求中添加 api_token 比如 get 方式的 /custom/info?...api_token=xxxxx(POST也没问题) 在请求头中添加 Authorization ,内容格式为 Bearer XXXXX ,这里的 XXXXX 就是 token 的内容。...Support\Facades\Crypt::decrypt($crypt); // aaa }); 测试代码很简单,也没什么多说的,主要就是 encrypt() 加密和 decrypt() 解密这两个函数...虽然在模板输出的时候已经默认做了一些安全防护的操作,但我们接收到的参数如果入库了,可能会有存储型 XSS 的潜在风险。

    5.7K40

    深度挖掘 Laravel 生命周期

    Laravel 框架或者说任何一个 Web 项目,我们都需要理解它究竟是如何接收到用户发起的 HTTP 请求的;又是如何响应结果给用户的;在处理请求和响应的过程中都存在哪些处理值得深入学习。...应用实例 接收请求并响应 而这 3 个阶段的处理都发生在入口文件 public/index.php 文件内(public/index.php 是一个新安装的 Laravel 项目默认入口文件)。...2.3 接收请求并响应 在完成创建 APP 容器后即进入了第三个阶段 「接收请求并响应」。...处理请求实际包含两个阶段: 创建请求实例 处理请求 // 处理请求 $response = $kernel->handle( // 创建请求实例 $request = Illuminate...同时在 HTTP 内核里配置中间件和引导程序。

    8.2K20

    Laravel Valet - macOS 极简主义者的开发环境

    Laravel Valet 将您的 mac 配置为在您的机器启动时始终在后台运行 Nginx,然后使用 Dnsmasq,Valet 代理 *.test 域上的所有请求指向安装在本地计算机上的站点 Valet...Valet 提供 park 和 link 两个命令来帮助您为应用程序提供服务 1. valet park 命令 park 命令会注册一个包含您的应用程序的目录,一旦目录被 Valet “认可”,也就是被...SampleValetDriver.php,这是一个驱动程序实现示例,用于演示如何编写自定义驱动程序,编写驱动程序只需要实现三个方法: servers、isStaticFile、frontControllerPath 这三个方法都接收...sitePath、siteName、 $sitePath 是站点的绝对路径地址,示例: /Users/liang/code/api/news $siteName 是域名的站点名称 访问域名: http...://news.test,那么 $siteName 的值为: news 访问域名: http://api.news.test,那么 $siteName 的值为: api.news $uri 是请求地址中的

    4.7K30
    领券