Так же, как мы находимся на той же странице, типичный запрос 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-аутентификации;обычный поток:
- браузер пытается запросить страницу
- сервер отвечает "401 Unauthorized" и заголовок
WWW-Authenticate:
, содержащий схему и (иногда) вызов - браузер запрашивает учетные данные пользователя, а затем повторно отправляет запрос с заголовком
Authorization:
, содержащим ответ на запрос
Точный формат запроса и ответа зависит от того, какая аутентификациясхема используется;RFC2617 (с которым связан gpcz) охватывает «базовый» (наиболее распространенный, отправляет «username: password» в кодировке base64) и «дайджест» (содержит криптографический хеш), а NTLM - еще один, который встречается в некоторыхСреды Windows.