HTTP2_SESSION_RECV_INVALID_HEADER
--> error = "Invalid character in header name."
--> header_name = "last-modified:"
--> header_value = "Thursday,%2009-Aug-2018%2001:21:53%20GMT"
このエラーメッセージにより、静的コンテンツがChromeに表示されません
この問題は、header_name = "last-modified:"のコロンであることが判明しました。基本的に、ngnix構成ファイルには2つのコロンがあり、Chromeがエラーをスローしました(Firefox、これを無視してページをレンダリングします)。 header_nameは単純にheader_name = "last-modified"でなければなりません
エラーの説明は問題が「ヘッダー名」にあることを示しているにもかかわらず、問題は実際にはheader_valueにあると思われます。
StackOverflowでは、 HTTPヘッダーで使用される日付/時刻形式 は言う
セクション14.29 Last-Modified では、日付形式は次のようになっていることがわかります。
"Last-Modified" ":" HTTP-date
その使用例は次のとおりです。
Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
エラーの最終変更日はそのようには見えません。スペースはありません。代わりに、日付が URLエンコード されたことを示す%20
に置き換えられました。
標準のHTTPヘッダーをそのようにエンコードする必要がある理由はわかりません。 StackOverflowを参照してください: HTTPヘッダーでパーセントエンコーディングを使用することは適切ですか、それとも必要ですか? -最終変更ヘッダーをエンコードします。どのようにしたとしても、問題の解決策はそのエンコーディングを削除することです。
Chromeはおそらく最初の%
に遭遇し、「そこにパーセントがあるとは思っていませんでした!無効な文字」と言っています。