13

私はウェブアプリケーションを開発しています。基本認証を使用しています。OPTIONS リクエストを処理する必要があります。これらは、Web ブラウザのプリフライト リクエストと、WebDAV クライアントからの機能サポート リクエストです。

OPTIONS リクエストは認証を要求せずに処理する必要があることを理解している限り (つまり、私のサーバーは 401 Unauthorized で応答するべきではありません)、次のような応答を返す必要があります。

OPTIONS https://localhost:44305/path/file.ext HTTP/1.1
Connection: Keep-Alive
User-Agent: some app
Host: localhost:44305

HTTP/1.1 200 OK
Content-Length: 0
DAV: 1, 2, 3
Date: Fri, 27 Dec 2013 17:10:21 GMT

私の質問は、URL に関係なく、OPTIONS 要求に対して常に同じ応答を提供する必要があるか、または URL に依存する必要があるかです。

たとえば、上記の例の file.ext が見つからない場合、「404 Not found」または「200 OK」で応答する必要がありますか?

4

1 に答える 1

15

http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.htmlから:

OPTIONS メソッドは、Request-URI によって識別される要求/応答チェーンで使用可能な通信オプションに関する情報の要求を表します。このメソッドにより、クライアントは、リソースのアクションを示唆したり、リソースの取得を開始したりすることなく、リソースに関連付けられたオプションや要件、またはサーバーの機能を判断できます。

したがって、OPTIONS はサーバーに固有である場合もあれば、リソースに固有である場合もあり、アプリケーションによって異なります。クロスオリジン リソース共有 (CORS、たとえば、XMLHttpRequest を別のサーバーに試行する) を使用する場合、OPTIONS リクエストを送信して、サーバーが特定のリソースに対するクロス オリジン リクエストを予期しているかどうかを確認してから、POST リクエストを送信します。したがって、この場合、OPTIONS はリソース固有の動作をする必要があります。WebDAV の場合、サーバー固有の OPTIONS で十分な場合があります。これは、クライアントが許可されたメソッドをチェックするためだけに行うためです (たとえば、WebDAV メソッドがサポートされているかどうか)。

于 2013-12-28T20:14:57.387 に答える