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 y 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 usa 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.
Arquitectura
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
Esquema
de una petición GET
Petición
Web
Véase
también: Navegador Web
Véase
también: Telnet
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.
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 DNS (direcciones alfanuméricas) que deberá
convertir a direcciones numéricas.
1.2 Resolución de DNS a IP
Si la dirección dada es DNS 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.
1.3 Recuperación de la regla DNS
Una vez almacenada la regla, se realiza una petición a la
base de datos DNS para recuperar los valores de la regla.
1.4 Socket a dirección IP
Se produce una socket con la dirección IP mediante TCP. La
dirección IP puede haberse recuperado en el paso anterior.
SOCKET 192.168.0.1
1.5 Preparación de la petición
Se crea la petición GET estableciendo la url, un flag, la
priority de la petición y el method (implícitamente GET).
1.6 Apertura Caché
Se abre y/o se crea una entrada en el http cache.
1.7 Efectuación de la petición
Se realiza la petición GET. Se leen las cabeceras HTTP de la
http transaction y más tarde el cuerpo de la http transaction.
GET /index.html HTTP/1.1
1.8 Consulta en Caché
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 (true o
false) y key (la url del recurso).
1.9 Retribución boleana existencialista del recurso
solicitado
Si la entrada no existe (si el valor de created es false) se
escriben los datos en el caché de disco. Si no, se lee directamente.
2.0 Presentación visual del recurso
Se concluye la operación y se muestra en pantalla (si es
preciso) la información.
Petición GET pasiva
Javascript permite realizar modificaciones en el estado del
navegador. El estado del navegador viene definido por el array de objetos
location del objeto global Window. Se referencia a tal objeto con
window.location. En concreto window.location.href contiene la dirección actual
del navegador Web.
Si una parte del script ejecuta tal sentencia:
window.location.href='http://wikipedia.org';
El navegador hará tal petición Web sin que el usuario haya
mediado en tal circunstancia o sus efectos. Del mismo modo se producirá una
nueva petición GET si se altera el valor de window.location.search o
window.location.protocol.
Procedimiento del navegador
La tarea del navegador Web es crear la petición a partir de
los datos recogidos en el entorno de usuario de elementos del mismo, como
enlaces, el valor del texto de la barra de búsqueda, los metatags.
<a
href="http://es.wikipedia.org">Entrar</a>
Al pulsar en el enlace, el navegador crea automáticamente la
petición GET y las cabeceras de la petición en base a los metatags (cabeceras
definidas), los cookies y cabeceras automáticas del navegador, para luego
enviarlas junto a la petición al servidor.
No hay comentarios:
Publicar un comentario