Что такое переменная среды HTTP_AUTHORIZATION? - PullRequest
15 голосов
/ 24 февраля 2011

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

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

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

username=peter&password=123

так что же это за HTTP_AUTHORIZATION?

Ответы [ 3 ]

28 голосов
/ 25 февраля 2011

Так же, как мы находимся на той же странице, типичный запрос 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 spec :

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

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

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

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

3 голосов
/ 25 февраля 2011

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

0 голосов
/ 15 марта 2017

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

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