viernes, 19 de enero de 2018

Criterio para determinar el host virtual que atiende la solicitud HTTP recibida en el servidor web Apache

El criterio para asociar una solicitud con un host virtual de entre todos los que integran la lista será el siguiente.

A partir de la información procedente de las cabeceras de la solicitud HTTP realizada por el cliente se usarán los siguientes datos (entre paréntesis con que parametro del host virtual se compara):

- Nombre DNS utilizado (ServerName)
- puerto TCP (puerto)
- IP a la que se resuelve el nombre DNS (Addresss)
- IP especificada explícitamente, si se ha usado directamente la IP en la URL en lugar de un nombre DNS. (Address)


El criterio para seleccionar el host virtual que atiende la petición HTTP recibida en el servidor se basa en el número de parámetros que coinciden con los de la solicitud, pero en un orden de prioridad. En primero lugar la IP, a continuación el número de puerto y por último el ServerName.

Por lo tanto, si encontramos en la lista de hosts virtuales un solo host virtual con la IP establecida de forma explicita y esta coinicide con la IP de la solicitud (o la IP del nombre DNS una vez resuelto) este será el host virtual asociado con la solicitud.

Si existieran varios hosts virtuales con la IP coincidente, entonces entre ellos se escogerá aquel que explicite el número de puerto TCP y este coincida con el de la solicitud HTTP recibida.

Nuevamente, en caso de haber varios hosts, se debe seguir probando con el siguiente criterio, y este ya, por fin, es el parametro ServerName, de modo que aquel host virtual que coincida con el valor del ServerName será el seleccionado.

El último criterio para desempatar, caso de que no se haya podido decidir todavía que host virtual atiende la petición, sera el nombre del fichero de configuración del host virtual en orden alfabético descendente.

No obstante, puede suceder que, mientras se está seleccionando el host virtual, aparte del caso en que exista uno o varios host virtuales que cumplen el criterio, también puede ocurrir el caso de que no exista ninguno. En este caso se pasa al criterio siguiente, es decir, si se trata de la IP se pasará al puerto, y si se trata del puerto se pasará al ServerName y finalmente si no hay mas remedio al nombre del fichero de configuración.


No hay comentarios:

Publicar un comentario