リクエストとレスポンスの「間」に入って処理を行う仕組みを何と呼ぶ?
解説
正解はミドルウェア(middleware)です。名前の通り「中間(middle)」に位置するソフトウェアで、リクエストがアプリケーション本体に届く前や、レスポンスが返される前に割り込んで処理を行います。フレームワークはアプリ全体の骨組み、ライブラリは呼び出して使う部品群、WebAPIはブラウザやサーバーが提供する機能の窓口で、いずれもミドルウェアとは役割が異なります。ミドルウェアは「関所」のイメージミドルウェアはリクエストの通り道に設置された関所のようなものです。リクエストが来るたびに順番に通過し、各関所で検査や加工が行われます。たとえばExpressでは app.use() で登録した関数が上から順に実行されます。app.use(logMiddleware); // 1. ログを記録 app.use(authMiddleware); // 2. 認証チェック app.use(corsMiddleware); // 3. CORS設定 app.get('/users', handler); // 4. 本体の処理各ミドルウェアは next() を呼ぶことで次のミドルウェアに処理を渡します。next() を呼ばなければそこで処理が止まるため、認証に失敗したリクエストをアプリ本体に届かせない、といった制御ができます。よく使われるミドルウェアの例認証・認可:ログイン済みか確認し、未認証なら401を返すログ出力:リクエストのURL・メソッド・処理時間を記録するCORS設定:許可するオリジンをレスポンスヘッダに追加するボディのパース:JSONやフォームデータを解析してアプリが扱いやすい形にするレート制限:一定時間内のリクエスト数を制限するフレームワークごとの呼び方ミドルウェアという概念はほぼすべてのWebフレームワークに存在しますが、呼び方や仕組みが少し異なります。Expressでは関数を app.use() で登録し、Next.jsでは middleware.ts というファイルをプロジェクトルートに置きます。Djangoでは MIDDLEWARE 設定にクラスを列挙し、Laravelでは「ミドルウェアグループ」としてルートに適用します。名前や登録方法は違っても、「リクエスト/レスポンスの間に割り込む」という本質は共通です。広義のミドルウェアと狭義のミドルウェアWeb開発の文脈では上記のようなリクエスト処理の仕組みを指しますが、インフラの世界ではもう少し広い意味で使われます。データベースやメッセージキュー(RabbitMQ、Kafkaなど)をミドルウェアと呼ぶこともあります。これはOSとアプリケーションの「中間」に位置するソフトウェアという意味です。文脈によって指す範囲が変わる点は知っておくと、ドキュメントや会話で混乱しにくくなります。