10

ブラウザが実際に残りのhttp動詞(特にPUT、DELETE)をサポートする方法に関するデータはありますか?この質問は主に、多くのソース(このスタックオーバーフローの回答など)が、ほとんどのブラウザーがPUTとDELETEをサポートしていないが、どちらをサポートしていないかを通知しているという事実に基づいています。

Railsは、クライアントのパッチを使用し、サーバーのパッチを元に戻すことでこれを解決しますが、たとえば、どのブラウザーがそのようなハックを必要としないのだろうかと思います。

4

2 に答える 2

5

疑問がある場合は、アンに聞いてください:

http://annevankesteren.nl/2007/10/http-method-support

数年前ですが、PUTとDELETEにクリーンな健康状態を提供しますが、TRACEやPROPFINDなどのよりあいまいな動詞のさまざまなケースも試します。

Van Kesterenは、プレリリースとリリースを組み合わせたFirefox 3、Opera 9.5、InternetExplorer7をテストしました。GETとPOSTは期待どおりに機能し、すべてRFC 2616のhttpメソッドの標準セットをサポートしていました。大文字と小文字の問題がいくつかあるため、常に大文字を使用するようにしてください。TRACEとOPTIONSは、それぞれFirefoxとOperaで問題が発生するエッジケースです。CONNECTとTRACEおよびSEARCHは、IEにとって問題があります。これは2007年に書かれたのでYMMVであることを覚えておいてください。

GETとPOST以外をサポートしていないブラウザに関する全体的な混乱は、HTML仕様がHTML要素にこれら2つだけをリストしているという事実から生じていると思います。<form>

FORM要素のmethod属性は、フォームを処理エージェントに送信するために使用されるHTTPメソッドを指定します。この属性は2つの値を取る場合があります。

  • get:HTTP "get"メソッドを使用すると、フォームデータセットがaction属性で指定されたURIに追加され(区切り文字として疑問符( "?")が使用されます)、この新しいURIが処理エージェントに送信されます。

  • post:HTTPの「post」メソッドでは、フォームデータセットがフォームの本文に含まれ、処理エージェントに送信されます。

これが、ブラウザがHTMLでネイティブにGETとPOSTのみをサポートする理由です。標準がそう言っているので。

一方、現在(2014年1月)のXMLHttpRequest仕様では、一部の例外(CONNECT、TRACE、またはTRACK)を除いて要求メソッドを許可する必要があり、RFC2616メソッドを大文字にする必要があると明示的に規定されています。

\6。メソッドがCONNECT、DELETE、GET、HEAD、OPTIONS、POST、PUT、TRACE、またはTRACKの大文字と小文字を区別しない一致である場合、0x61(ASCII a)から0x7A(ASCII z)の範囲の各バイトから0x20を減算します。

上記のいずれにも一致しない場合は、最終的なリクエストを含め、文字通り渡されます。

ほぼ同じ結論に達した別のソースを 編集します:そのXMLHttpRequestはPUTとDELETEをサポートします:http: //jshirley.vox.com/library/post/xmlhttprequest-and-rest.html(警告、5月の時点で壊れたリンク2014)。

編集もちろんに質問がありましたが、2年前の回答はまだ有効です。

2007年からのAnnevanKesterenのページの短い履歴書を編集し、HTMLとXMLHttpRequestに関するセクションを追加しまし

于 2010-07-14T23:14:49.537 に答える
-1

AtomWikiのPutDeleteSupportページを参照してください。HTTPに関連する他のAtomWikiページを閲覧することに興味があるかもしれません。

于 2010-07-10T11:42:46.440 に答える