亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

direktori cari
閱讀前篇 簡介 Yii 是什么 從 Yii 1.1 升級 入門 安裝 Yii 運(yùn)行應(yīng)用 第一次問候 使用Forms 數(shù)據(jù)庫應(yīng)用 使用 Gii 生成代碼 進(jìn)階 應(yīng)用結(jié)構(gòu) 概述 入口腳本 應(yīng)用(Applications) 應(yīng)用組件(Application Components) 控制器(Controllers) 模型(Models) 視圖(views) 模塊(Modules) 過濾器(Filters) 小部件(Widgets) 前端資源(Assets) 擴(kuò)展(Extensions) 請求處理 運(yùn)行概述 啟動引導(dǎo)(Bootstrapping) 路由和創(chuàng)建URL 請求(Requests) 響應(yīng)(Responses) Sessions 和 Cookies 錯誤處理(Handling Errors) 日志(Logging) 關(guān)鍵概念 組件(Component) 屬性(Property) 事件(Events) 行為(Behaviors) 配置(Configurations) 別名(Aliases) 類自動加載(Autoloading) 服務(wù)定位器(Service Locator) 依賴注入容器(Dependency Injection Container) 配合數(shù)據(jù)庫工作 數(shù)據(jù)庫訪問 (Data Access Objects) 查詢生成器(Query Builder) 活動記錄(Active Record) 數(shù)據(jù)庫遷移(Migrations) Sphinx Redis MongoDB Elasticsearch 接收用戶數(shù)據(jù) 創(chuàng)建表單(Creating Forms) 輸入驗(yàn)證(Validating Input) 文件上傳(Uploading Files) 收集列表輸入(Collecting Tabular Input) 多模型的復(fù)合表單(Getting Data for Multiple Models) 顯示數(shù)據(jù) 格式化輸出數(shù)據(jù)(Data Formatting) 分頁(Pagination) 排序(Sorting) 數(shù)據(jù)提供器(Data Providers) 數(shù)據(jù)小部件(Data Widgets) 客戶端腳本使用(Working with Client Scripts) 主題(Theming) 安全 認(rèn)證(Authentication) 授權(quán)(Authorization) 處理密碼(Working with Passwords) 客戶端認(rèn)證(Auth Clients) 最佳安全實(shí)踐(Best Practices) 緩存 概述 數(shù)據(jù)緩存 片段緩存 頁面緩存 HTTP 緩存 RESTfull Web服務(wù) 快速入門(Quick Start) 資源(Resources) 控制器(Controllers) 路由(Routing) 格式化響應(yīng)(Response Formatting) 授權(quán)認(rèn)證(Authentication) 速率限制(Rate Limiting) 版本(Versioning) 錯誤處理(Error Handling) 開發(fā)工具 調(diào)試工具欄和調(diào)試器 使用Gii生成代碼 生成API文檔 測試 概述(Overview) 配置測試環(huán)境(Testing environment setup) 單元測試(Unit Tests) 功能測試(Function Tests) 驗(yàn)收測試(Acceptance Tests) 測試夾具(Fixtures) 高級專題 高級應(yīng)用模板 創(chuàng)建自定義應(yīng)用程序結(jié)構(gòu) 控制臺命令 核心驗(yàn)證器(Core Validators) 國際化 收發(fā)郵件 性能優(yōu)化 共享主機(jī)環(huán)境 模板引擎 集成第三方代碼 小部件 Bootstrap 小部件 Jquery UI 助手類 概述 Array 助手(ArrayHelper) Html 助手(Html) Url 助手(Url)
watak

速率限制

速率限制

為防止濫用,你應(yīng)該考慮增加速率限制到您的API。 例如,您可以限制每個用戶的API的使用是在10分鐘內(nèi)最多100次的API調(diào)用。 如果一個用戶同一個時(shí)間段內(nèi)太多的請求被接收, 將返回響應(yīng)狀態(tài)代碼 429 (這意味著過多的請求)。

要啟用速率限制, yii\web\User::identityClass 應(yīng)該實(shí)現(xiàn) yii\filters\RateLimitInterface. 這個接口需要實(shí)現(xiàn)以下三個方法:

  • getRateLimit(): 返回允許的請求的最大數(shù)目及時(shí)間,例如,[100, 600]?表示在600秒內(nèi)最多100次的API調(diào)用。
  • loadAllowance(): 返回剩余的允許的請求和相應(yīng)的UNIX時(shí)間戳數(shù) 當(dāng)最后一次速率限制檢查時(shí)。
  • saveAllowance(): 保存允許剩余的請求數(shù)和當(dāng)前的UNIX時(shí)間戳。

你可以在user表中使用兩列來記錄容差和時(shí)間戳信息。?loadAllowance()?和?saveAllowance()?可以通過實(shí)現(xiàn)對符合當(dāng)前身份驗(yàn)證的用戶 的這兩列值的讀和保存。為了提高性能,你也可以 考慮使用緩存或NoSQL存儲這些信息。

一旦 identity 實(shí)現(xiàn)所需的接口, Yii 會自動使用 yii\filters\RateLimiter 為 yii\rest\Controller 配置一個行為過濾器來執(zhí)行速率限制檢查。 如果速度超出限制 該速率限制器將拋出一個 yii\web\TooManyRequestsHttpException。 你可以在你的 REST 控制器類里配置速率限制,

public function behaviors(){
    $behaviors = parent::behaviors();
    $behaviors['rateLimiter']['enableRateLimitHeaders'] = false;
    return $behaviors;
}

當(dāng)速率限制被激活,默認(rèn)情況下每個響應(yīng)將包含以下HTTP頭發(fā)送 目前的速率限制信息:

  • X-Rate-Limit-Limit: 同一個時(shí)間段所允許的請求的最大數(shù)目;
  • X-Rate-Limit-Remaining: 在當(dāng)前時(shí)間段內(nèi)剩余的請求的數(shù)量;
  • X-Rate-Limit-Reset: 為了得到最大請求數(shù)所等待的秒數(shù)。
你可以禁用這些頭信息通過配置 yii\filters\RateLimiter::enableRateLimitHeaders 為false, 就像在上面的代碼示例所示。
Artikel sebelumnya: Artikel seterusnya: