Подтвердить что ты не робот

Что такое переменная среды HTTP_AUTHORIZATION?

HTTP_AUTHORIZATION представляется переменной окружения на стороне сервера, но какие значения могут быть? Есть примеры? Установлен ли он некоторыми HTTP-заголовками?

Также, как это выглядит на стороне браузера, когда он запрашивает имя пользователя и пароль (это HTML-форма или это всплывающее окно, которое запрашивает имя пользователя и пароль (что является модальным, и поэтому, если не нажимать OK или Отмена, тогда браузер не может нажать на)).

Обычно форма входа пользователя будет POST на сервере с переменными POST, такими как

username=peter&password=123

так что это за HTTP_AUTHORIZATION about?

4b9b3361

Ответ 1

Просто так, что мы находимся на одной странице, типичный запрос POST выглядит примерно так:

POST /some/page HTTP/1.1                            <-- request line
Host: www.example.com                               <-------------------\
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) <--| headers
Content-Length: 27                                  <-------------------/
... some other headers ...
                                                    <-- blank line
username=peter&password=123                         <-- POST data, if any

Переменные среды, начинающиеся с HTTP_, являются похмелье от дней, когда CGI-скрипты были основным способом обслуживания динамического содержимого, и они указывают на вашу серверную сторону код, который клиент предоставил конкретному заголовку в качестве части запроса. Из спецификации CGI:

Мета-переменные с именами, начинающимися с "HTTP_", содержат значения, считанные из полей заголовка запроса клиента, если используемым протоколом является HTTP. Имя поля заголовка HTTP преобразуется в верхний регистр, все вхождения "-" заменены на "и имеет" HTTP", чтобы присвоить имя мета-переменной.

Заголовок Authorization:, используемый в нескольких механизмах аутентификации HTTP; обычный поток:

  • браузер пытается запросить страницу
  • сервер отвечает заголовком "401 Unauthorized" и WWW-Authenticate:, содержащим схему и (иногда) вызов
  • браузер запрашивает у пользователя учетные данные, а затем повторно отправляет запрос с заголовком Authorization:, содержащим ответ на вызов

Точный формат задачи и ответа различается в зависимости от используемой схемы аутентификации; RFC2617 (связанный с gpcz) охватывает "базовые" (наиболее распространенные, отправляет base64-кодированное "имя пользователя: пароль" ) и "дайджест" (содержит криптографический хэш) и NTLM - это другое, что наблюдается в некоторых средах Windows.

Ответ 2

Подробное описание заголовка HTTP-авторизации можно найти в RFC2617, расположенном по адресу http://www.ietf.org/rfc/rfc2617.txt, раздел 3.2.2.

Ответ 3

Можно также отметить, что стандартный Joomla! .htaccess файл имеет в нем следующее правило: установить переменную среды HTTP_AUTHORIZATION на основе заголовка Authorization в запросе:

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]