第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么請求被限制的時間超過了中間件中指定的時間?

為什么請求被限制的時間超過了中間件中指定的時間?

PHP
慕標(biāo)5832272 2022-11-04 17:12:59
我的路線聲明如下:Route::group(['prefix' => 'media', 'middleware' => 'auth'], function() {    Route::group(['middleware' => 'throttle:120,1'], function() {        Route::get('/', 'MediaController@index'); // <-- Route in question        Route::delete('/{id}', 'MediaController@delete');        Route::patch('/{id}', 'MediaController@edit');    });    Route::post('/', 'MediaController@upload')->middleware('throttle:100,1440');});如果我正確理解了限制中間件,當(dāng)用戶達(dá)到速率限制(1 分鐘內(nèi) 120 個請求)時,他應(yīng)該在 1 分鐘的剩余時間內(nèi)受到限制,然后解除阻塞。但是,阻塞時間高于 1 分鐘。見retry-after標(biāo)題:(當(dāng)我第一次注意到它時,它超過了 600 秒,所以并不總是 180 秒)任何想法為什么它會高于 1 分鐘?
查看完整描述

2 回答

?
弒天下

TA貢獻(xiàn)1818條經(jīng)驗 獲得超8個贊

標(biāo)retry-after頭與速率限制無關(guān)。所有與速率限制相關(guān)的標(biāo)頭都以x-ratelimit-. 標(biāo)頭x-ratelimit-reset是您要查找的內(nèi)容:限制何時重置的時間戳。這應(yīng)該在下一分鐘內(nèi)(或您設(shè)置的任何時間段)



查看完整回答
反對 回復(fù) 2022-11-04
?
慕虎7371278

TA貢獻(xiàn)1802條經(jīng)驗 獲得超4個贊

我想到了!

原來throttle中間件的默認(rèn)行為不適用于每個路由。它只是限制每個登錄用戶的請求。如您所見,我有一條路線(上傳路線)具有throttle:100,1440,這會導(dǎo)致問題導(dǎo)致更長的“懲罰”,即使對于具有throttle:120,1.

我的解決方案: 我編寫了自己的ThrottleRequests.php中間件版本,適用于每個路由:

  1. 將此文件放在您的app/Http/Middleware文件夾中。

  2. app/Http/Kernel.php將油門路由中間件更改為新的中間件:

'throttle' => \App\Http\Middleware\ThrottleRequestsPerRoute::class,
  1. 現(xiàn)在,每當(dāng)您分配throttle中間件時,它都會按路由工作。

另一種解決方案: 您也可以使用默認(rèn)中間件并使用第三個參數(shù)。您可以傳遞這樣的前綴參數(shù):throttle:100,1440,upload. 它將上傳前綴分配給限制鍵并基于此限制請求的速率。但是,要實現(xiàn)每條路由的速率限制,您必須為每條路由分配不同的前綴。


查看完整回答
反對 回復(fù) 2022-11-04
  • 2 回答
  • 0 關(guān)注
  • 126 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號