HTML <form>
タグはGETとPOSTの2つのメソッドしか提供しないのはなぜですか? HTTP仕様には、PUT、DELETEなどの他の動詞もあります。HTMLフォームタグが2つの方法しか提供しないのはなぜですか?
答えて
他の方法では、HTMLフォームが提供するように構成されたデータを組み込むことはできません。
たとえば、DELETEは、アクション属性が指し示すリソースを削除すると予想されます。そのような要求にフォームデータを含めることは全く無意味です。
ボタンが付いた空のフォームタグがある可能性がありますリソースを削除するには.... –
PUTの仕様では、リソースの作成と更新ができます。それで、なぜそれがサポートされていないのですか? –
フォームは、ユーザーからの入力を収集するように設計されています。 「フォームが指し示すURIを削除したい」というのは、入力の多くを集めない(多くの人々が望むものではない)。 PUTはアップロードされたものをURIとして作成または上書きします。私はx-form-urlencodedドキュメントをダウンロードできるようにアップロードするための単一のユースケースを考えることはできません。 – Quentin
ポストやGETを超えて人気のあるブラウザはこれまでに実装されていなかったので、
これまでのところ、フォームのDELETE、PUT、PATCHなどがどのように機能するかをブラウザメーカーに標準化させるのはあまりにも面倒です。ブラウザメーカーとの合意が得られたとしても、機能が十分に機能するためには十分なユーザーが新しいブラウザにアップグレードするまでには、少なくとも10年はかかるでしょう。
アプリケーションごとにこれを回避する方法があることに注意してください。 Ruby on Railsはform_tag
helperに:method
オプションを提供しています。特別なパラメータを指定したPOSTを使用するだけで、より多くのメソッドを送信することができます。
しかし、そうすることができるjavascriptがあります.... –
JavaScript(またはむしろXMLHttpRequestオブジェクト)では、カスタム作成のHTTPリクエストを送信できます。それらは、動的に選択されたURI、任意の要求ヘッダー、および好みのメッセージ本文を持つことができます。それとフォームデータのコレクションを提出することの間には違いがあります。 – Quentin
右です.Javascriptを使用してDOMを解析してフォームの内容を把握し、AJAX経由で送信する標準化された方法はありません。通常は、POSTがやったのと同じことをするだけの大会に従わなければなりません。 – nertzy
HTMLは常にフォームのメソッドとしてGETとPOSTのみを許可していました。 PUTとDELETEの両方がだけではなく、要求を処理するリソースを参照するURIで識別されるリソースに影響を与えることを意味しているので、その理由は、おそらくです:
POSTとPUT要求の間の根本的な違いがある Request-URIの異なる意味に反映されます。 POST要求内のURIは、同封の エンティティを処理するリソースを識別します。そのリソースは、データ受け入れプロセス、 他のプロトコルへのゲートウェイ、または注釈を受け入れる別のエンティティである可能性があります。 対照的に、PUT要求のURIは、 で囲まれたエンティティを要求で識別します。ユーザエージェントは、どのURIが意図されているかを知っており、サーバは要求を他のリソースに適用してはいけません。
[...]
オリジンサーバがRequest-URIによって識別されるリソース を削除DELETEメソッド要求。この方法は、オリジンサーバ上の人間の介入(または他の手段)によって無効にすることができる(MAY)。
これはまた、Webサーバー自身も要求を適切に処理し、認証や承認などの他の側面も処理する必要があります。
- 1. java.time.LocalDateTimeがtoDate()メソッドを提供していないのはなぜですか?
- 2. ArrayBuilderの基本クラスがメソッドインタフェースを提供しないのはなぜですか?
- 3. JPA CriteriaQueryが更新クエリを提供しないのはなぜですか?
- 4. Javaコレクションが便利なマップ方法を提供しないのはなぜですか?
- 5. ウェブサイトのHTMLがPythonのリクエストライブラリが提供するHTMLと異なるのはなぜですか?
- 6. なぜIDSはRSAMのCライブラリ関数を提供しないのですか?
- 7. なぜ2つのゲット関数を提供するのですか?
- 8. なぜpython pandasがLinux whlファイルを提供しないのですか
- 9. なぜ反応するネイティブはボタンコンポーネントを提供しないのですか?
- 10. なぜノードjsがchild_threadを提供しなかったのですか?
- 11. ModeShapeはJackRabbitが提供しないものは何ですか?
- 12. なぜjavascriptがIPアドレスを取得する方法を提供しないのですか
- 13. メゾスはなぜリソースを提供していますか?
- 14. Sqoop 2はSqoop 1が提供していないことを何に提供しますか?
- 15. XTextが提供しないANTLRの機能は何ですか?
- 16. なぜ、シングルトンインスタンスがJavaのデフォルトで提供されていないのですか?
- 17. Mesosフレームワークにリソースが提供されないのはなぜですか?
- 18. なぜepoll_waitは1msの巨大なタイムアウトしか提供しないのですか?
- 19. Jquery console.logは2つの異なるオブジェクトを提供します
- 20. リーフレットがmouseoutイベントで正しいrelatedTarget要素を提供しないのはなぜですか?
- 21. なぜOracleParameterはICloneableを実装しますが、Clone()は提供しないのですか?
- 22. オブジェクトが提供するキーを使用してオブジェクトの値にアクセスできないのはなぜですか?
- 23. なぜData.Time.ClockはDiffTimeとNominalDiffTimeを提供するのですか?
- 24. Nexusで正しいPOMファイルが提供されないのはなぜですか?
- 25. matplotlibが私が提供する.ttfフォントを使用しないのはなぜですか?
- 26. なぜWordpress wp_update_post関数がhtmlフォームタグを削除するのですか?
- 27. Javaが単純なスワップ機能を提供しないのはなぜですか?
- 28. ラッパーがHTMLで動作しないのはなぜですか?
- 29. デフォルトのデフォルトのコンストラクタですが、なぜユーザが提供するデフォルトのコンストラクタではないのですか?
- 30. なぜHugoは空白のページを提供していますか?
おそらく、HTML仕様書を書いた人 –
実際には他の方法のサポートがHTML5で正式に削除されたことを尋ねる必要があります:http://www.w3.org/TR/2010/WD-html5-diff-20101019 /#changes-2010-06-24 "フォーム要素のHTTPメソッドとしてのPUTとDELETEの使用はサポートされなくなりました。" – ThiefMaster
@ThiefMaster - サポートは、HTML5ドラフトの以前のバージョンでのみ追加されました。それは決して標準的ではありません。 – Quentin