新しいPhoenixアプリケーションでは、デフォルトでPlug.Head
プラグが存在し、その重要性について興味をそそられました。HEADリクエストをGETリクエストに変換するのはなぜ便利ですか?
Plug.Headは - 要求を取得するために、HEADリクエストを変換した場合 レスポンスボディ
を取り除きHEADリクエストにはボディがありません。なぜこれが必要ですか?私はおそらく、不正なリクエストに対処すると思ったが、Plug.Head implementationを見ると、HEADメソッドをGETに切り替えるだけである。
def call(%Conn{method: "HEAD"} = conn, []), do: %{conn | method: "GET"}
def call(conn, []), do: conn
end
私はこのトピックに見つけることができた最も近いものはquestion on ServerFaultですが、それはHEADリクエストが戻っHEADにGETして、それぞれのGET応答に変換する必要がnginxのと欠陥のあるアプリケーションロジックに関連していました。
接続アダプターを指してくれてありがとう!引用されたコメントは間違っているか、私は「アダプターが応答**ボディー**をクライアントに送信すべきではない」から「**ボディー**」という言葉が欠けているので、大きな画像からはまだ遠いです。レスポンスはリクエストメソッドとは無関係に送信され、HEADへのレスポンスからボディのみが省略されます。しかし、やはり私はおそらくアダプターの仕組みを誤解しているかもしれません。 –
コメントは正しいです。サーバは、HEAD **リクエスト**に応答**で本文を送信すべきではありません。 HEAD **リクエスト**には本体があるかどうかは関係ありません。 –