9

Web サービスに関する Javascript の本を読んでいますが、REST (Representational State Transfer) を使用することの欠点として次の文を理解するのは難しいと思います。

REST を使用することの最大の欠点の 1 つは、一部のブラウザーが GET および POST メソッドのみをサポートしているのに対し、多くのファイアウォールは GET および POST メソッドのみの通過を許可していることです。

これがどのように欠点と見なされているのか、私にはよくわかりません。英語は私の第一言語ではないので、英語が難しいと感じているのは私だけかもしれません。

誰かがこれについて詳しく説明できますか?

4

4 に答える 4

3

REST は PUT メソッドと DELETE メソッド、および GET メソッドと POST メソッドをサポートしているため、アプリをブラウザーで実行する必要がある場合は制限があります。

規則では、GET を使用して情報を取得し、POST を使用して新しいオブジェクト/エンティティを作成し、PUT を使用して既存のオブジェクト/エンティティを更新し、DELETE を使用して削除します...

于 2013-07-25T01:51:18.720 に答える
2

通常、Restful Web サービスは、Http 仕様で定義されている多くのメソッドを利用します。したがって、Create メソッドは Http Post を使用し、Read メソッドは Http Get を使用し、Update メソッドは Http Put、Delete メソッドは Http Delete を使用します。http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.htmlおよびどの HTTP メソッドがどの CRUD メソッドと一致するかを参照してください。.

本で提起された懸念は、Put と Delete が、ファイアウォールや一部のブラウザーでは使用できない可能性があるということです。これが正当な懸念であるかどうかはわかりません。今日のインターネット インフラストラクチャは、この問題をうまく処理していると思います。

上記の Crud メソッドのスタック オーバーフローの記事には、役立つコメントが含まれています。

また、PUT と DELETE は Web ブラウザでまだサポートされていないため、POST される URI に method=PUT や method=DELETE などのクエリ文字列引数を追加して「POST をオーバーロード」しても問題ないと考えられます。

于 2013-07-25T01:56:08.017 に答える
1

アプリケーションが DELETE または PUT 要求に依存している場合、すべてのクライアントまたはネットワーク構成がそれをサポートするとは限らないという欠点があります。

ただし、これが実際の問題であるかどうかはわかりませんが、適切な DELETE または PUT を発行できないクライアントに対してフィルターの書き換え要求を行うことで簡単に解決できます。

于 2013-07-25T01:51:42.847 に答える
1

さて、REST Web サービスは HTTP リクエスト メソッド (POST、GET、DELETE、PUT) を使用します。したがって、これは、PUT および DELETE HTTP 要求メソッドがサポートされていないことを意味します。これは欠点ですが、DTO を操作することで回避する方法があります。ただし、これは完全な REST アプローチに従っていないことを意味します。

于 2013-07-25T01:52:13.540 に答える