Laravelミドルウェアは、アプリへのリクエストをフィルタリングするメカニズムのことです。図に表すと以下のような処理をします。
HTTPリクエストがコントローラアクションに届くまでに、グローバルミドルウェア
→ ルートミドルウェア
→ コンストラクタ内のミドルウェア
の順に通っていきます。コントローラアクションまでに3層のフィルターを通過している感覚です。
レスポンスを返す際は、リクエストとは真逆の順を追っていきます。ミドルウェアは、ユーザー認証やCSRF保護など、多く用意されています。これらのミドルウェアはAPP/Http/Middleware
ディレクトリに設置されています。
グローバルミドルウェア
特徴
・ルーターに登録されたコントローラクラスが動作する前に実行
ルートミドルウェア
特徴
・デフォルトで、Webミドルウェアグループが適応される
名前付きミドルウェア
・ルーターへの登録または、コントローラのコンストラクタ等で名前を指定して利用