[解決済み】Rackミドルウェアとは何ですか?
質問
RubyのRackミドルウェアとは何ですか?ミドルウェアというのはどういう意味なのか、いい説明が見つかりません。
どのように解決するのですか?
デザインとしてのラック
Rackミドルウェアは、単にリクエストとレスポンスをフィルタリングするための手段ではありません。 パイプラインデザインパターン を使用しているウェブサーバーでは ラック .
これは、リクエストを処理するさまざまな段階を非常にきれいに分離するもので、関心事の分離は、よく設計されたソフトウェア製品の重要な目標です。
例えばRackでは、パイプラインの各ステージを別々に実行させることができます。
-
認証 : リクエストが到着したとき、ユーザーのログオン情報は正しいですか?OAuth、HTTP基本認証、名前/パスワードの検証はどのように行いますか?
-
認証 : "そのユーザーはこの特定のタスクを実行する権限がありますか?
-
キャッシング : このリクエストはすでに処理済みですが、キャッシュされた結果を返すことはできますか?
-
デコレーション : 下流の処理をより良くするために、どのようにリクエストを拡張すればよいでしょうか?
-
パフォーマンスと使用状況の監視 : リクエストとレスポンスから、どのような統計情報を得ることができますか?
-
実行 : 実際にリクエストを処理し、レスポンスを提供します。
異なるステージを分離できる(そしてオプションでそれらを含めることができる)ことは、うまく構造化されたアプリケーションを開発する上で大きな助けになります。
コミュニティ
また、ラックミドルウェアの周りには素晴らしいエコシステムが構築されており、上記のステップやそれ以上のことを行うための既製のラックコンポーネントを見つけることができるはずです。参照 Rack GitHub wikiにミドルウェアのリストがあります。 .
ミドルウェアとは?
ミドルウェアとは、あるタスクの実行を補助するが、直接的には関与しないソフトウェアコンポーネント/ライブラリのことを指す恐ろしい言葉である。非常に一般的な例としては、ロギング、認証、その他があります。 一般的な水平処理コンポーネント . これらは、複数のアプリケーションで誰もが必要とするものですが、自分で作ることに興味がある(あるいはあるべき)人はそれほど多くはないでしょう。
その他の情報
-
リクエストをフィルタリングするための方法であるというコメントは、おそらく RailsCastエピソード151。ラック ミドルウェア のスクリーンキャストをご覧ください。
-
RackミドルウェアはRackから発展したもので、以下のサイトで紹介されています。 Rackミドルウェアの紹介 .
-
Wikipediaにミドルウェアの紹介があります。 こちら .
関連
-
[解決済み] nil:NilClass の未定義メソッド `each'... なぜでしょうか?
-
[解決済み] どのようにrailsでラジオボタンを正しく使用するには?
-
[解決済み] RVMでRubyのデフォルトバージョンを設定するには?
-
[解決済み] ブラウザによって異なるURLの最大長とは?
-
[解決済み] URI、URL、URNの違いは何ですか?
-
[解決済み] HTTP GET(リクエストボディ付き
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] w(array)とはどういう意味ですか?
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] サーバーに接続できませんでした。そのようなファイルまたはディレクトリがありません (PG::ConnectionBad)
-
[解決済み] Railsサーバーがポートはすでに使用されていると言う、そのプロセスを殺すにはどうすればよいですか?
-
[解決済み] Rubyの文字列から日付への変換
-
[解決済み] rails erb フォームヘルパー options_for_select :selected
-
[解決済み] Railsです。gemを使った特定バージョンのライブラリのアンインストール
-
[解決済み] RVMでRubyのデフォルトバージョンを設定するには?
-
[解決済み] Rspec が私のモデルクラスを認識しない。初期化されていない定数エラー
-
[解決済み] RubyとRailsの "Date.today "フォーマット
-
[解決済み] 構文エラー "構文エラー、予期しない入力終了、keyword_endを期待 (SyntaxError)"
-
[解決済み】ミドルウェアとは一体何ですか?