Request: 大文字と小文字を区別するヘッダー文字列

作成日 2017年03月24日  ·  3コメント  ·  ソース: request/request

こんにちは、

「IoT」デバイスの1つに、iobroker.javascript内の「request」モジュールの使用中に認証されない組み込みWebサーバーが見つかりました。

問題は、そのリクエストがAuthorizationヘッダーフィールドをすべて小文字で送信することです。 ヘッダーで大文字と小文字を区別する必要があるかどうかがRFCで定義されているかどうかはわかりません。

auth.jsファイル(および場合によっては他のファイル)を変更して、ヘッダーフィールドが大文字で始まり、小文字で始まるようにすることは可能ですか?

承認

例えば。 ホストヘッダーなど、この動作の例は他にもいくつかあります。

| ソフトウェア| バージョン
| ---------------- | -------
| リクエスト| 2.79.0
| ノード| 4.5.0
| npm | 3.10.8
| オペレーティングシステム| Ubuntu 14.04.5 LTS with kernel 3.16.0-44-generic#59〜14.04.1-Ubuntu

よろしくお願いしますUwe

最も参考になるコメント

敬意を表して、これは再検討する価値があると思います。 RFCで大文字と小文字を区別しないヘッダーが指定されているのは事実ですが、実際には、大多数の人は一般的なWebブラウザー以外に対してテストを行っていません。 httpサーバーのケース処理は、多くの場合、このライブラリのユーザーの制御の範囲外です。

ほとんどのブラウザはタイトルケースのヘッダーを使用します。このライブラリで最も役立つのは、最も一般的に使用される文字列をエミュレートすることです。たとえば、 Host:ではなくhost:Cookie:はないcookie: 。 このようにして、ブラウザが動作するすべての場所で動作します。 群れに参加すると、互換性が向上し(正しいか間違っているか)、プライバシーのメリットもあります。

パッチが受け入れられる可能性が高い場合は、パッチの作成に満足していますか? 小文字を好む人の互換性を維持するために、機能にフラグを立てることができます。

全てのコメント3件

RFC仕様によると、HTTPヘッダーでは大文字と小文字が区別されません。 headersオプションを使用して、これらのヘッダーを手動で設定する必要があります。

それはたくさん出てくるので、これについてもう少し。

@simovは正しく、サーバーは仕様に準拠していません。 HTTP仕様では、ヘッダーで大文字と小文字を区別しない必要があることが非常に明確になっています。

リクエストでは、リクエストが生成するヘッダーのデフォルトは小文字になりますが、ヘッダーを手動で設定保持されます。

特定のケーシングが必要な場合は、自分で認証ヘッダーを生成し、リクエストに応じてheadersまたはsetHeader機能を設定する必要があります。 仕様に準拠していないサーバーのデフォルトを変更するように要求するのは合理的ではありません。勝つ方法がないためです。特定のデフォルトを嫌い、仕様に準拠していないサーバーが常に存在します。

敬意を表して、これは再検討する価値があると思います。 RFCで大文字と小文字を区別しないヘッダーが指定されているのは事実ですが、実際には、大多数の人は一般的なWebブラウザー以外に対してテストを行っていません。 httpサーバーのケース処理は、多くの場合、このライブラリのユーザーの制御の範囲外です。

ほとんどのブラウザはタイトルケースのヘッダーを使用します。このライブラリで最も役立つのは、最も一般的に使用される文字列をエミュレートすることです。たとえば、 Host:ではなくhost:Cookie:はないcookie: 。 このようにして、ブラウザが動作するすべての場所で動作します。 群れに参加すると、互換性が向上し(正しいか間違っているか)、プライバシーのメリットもあります。

パッチが受け入れられる可能性が高い場合は、パッチの作成に満足していますか? 小文字を好む人の互換性を維持するために、機能にフラグを立てることができます。

このページは役に立ちましたか?
0 / 5 - 0 評価