要約
HTTPエラー431は「リクエストヘッダーフィールドが大きすぎます」という意味で、ユーザーが送信したヘッダーデータが長すぎるか大きすぎるためにWebサーバーがリクエストを拒否した場合に発生する、標準的な400レベルのクライアント側エラーです。この問題は通常、リファラーURLが大きすぎること、コード内に冗長なスペースがあること、またはブラウザに蓄積された設定ミスや過剰なCookieデータが原因で発生します。このエラーを解決するには、一般的に、参照元リンクの合理化、不要なリクエストコードのクリーンアップ、Cookie設定の調整(設定されるCookieを制限するか、より大きなペイロードを受け入れるようにサーバーを設定する)などを行います。ただし、開発者は、関連するサーバーアクセスエラーの発生を避けるため、これらの制限を変更する前に、必ずサーバーホスティングプロバイダーに相談する必要があります。
HTTPエラー431とは?
HTTP Error 431は、ステータスコード「Request header fields too large」を返します。
皆さんが自社Webサイトのコンテンツを確認しようとするときに発生するエラーです。システムが「要求のヘッダーフィールドが大きすぎる」と認識しているようですが、これが何を意味するのかはっきりしないことがあります。
HTTPエラーは、デバイスとWebサイトサーバーの間の通信に関する情報を提供します。しかし、これは開発者のために書かれたコードであり、一般の人には関係ありません。また、このような曖昧なコードには、専門家でも戸惑うことがあります。
HTTP Error 431の修正は、注意点さえ知っていれば比較的簡単です。その方法について、順を追って説明します。
HTTP言語を理解する
HTTPは「Hypertext Transfer Protocol」の頭字語であり、1991年に確立されました。このプロトコルは、デバイスとサーバーの間における要求と応答の言語と考えてください。
Webサイトへのアクセスでは、以下の予測可能な一連の動作が起こります。
- ブラウザの要求:ページを閲覧するためにWebサーバーからのデータや情報が必要です。
- データの移動:その要求の中には、ユーザーやユーザーのブラウザなどの情報が含まれています。
- サーバーの応答:アクセスが許可されるか、または拒否理由を説明するコードが表示されます。
要求は、「ヘッダー」と呼ばれることもあります。HTTPプロトコルは、このデータの長さや大きさを規定していません。しかし、サーバーによってはセキュリティ上の理由でサイズを制限している場合もあります。
ここで、HTTP Error 431が発生します。
HTTP Error 431の解説
HTTPエラーにはいくつかの種類があり、それらは数字で分類されています。400レベルのコードはすべて、ユーザーのエラーに関連します。技術的には、Webサイトやサーバーに起因する問題ではありません。ユーザーからの要求をWebサイトのサーバーが処理できないことを意味します。
Error 431は、正式には「Request header fields too large」を指し、サーバーが要求をドロップしたことを意味します。ユーザーから送られたヘッダーが長すぎたり大きすぎたりした場合に、サーバーが拒否したのです。
Web開発者は、以下をはじめとして、あらゆる種類のデータをユーザーに要求できます。
- 使用言語
- 資格情報
- ホスト
- 参照元サイト
あまりにも多くの情報を要求する場合、または返されたデータが多い/長い場合に、ユーザーがこのエラーコードを受け取ります。問題が解決するまでページは読み込まれません。
Error 431を解決するための4つのステップ
HTTP Error 431のメッセージはそれぞれ異なり、自社のWebサイトのメッセージが他社には当てはまらない理由で発生する可能性があります。しかし、ほとんど企業では、問題は以下の2つのいずれかに起因しています。
Cookieが原因となって訪問者にコードが表示される場合、または参照元のURLが長すぎる場合です。
問題を解決するため、以下の方法を試してみてください。
| アクションの修正 | 対処法 |
|---|---|
| リファラーURLを排除する | 非常に長いURLを持つサイトに対してアクティブなリンクがある場合は、アクセスを許可する前にこのクエリを排除します。 |
| コードを見直す | コード内のスペースは文字数制限に適用され、必ずしも必要ではありません。また、使用しないデータや必要のないデータを要求することで、ユーザーに文字数制限を強いることにもなりかねません。 |
| Cookieの設定を確認する | 認証コードにミスがあると、ユーザーに複数のCookieを設定してしまい、望まれないHTTPエラーが発生する可能性があります。 |
| より多くのCookieを受け入れる | Cookieが問題の核心であれば、受け入れる数を増やします。Cookieはセキュリティ上の脆弱性を伴うので、慎重に進めてください。しかし、エラーコードをなくすことが第一の目的であれば、より多くのCookieを受け入れることが解決に役立ちます。 |
場合によっては、変更前にサーバーのホストに相談する必要があるかもしれません。より多くのデータを受け入れるようにコードを調整しても、サーバーが同意しない場合、ユーザーはサーバーアクセスに関連する同様のHTTPコードを受け取ることになります。コードを調整する前に率直に話し合うことが、常に賢明な行動となります。
Oktaの支援
HTTPエラーに悩まされている場合は、ぜひOktaにご相談ください。一緒に問題を検討し、セキュリティを犠牲にすることなくユーザーにアクセスを提供する方法を見つけ出しましょう。詳しくはお問い合わせください。
参考文献
Brief History of HTTP. High Performance Browser Networking. O'Reilly.
Additional HTTP Status Codes. (April 2012). Internet Engineering Task Force.
Cookieに関連するリスク。(2013年11月)。Infosec.
Cookieに潜む危険を回避するための5つのヒント。(2020年11月、Cオンラインマガジン