ジャンプ先:

この翻訳は不完全です。英語から この記事を翻訳 してください。

 

HTTPメソッドはサーバーの状態を変更しない限り安全です。言い換えれば、読み取り専用操作につながる場合、メソッドは安全です。 GETHEADOPTIONS のようないくつかの一般的なHTTPメソッドは安全です。すべての安全なメソッドは idempotent だけでなく、PUTDELETE} のようなすべてではない安全なメソッドです。

安全なメソッドに読み取り専用の意味がある場合でも、サーバーは状態を変更できます。ログを記録したり、統計情報を保存したりできます。ここで重要なことは、安全なメソッドを呼び出すことによって、クライアントはサーバー変更自体を要求しないため、サーバーに不必要な負荷や負担をかけないことです。ブラウザーは、サーバーに何らかの害を及ぼすことを心配することなく安全なメソッドを呼び出すことができます。これにより、リスクなしでプリフェッチなどの操作を実行できます。 Webクローラーは安全なメソッドを呼び出すことにも依存しています。

安全なメソッドは静的ファイルのみを提供する必要はありません。サーバは、生成スクリプトが安全を保証する限り、オンザフライで安全な方法への回答を生成することができます。電子商取引Webサイトで注文をトリガするなどの外部効果を引き起こすべきではありません。

安全な意味を正しく実装するのはサーバー上のアプリケーションの責任であり、Webサーバー自体はApache、nginx、またはIISであり、単独でそれを強制することはできません。特に、アプリケーションは GET 要求がその状態を変更することを許可してはいけません。

 

安全なメソッドへの呼び出しで、サーバーの状態を変更しない:

GET /pageX.html HTTP/1.1

サーバーの状態を変更する可能性のある安全でないメソッドへの呼び出し。

POST /pageX.html HTTP/1.1 

冪等ではあるが安全でないメソッドへの呼び出し:

DELETE /idX/delete HTTP/1.1

もっと学習する

一般知識

  • Definition of safe in the HTTP specification.

テクニカルナレッジ

ドキュメントのタグと貢献者

このページの貢献者: silverskyvicto
最終更新者: silverskyvicto,