新しいHTTPステータスコード

IETFは、いくつかの典型的な状況をより正確に記述する新しいHTTPステータスコードの仕様を提出しました。



  428前提条件が必要
 429リクエストが多すぎます
 431要求ヘッダーフィールドが大きすぎます 
 511ネットワーク認証が必要です 


状態コード428(前提条件が必要)は、サーバーが要求を実行するための条件を必要としていることを意味します。 これは、クライアントがGETデータを受信して​​変更し、PUTを介してサーバーに送信する典型的な状況ですが、その時点ではすでに別のクライアントによって変更されており、競合が発生しています。 条件付き要求を要求することにより、サーバーは競合から保護されます。 この場合、サーバーにデータを正しく送信するための条件を指定する必要があります。



HTTP/1.1 428 Precondition Required Content-Type: text/html <html> <head> <title>Precondition Required</title> </head> <body> <h1>Precondition Required</h1> <p>This request is required to be conditional; try using "If-Match".</p> </body> </html>
      
      





ステータスコード429(要求が多すぎる)は、ユーザーが一定期間内に送信した要求が多すぎることを意味します。 回答には、違反状態の説明が含まれている必要があり、 再試行まで待機する必要がある時間を含むRetry-Afterヘッダーが含まれている場合があります。



 HTTP/1.1 429 Too Many Requests Content-Type: text/html Retry-After: 3600 <html> <head> <title>Too Many Requests</title> </head> <body> <h1>Too many Requests</h1> <p>I only allow 50 requests per hour to this Web site per logged in user. Try again soon.</p> </body> </html>
      
      





ステータスコード431(要求ヘッダーフィールドが大きすぎる)は 、1つ以上のヘッダーが標準を超えているためにサーバーが要求の処理を拒否するときに使用されます。 2番目の場合、応答は問題の原因となったタイトルを示す必要があります。



 HTTP/1.1 431 Request Header Fields Too Large Content-Type: text/html <html> <head> <title>Request Header Fields Too Large</title> </head> <body> <h1>Request Header Fields Too Large</h1> <p>The "Example" header was too large.</p> </body> </html>
      
      





ステータスコード511(ネットワーク認証が必要)は、認証を実行する必要があることを意味し、応答には、たとえば指定されたアドレスでHTMLフォームを使用するなど、これを行う方法に関する指示を含める必要があります。 エラー511は、ターゲットサーバーではなく、ユーザーがネットワークに入ることを許可しないプロキシ(たとえば、不正アクセスのある有料Wi-Fiゾーンのルーター)によって返されます。



たとえば、ユーザーがHTTP要求をTCP経由でポート80に送信します。



 GET /index.htm HTTP/1.1 Host: www.example.com
      
      





ログインサーバーはこの応答を返します。



 HTTP/1.1 511 Network Authentication Required Refresh: 0; url=https://login.example.net/ Content-Type: text/html <html> <head> <title>Network Authentication Required</title> </head> <body> <p>You need to <a href="https://login.example.net/"> authenticate with the local network</a> in order to get access.</p> </body> </html>
      
      






All Articles