Request: Строки заголовков с учетом регистра

Созданный на 24 мар. 2017  ·  3Комментарии  ·  Источник: request/request

Привет,

Я обнаружил встроенный веб-сервер в одном из моих устройств «IoT», который не аутентифицируется при использовании модуля «запрос» внутри iobroker.javascript.

Проблема в том, что этот запрос отправляет поле заголовка авторизации всеми строчными буквами. Я не знаю, если это определено в RFC, если заголовок должен быть чувствительным к регистру.

Можно ли изменить файл auth.js (и, возможно, также другие), чтобы поля заголовка начинались с заглавных букв и продолжались строчными буквами, как

Авторизация

Например. Есть и другие примеры такого поведения, такие как заголовок хоста и так далее.

| программное обеспечение | версия
| ---------------- | -------
| запрос | 2,79,0
| узел | 4.5.0
| npm | 3.10.8
| Операционная система | Ubuntu 14.04.5 LTS с ядром 3.16.0-44-generic # 59 ~ 14.04.1-Ubuntu

С уважением, Уве

Самый полезный комментарий

С уважением, я считаю, что это заслуживает пересмотра. Это правда, что RFC определяет заголовки без учета регистра, но на самом деле большинство людей не тестируют ничего, кроме обычных веб-браузеров. Обработка случаев http-серверов часто находится вне контроля пользователей этой библиотеки.

Большинство браузеров используют заголовки в виде заголовков, самая полезная вещь, которую могла бы сделать эта библиотека, - это имитировать наиболее часто используемые строки, например, Host: not host: , Cookie: not cookie: . Таким образом, он будет работать везде, где работают наши браузеры. Присоединение к стаду улучшит совместимость (правильную или ошибочную), а также принесет пользу конфиденциальности.

Рад работать над патчем, мысли? Может быть отмечена функция, чтобы сохранить совместимость для людей, предпочитающих строчные буквы.

Все 3 Комментарий

Заголовки HTTP согласно спецификации RFC нечувствительны к регистру. Вам нужно будет установить эти заголовки вручную с помощью параметра headers .

Еще немного об этом, потому что это очень часто встречается.

@simov правильный, ваш сервер не соответствует спецификации. В спецификации HTTP четко указано, что заголовки должны быть нечувствительными к регистру.

В запросе мы по умолчанию используем строчные буквы для заголовков, которые генерируются запросом, но когда вы устанавливаете заголовки вручную, мы сохраняем регистр этих заголовков, чтобы вы могли иметь дело с серверами, которые не соответствуют спецификации.

Вам нужно будет самостоятельно сгенерировать заголовки аутентификации и установить их с помощью функций headers или setHeader в запросе, если вам нужен конкретный корпус. Неразумно, чтобы запрос изменял свои значения по умолчанию для серверов, которые не соответствуют спецификации, потому что у нас просто нет способа выиграть, всегда будет сервер, которому не нравится конкретное значение по умолчанию и который не соответствует спецификации.

С уважением, я считаю, что это заслуживает пересмотра. Это правда, что RFC определяет заголовки без учета регистра, но на самом деле большинство людей не тестируют ничего, кроме обычных веб-браузеров. Обработка случаев http-серверов часто находится вне контроля пользователей этой библиотеки.

Большинство браузеров используют заголовки в виде заголовков, самая полезная вещь, которую могла бы сделать эта библиотека, - это имитировать наиболее часто используемые строки, например, Host: not host: , Cookie: not cookie: . Таким образом, он будет работать везде, где работают наши браузеры. Присоединение к стаду улучшит совместимость (правильную или ошибочную), а также принесет пользу конфиденциальности.

Рад работать над патчем, мысли? Может быть отмечена функция, чтобы сохранить совместимость для людей, предпочитающих строчные буквы.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги