2011-02-24 18 views
12

HTTP_AUTHORIZATION parece ser una variable de entorno del lado del servidor, pero ¿qué valores puede ser? ¿Hay ejemplos? ¿Lo establecen algunos encabezados HTTP?¿Qué es la variable de entorno HTTP_AUTHORIZATION?

Además, ¿cómo se ve en el navegador cuando solicita el nombre de usuario y la contraseña (es un formulario HTML o es un cuadro emergente que solicita nombre de usuario y contraseña (que es modal y si no hace clic en Aceptar o Cancelar, entonces no se puede hacer clic en el navegador)).

Por lo general, un formulario de acceso de usuario a publicar al servidor con POST variables tales como

username=peter&password=123 

¿para qué, HTTP_AUTHORIZATION acerca?

Respuesta

2

Puede encontrar una descripción detallada del encabezado de Autorización HTTP en RFC2617, ubicado en http://www.ietf.org/rfc/rfc2617.txt, sección 3.2.2.

+0

gracias ... por suerte, no es un documento de 200 páginas ... ¿de qué manera es esta solicitud de nombre de usuario y contraseña presentada a un usuario (en un navegador)? –

+0

No estoy 100% seguro, pero creo que esta es la forma en que la vieja escuela.Se realiza la autenticación htaccess-style, donde aparece un cuadro de diálogo con un aviso de nombre de usuario/contraseña. – gpcz

+0

Sí, ese es el indicado. – SimonJ

25

Sólo para que quede en la misma página, una solicitud POST típica se ve algo como esto:

 
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 

Las variables de entorno que comienzan HTTP_ son un vestigio de los días en que CGI scripts eran la principal forma de servir dinámico contenido, e indican a su código del lado del servidor que el cliente proporcionó un encabezado particular como parte de la solicitud. De los CGI spec:

meta-variables con nombres que comienzan con "HTTP_" contener valores leídos de los campos de la cabecera del cliente, si el protocolo utilizado es HTTP. El nombre del campo del encabezado HTTP se convierte a mayúsculas, tiene todas las ocurrencias de "-" reemplazadas por "" y tiene "HTTP" antes de dar el nombre de la metavariable.

El encabezado Authorization: utilizado en una serie de mecanismos de autenticación HTTP; el flujo habitual es:

  1. explorador intenta solicitar una página
  2. servidor responde con "401 no autorizado" y una cabecera WWW-Authenticate: que contiene un esquema y (a veces) un desafío
  3. navegador solicita usuario las credenciales, a continuación, reenvía la solicitud con un encabezado Authorization: que contiene una respuesta a la impugnación

El formato exacto de la impugnación y la respuesta varía según el esquema de autenticación en uso; RFC2617 (que gpcz enlazado) cubre "básico" (más común, envía "nombre de usuario: contraseña" codificado en base64) y "resumen" (contiene un hash criptográfico) y NTLM es otro que se ve en algunos entornos de Windows.

0

¡También vale la pena señalar que el estándar Joomla! .htaccess archivo tiene la siguiente regla en ella para establecer la variable de entorno HTTP_AUTHORIZATION basado en la cabecera Authorization en la solicitud:

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