【400 Bad Request】cookieに保存し過ぎが原因?

「400 Bad Request」
の画面が表示されました。ページに表示された内容は↓の通りです。原因や改善方法についてまとめます。

引用元:Firefox画面キャプチャ

「Bad Request」
Your browser sent a request that this server could not understand.
Size of a request header field exceeds server limit.

Firefox上で発生

改善方法

後述しますが、原因が「cookie」の場合です。よって、「cookie」が原因、もしくは原因が不明という方、お試しいただくと改善する可能性があります。

方法は単純で cookieをいくつか、もしくはすべて削除する です。

さて、「いくつ削除すればいいか?」という疑問が沸くかと思います。それに関しては不明です。
いくつか検証したのですが「400 Bad Request」が改善される際のcookieの個数はバラバラでした。つまり、cookieの数ではなく、『ドメインに対して設定されているcookie全体のサイズ』が一定値を超えると「400 Bad Request」が発生するのかなと推測しています。

ですので、思い切ってcookieすべて削除するか、1つずつcookieを消しては確認・消しては確認を繰り返すかをお試してください。削除方法は下記をご参考ください。

Chromeでcookieを削除する

cookie全体を削除する方法とcookie毎(個別)に削除することができます。

全体もしくはURLごとに一括で削除する方法はヘルプの方に分かりやすく説明されていますので確認&対応してみてください。
https://support.google.com/chrome/answer/95647?co=GENIE.Platform%3DDesktop&hl=ja
※特定の期間のcookieも削除できるみたいですね。知らなかった

cookie毎(個別)に削除する方法はすぐには見つからなかったので、下に載せておきます。

cookie毎(個別)に削除する

1.「デベロッパーツール」を表示します
引用元:Chrome画面キャプチャ

右上のメニューから「その他のツール」>「デベロッパーツール」で開きます。もしくはキーボードのF12をクリックしても開きます。こちらの方が簡単です。

引用元:Chrome画面キャプチャ

開発ツールが開きました。

2.「Application」を開く
引用元:Chrome画面キャプチャ

「Application」をクリックすると、Applicationが開きました。

3.cookieを1つずつ削除する
引用元:Chrome画面キャプチャ

リスト内の消したいcookie(行)をクリックすると選択されます。

引用元:Chrome画面キャプチャ

右クリックで「Delete」をクリック、もしくはキーボードのDelをクリックすると、削除できます。

引用元:Chrome画面キャプチャ

「itemlist6」が削除されました。

Firefoxでcookieを削除する

cookie全体を削除する方法とcookie毎(個別)に削除することができます。

全体もしくはURLごとに一括で削除する方法はサポートの方に分かりやすく説明されていますので確認&対応してみてください。
https://support.mozilla.org/ja/kb/clear-cookies-and-site-data-firefox

cookie毎(個別)に削除する方法はすぐには見つからなかったので、下に載せておきます。

cookie毎(個別)に削除する

1.「開発ツール」を表示します
引用元:Firefox画面キャプチャ
引用元:Firefox画面キャプチャ

右上のメニューから「ウェブ開発」>「開発ツールを表示」で開きます。もしくはキーボードのF12をクリックしても開きます。こちらの方が簡単です。

引用元:Firefox画面キャプチャ

開発ツールが開きました。

2.「ストレージ」を開く
引用元:Firefox画面キャプチャ

「>>」をクリックし、「ストレージ」をクリックします。

引用元:Firefox画面キャプチャ

ストレージが開きました。

3.cookieを1つずつ削除する
引用元:Firefox画面キャプチャ

リスト内の消したいcookie(行)をクリックすると選択されます。

引用元:Firefox画面キャプチャ

右クリックで「”●●●●”を削除」をクリック、もしくはキーボードのDelをクリックすると、削除できます。

「itemlist6」が削除されました。

原因

phpにて見積書を作成できるWEBツールを開発していたところ発生しました。

このWEBツールでは作成中の一時保存機能にcookieを利用しています。そこでcookieに保存し過ぎてしまったのがどうも問題のようです。実際のcookieが下記のとおりです。itemlist1~itemlist8まで見えているかと思いますが、実際は30まであります。

400 Bad Requestが発生後、上述した方法でcookieをいくつか削除していくと400 Bad Requestが改善されました。よって、原因はこちらで間違いないと思います。

ただ、どれくらい削除すればいいか、つまりどれくらい保存しても大丈夫かがはっきりしていません。今後の開発において分かっている方が良い部分ですので、時間があるときにまた別途調べてみたいと思います。

さて、またツール作りに勤しみたいと思います。