2021年9月23日木曜日

突然のBad Requestの原因とその対応

ある日突然、自社の社内Webシステムにアクセスすると「Bad Request」が出るようになってしまいました。
しかもChromeユーザだけ。
私はFirefoxなので全く気づきませんでしたが、後輩が隣で悶絶しておりまして。
そこから1日がかりで解決したので(後輩が)パイセンのせめてもの務めとして記録しておきたいと思います。

<エラー内容>
ページにアクセスすると下記エラーが表示される
Bad Request
Your browser sent a request that this server could not understand.

これだけでググっても原因はブラウザのキャッシュだとかCookieだとかそんなことしか出てこないので原因究明に手間取りました。
Chromeユーザの全社員のブラウザキャッシュが飽和することはちょっとありえないので原因はサーバ側なんです。そこはわかる。

<原因>
1.Webサーバ側のApacheのリクエストヘッダー数の制限が20だった
2.Chromeバージョンアップで送信するリクエストヘッダーが増えた

<詳細>
Apacheはsecurity.confあたりにある「LimitRequestFields」という設定で
受信可能なリクエストヘッダー数を制限できます。
セキュリティ対策として使われる設定値で、これがWebサーバの納品時に20になっていたようです。ケチなのかトレンドなのか。
Chromeのバージョンアップのタイミングで自動送信するリクエストヘッダーが追加されたらしく
それにプラスして社内サイトは色々と認証だのなんだの制限をかけており、超えてしまったのが原因。

ちなみにChromeで追加されていたのは UA-CHというもので
===========
sec-ch-ua: "Google Chrome";v="93", " Not;A Brand";v="99","Chromium";v="93"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
===========
などなど将来的にUA文字列に取って代わるヘッダー情報ぽいですね。
Firefoxでエラーにならない理由もわかりました。

でも発現したタイミングが気になったのでもう少し調べてみたらそもそもChrome 89以上で既にUser Agent Client Hints(sec-ch-*関連)が送信されるようになっていたようです。
現在93なので今回サイトが超えたのはたまたまタイミングだったのかな・・・?ちょっとわかりません。
バージョンアップでExperimental Web Platform featuresの中の何かがデフォルトで有効になったのか、単にこっちのWebサーバ側で送り出すヘッダ情報を増やしたか(後輩が)
しかし何も変えてないからこそ後輩は突然殴られて悶絶したわけでうーん

そもそも明示的にクライアント側から送ってるヘッダーなんてそんなにないはずなんです。
強いて言うならCakePHPのフレームワーク関連とか。
情報が中途半端で恐縮なんですが、何かの参考になればと思います。

参考:LimitRequestFields ディレクティブ
https://httpd.apache.org/docs/2.4/ja/mod/core.html#limitrequestbody

LimitRequestBody ディレクティブは、 サーバ管理者が HTTP リクエスト中において許可するリクエストヘッダフィールド数を 指定します。(略)クライアントにより使われた要求ヘッダーフィールドの数が 20 を超えることはほとんどありませんが(略) オプションの HTTP 拡張はリクエストヘッダフィールドを使って表される場合が 多くあります。

2021年9月12日日曜日

開花

川が さらら
花は はらら

6月頃に紫陽花も見納めと生田緑地に行ったら駐車場が行列で、やむなく近くの東高根森林公園に行ったら駐車場が有料で、なぜか緑税みたいなものも上乗せされ、それと引き換えにもらったひまわりの種。を、撒いた。
100円の鉢を買い、100円の土を買い、100円の支柱を買い、スコップまで買って毎日毎日水をやりたまに栄養剤をあげてアブラムシをせっせと駆除してそのうち面倒になりながらも3ヶ月成長を見守り続けたこいつらが先日ついに開花した。
5個中発芽したのは4つ、1つは間引いてしまったので3つ。ほとんど発芽するなら複数撒きしなきゃよかったかな。緑税で貰った種が優秀だったということでしょう。さすが!





左の鉢の右の芽を間引きました。

菜箸でなんとかなるだろうと思ったらなんとかならなかった。


あまり水をやりすぎるのもよくないのかなと少し減らし気味にして二日目くらい、夜に帰宅したら全員ぐったりしてた。水をいっぱいあげたらちゃんと元に戻りましたが、植物ってすごい。

親方!蕾が出てきました

ちょっとした目玉。

開花!

千葉ポートタワー

千葉ポートタワー。
天気のせいか実物より砦感がありますね。


公園は広い。緑が多い。
公園の感想の語彙が死んでる。



子供に大人気恐竜パーク。


広さ:★★★
緑の多さ:★★★★
静かさ:★★★
その他加点:恐竜がいる

八幡岬公園

勝浦は八幡岬(はちまんみさき)公園。
ついに千葉を横断してやりました。遠かった・・・!でも長距離ドライブにも慣れてきた。




残念ながら立入禁止。登りたかった。でも海は十分美しかった。

地元のグルメ勝浦タンタンメン。この店の前にもう一軒行ったのだけど1時間半待ちと言われて諦めました。しょうゆラーメンにラー油と玉ねぎをぶちこんだラーメン。社食で食べてそれなりに美味しかったのでいつか本場で、と憧れていたもの。味はしょうゆラーメンにラー油と玉ねぎをぶちこんだ味です。


小松川境川の優しいザリガニ

小松川境川親水公園。


横になが~い公園

水辺の公園というか遊歩道というか。で、今回は。

夏のアクティビティ。

ザリガニ釣り。

死ぬほど暑い日でした。まさかこの歳になって公園で糸の先にスルメくくりつけてザリガニ釣るとは思わなかった。まあ釣果はなかったのですが。
この川自体、ザリガニがいなかったのではなく(少なかったけど。カモがパトロールみたいにキョロキョロしながら川を往復していたので、ザリガニ結構食べられているのではないかなあと・・・)なかなか釣り上げるまでが難しかったです。釣れそうで釣れないザリガニに弄ばれましたね。
でもなんか、夏の暑い日に友人たちとのんびり川に糸を垂らして「いたいた」って騒いで。
歳を取ると過ごした時間がご褒美になると言うけど、その通りだと思う。
しばしば辛いこともある現実で、いつか果たされるかもしれない約束が心の支えになるように。
なんだか夢のようだった。

手前から歩いてきてた子供がザリガニ入った虫かご抱えてたのですがとても釣れたと思えない。なので持ち帰りたい人は網が必要です。というより網にスルメ置いたほうが圧倒的に早い。