Q1)
RFC 2616セクション14を参照すると、Last-Modifiedヘッダーの定義が次のようになっていることがわかります。
Last-Modified = "Last-Modified" ":"HTTP-date
HTTP-dateは、同じRFCのセクション3で指定されています。
Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
最初の形式はインターネット標準として推奨されており、RFC 1123 [8](RFC 822 [9]の更新)で定義されているものの固定長サブセットを表します。2番目の形式は一般的に使用されていますが、廃止されたRFC 850 [12]日付形式に基づいており、4桁の年がありません。日付値を解析するHTTP/1.1クライアントおよびサーバーは、3つの形式すべてを受け入れる必要があります(HTTP / 1.0との互換性のため)。ただし、ヘッダーフィールドでHTTP日付値を表すためのRFC1123形式のみを生成する必要があります。
ヘッダーの日付はこれらの最初の日付と一致し、タイムゾーンのみが異なって見えるため、RFC1123をチェックして合法かどうかを確認できます。タイムゾーンに関しては、これは述べています。
数値のタイムゾーンインジケータを使用する傾向が強く、実装ではタイムゾーン名の代わりに数値のタイムゾーンを使用する必要があります。ただし、すべての実装はいずれかの表記を受け入れる必要があります。タイムゾーン名を使用する場合は、RFC-822で定義されているとおりにする必要があります。
RFC 822セクション5から、ゾーンの定義を確認できます。
zone = "UT" / "GMT" ; Universal Time
; North American : UT
/ "EST" / "EDT" ; Eastern: - 5/ - 4
/ "CST" / "CDT" ; Central: - 6/ - 5
/ "MST" / "MDT" ; Mountain: - 7/ - 6
/ "PST" / "PDT" ; Pacific: - 8/ - 7
/ 1ALPHA ; Military: Z = UT;
; A:-1; (J not used)
; M:-12; N:+1; Y:+12
/ ( ("+" / "-") 4DIGIT ) ; Local differential
; hours+min. (HHMM)
ヘッダーのタイムゾーンはここにリストされていないため、無効であり、サーバーが実際にプロトコルに違反していると結論付けることができます。したがって、例外は妥当であるように見えます。
Q2)
ヘッダーを有効に修正する方法でプロキシを配置するか、Mongooseサーバーを作成/保守している人に修正を依頼する(または自分で修正する)以外に、どのように処理できるかわかりません。オープンソースプロジェクトであるため、パッチを送信します)。
Q3)
.NETが呼び出しに問題を抱えているWebサーバーを(もしあったとしても)めったに見たことがないので、このタイプの問題は一般的にインターネットでは一般的ではないと思います。