10

コントローラのRequireHTTPS属性を使用して、HTTPS経由でのみアクセス可能なASP.NetMVC3サイトがあります。

主にTwitterボットのように見えるものから、多数のHTTPHEADメソッドリクエストを受け取っています。デフォルトのASP.Net/MVC3応答は「500InternalServerError」であり、elmahおよびlog4netによってキャッチ/ログに記録されています(現在はフィルターで除外されています!)。

この質問に従って、これらの非HTTPS要求を処理するための特定のコントローラーとルートを作成できます-asp.NETMVC3でのHEAD要求への応答

しかし、ボットの観点から、最良の応答は何でしょうか?サーバーが稼働していることを示す200、HTTPS URLへの302リダイレクト、またはサイトにHTTP経由でアクセスできないため500を使用しますか?

4

2 に答える 2

4

あなたは次のように答えることができます

405 Method Not Allowed

つまり

Request-URI で識別されるリソースに対して、Request-Line で指定されたメソッドは許可されていません。応答には、要求されたリソースの有効なメソッドのリストを含む Allow ヘッダーが含まれている必要があります。

または

501 Not Implemented

つまり

サーバーは、要求を満たすために必要な機能をサポートしていません。これは、サーバーがリクエスト メソッドを認識せず、どのリソースに対してもサポートできない場合の適切な応答です。

個人的には405、クライアント側のエラーなので、「やあ、ここではそのようなものは提供していません」と言うでしょう。「一体何のことを言っているの? わからない」よりも、私には適切に思えます。1つは、サーバーが説明のリクエストメソッドビットを認識しないことによって、後者が提案されます501

すべての HTTP ステータス コード: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

于 2011-12-16T10:18:01.660 に答える