Ответ 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.