1

HTTP 1.1 RFC を読んでいますが、次の質問に答えることができません。

次のヘッダーがあります。

Authorization: Basic Qmxvb21iZXJnOnRjbG1lU1JT, Basic

これは、Rails 3 認証パーサーが「,」文字のために文字列を正しくデコードしないため、問題を引き起こしています。これは私が知っている非常に珍しいことですが、この Apache httpd 構成を使用してこれを追加します。

RequestHeader append Authorization "Basic" early

Apache mod_header のドキュメントには次のように書かれています。

応答ヘッダーは、同じ名前の既存のヘッダーに追加されます。新しい値が既存のヘッダーにマージされる場合、既存のヘッダーとはコンマで区切られます。これは、ヘッダーに複数の値を与える HTTP 標準の方法です。

しかし、この Authorization ヘッダーでは正しくないと思います。RFC の定義では、これは許可されていません。ただし、一部のヘッダーではカンマ区切りのリストを使用できます。これがすべての HTTP ヘッダーの一般的な規則であるかどうかはわかりません。

これが正しくないという私の考えを証明するHTTP 1.1 RFC の段落を探しています。「これは分離できるヘッダーにのみ有効です」というものをすでに見つけましたが、これは証拠ではありません。

同じフィールド名を持つ複数のメッセージ ヘッダー フィールドは、そのヘッダー フィールドのフィールド値全体がコンマ区切りのリスト [つまり、#(値)] として定義されている場合にのみ、メッセージに存在する場合があります。複数のヘッダー フィールドを 1 つの "field-name: field-value" ペアに結合することが可能でなければなりません。これは、メッセージのセマンティクスを変更することなく、後続の各フィールド値を最初のフィールド値に追加し、それぞれをコンマで区切って行います。したがって、同じフィールド名を持つヘッダー フィールドが受信される順序は、結合されたフィールド値の解釈にとって重要であり、したがって、プロキシは、メッセージが転送されるときにこれらのフィールド値の順序を変更してはなりません。

意味がわかりませんが、明確な証拠を探しています。

4

1 に答える 1

2

答えはあなたが引用したテキストにあります:

「同じフィールド名を持つ複数のメッセージ ヘッダー フィールドは、そのヘッダー フィールドのフィールド値全体がコンマ区切りのリスト [つまり、#(値)] として定義されている場合にのみ、メッセージに存在する場合があります。」

これは、「認可」には当てはまりません。

于 2012-01-25T16:28:40.737 に答える