2.1+Servidores+de+páginas+de+internet.

= =

Un **servidor web ** o **servidor HTTP ** es un programa informático que procesa una aplicación del lado del servidor realizando conexiones bidireccionales y/o unidireccionales y síncronas o asíncronas con el cliente generando o cediendo una respuesta en cualquier lenguaje o Aplicación del lado del cliente. El código recibido por el cliente suele ser compilado y ejecutado por un navegador web. Para la transmisión de todos estos datos suele utilizarse algún protocolo. Generalmente se utiliza el protocolo HTTP para estas comunicaciones, perteneciente a la capa de aplicación del modelo OSI. El término también se emplea para referirse al ordenador que ejecuta el programa.

Petición GET
Un servidor web opera mediante el protocolo HTTP , de la capa de aplicación del Modelo OSI. Al protocolo HTTP se le asigna habitualmente el puerto TCP 80. Las peticiones al servidor suelen realizarse mediante HTTP utilizando el método de petición GET en el que el recurso se solicita a través de la url al servidor web.

 GET /index.html HTTP/1.1 HOST: www.host.com

 En la barra de URL de un navegador cualquiera la petición anterior sería análoga a la siguiente dirección Web:

 www.host.com/index.html

**<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 14px;">Petición Web **
<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 14px;">Véase también: <span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;"> Navegador Web

<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 14px;">Véase también: <span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;"> Telnet

<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;"> El navegador por medio de la interfaz de usuario permite al usuario realizar una o varias peticiones web. La interfaz de usuario o entorno de usuario es el conjunto de elementos del navegador que permiten realizar la petición de forma activa. Una petición Web no sólo puede ser realizada mediante un navegador sino con cualquier herramienta habilitada para tal fin, como una consola de comandos Telnet.

<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;"> Elementos del entorno de usuario más comunes en navegadores Web visuales:
 * ** Nombre ** || ** Descripción ** ||
 * ** Hipervínculo ** **<span style="font-family: 'Calibri','sans-serif'; font-size: 13.3333px;">enlace ** o **<span style="font-family: 'Calibri','sans-serif';">link ** || Es una porción de contenido Web, texto, imagen y otros elementos, que enlaza con una dirección Web. Al pulsar un hipervínculo el navegador genera una petición GET automática a la dirección URL de dicho link. ||
 * **<span style="font-family: 'Calibri','sans-serif'; font-size: 13.3333px;">Formulario web ** || Al realizar el envío satisfactorio de los datos de un formulario, el navegador Web genera una petición GET o POST (comúnmente POST) automática a la par que envía los datos al servidor. ||
 * **<span style="font-family: 'Calibri','sans-serif'; font-size: 13.3333px;">Barra de direcciones ** || Todos los navegadores incluyen una barra de direcciones mediante la cual puede accederse manualmente a cualquier dirección URL, de modo que el navegador generará una petición GET automática a dicha URL cada vez que el usuario lo desee. ||
 * **<span style="font-family: 'Calibri','sans-serif'; font-size: 13.3333px;">Script activo ** o **<span style="font-family: 'Calibri','sans-serif';">pasivo ** || Cualquier aplicación Javascript tiene acceso al estado del navegador, cómo puede modificar los datos que describen tal estado, de forma pasiva (sin medio de la intervención del usuario) o de forma activa (mediante alguna acción del usuario). ||

**<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 14px;">1.1 Socket a dirección DNS **
<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">Se produce una socket con un servidor dado en dirección IP mediante TCP. Por lo general las direcciones que el navegador posee inicialmente son direcciones <span class="mw-redirect" style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">DNS <span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">(direcciones alfanuméricas) que deberá convertir a direcciones numéricas.

**<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 14px;">1.2 Resolución de DNS a IP **
<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">Si la dirección dada es <span class="mw-redirect" style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">DNS <span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">y no existe una regla en la base de datos DNS, el Host Resolver Request solicita al servidor DNS la o las direcciones IPs correspondientes. El navegador crea una nueva regla y almacena la dirección IP junto a la dirección DNS en su base de datos de reglas DNS.

**<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 14px;">1.3 Recuperación de la regla DNS **
<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">Una vez almacenada la regla se realiza una petición a la base de datos DNS para recuperar los valores de la regla.

**<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 14px;">1.4 Socket a dirección IP **
<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">Se produce una socket con la dirección IP mediante TCP. La dirección IP puede haberse recuperado en el paso anterior.
 * <span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">SOCKET 192.168.0.1

**<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 14px;">1.5 Preparación de la petición **
<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">Se crea la petición GET estableciendo la url, un flag, la priority de la petición y el method (implícitamente GET).

**<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 14px;">1.6 Apertura Caché **
<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">Se abre y/o se crea una entrada en el http cache

**<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 14px;">1.7 Efectuación de la petición **
<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">Se realiza la petición GET. Se leen las cabeceras <span class="mw-redirect" style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">HTTP <span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">de la http transaction y más tarde el cuerpo de la http transaction.
 * <span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">GET /index.html HTTP/1.1

**<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 14px;">1.8 Consulta en Caché **
<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">Se consulta en el caché de disco si existe una entrada en el caché asociada al recurso que se ha solicitado. Los valores son created (//<span style="font-family: 'Arial','sans-serif';">true // o //<span style="font-family: 'Arial','sans-serif';">false //) y key (la url del recurso).

**<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 14px;">1.9 Retribución boleana existencialista del recurso solicitado **
<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">Si la entrada no existe (si el valor de created es //<span style="font-family: 'Arial','sans-serif';">false //) se escriben los datos en el caché de disco. Si no, se lee directamente.

**<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 14px;">2.0 Presentación visual del recurso **
<span style="color: #000000; font-family: 'Arial','sans-serif'; font-size: 13.3333px;">Se concluye la operación y se muestra en pantalla (si es preciso) la información.