2.2 Servicios de red: Http, Motor de aplicación WEB

PROTOCOLO HTTP

El protocolo de transferencia de hipertexto HTTP (HTTP, HyperText Transfer Protocol) es el protocolo usado en cada transacción de la Web (WWW).

Detalla (Profesorado, s.f.) Cuando se escribe una URL, por ejemplo, como ésta "http://www.prueba.com/index.html", el navegador interpreta tres partes:
  • HTTP (protocolo).
  • www.prueba.com (nombre del servidor).
  • index.html (nombre del archivo especificado).

Una vez analizadas estas partes, el navegador comunica con un servidor de nombres (DNS) y se conecta con el servidor. 

Normalmente, para este proceso utilizamos el protocolo HTTP, que pasamos a detallar a continuación. 

Comenzaremos por decir que HTTP significa "Protocolo de trasferencia de hipertexto", además pertenece al grupo TCP/IP y se creó fundamentalmente para publicar páginas HTML. Es uno de los protocolos más utilizados actualmente. 

Define (Profesorado, s.f.) Que Su funcionamiento básico es el siguiente: Un navegador manda una solicitud GET al servidor y pide un archivo, el servidor responde enviando al navegador el código de ese archivo, que posteriormente es descifrado por el navegador. 

Expresa (Profesorado, s.f.) Que HTTP utiliza tres tipos de mensajes para enviar la información y recibirla del navegador.
  • GET
  • POST
  • PUT

Arquitectura web 

La idea fundamental es que los navegadores, browsers, presentan documentos escritos en HTML, que han obtenido de un servidor web. Estos documentos HTML habitualmente presentan información de forma estática, sin más posibilidad de interacción con ellos. 

El modo de crear los documentos HTML ha variado a lo largo de la corta vida de las tecnologías web pasando desde las primeras páginas escritas en HTML almacenadas en un fichero en el servidor web hasta aquellas que se generan al vuelo como respuesta a una acción del cliente y cuyo contenido varía según las circunstancias. 

Así mismo, el modo de generar páginas dinámicas ha evolucionado, desde la utilización del CGI, hasta los servlets pasando por tecnologías tipo JSP. Todas estas tecnologías se encuadran dentro de aquellas conocidas como Server Side, ya que se ejecutan en el servidor web. 

Otro aspecto que completa el panorama son las inclusiones del lado del cliente, Client Side, que se refieren a las posibilidades de que las páginas lleven incrustado código que se ejecuta en el cliente, como por ejemplo JavaScript y programas Java (Applets).

Navegador web o Browser 

El navegador puede considerarse como una interfaz de usuario universal. Dentro de sus funciones están la petición de las páginas web, la representación adecuada de sus contenidos y la gestión de los posibles errores que se puedan producir. 

Para poder cumplir con todas estas funciones, los navegadores tienen la posibilidad de ejecución de programas de tipo script, con modelos de objetos que permiten manipular los contenidos de los documentos. Estos lenguajes de programación son VBScript, JScript (ambas de Microsoft) y JavaScript (de Netscape), y proporcionan las soluciones llamadas del lado del cliente, client side y permiten realizar validaciones de datos recogidos en las páginas antes de enviarlos al servidor proporcionando un alto grado de interacción con el usuario dentro del documento. 

Otras de las posibilidades de los navegadores es la gestión del llamado HTML dinámico (DHTML). Éste está compuesto de HTML, hojas de estilo en cascada, (Cascade Style Sheets, CSS), modelo de objetos y scripts de programación que permiten formatear y posicionar correctamente los distintos elementos HTML de las páginas web, permitiendo un mayor control sobre la visualización de las páginas. 

En esta línea, los navegadores han ido un poco más allá y permiten la visualización de documentos XML después de haber sido transformado adecuadamente a HTML por las hojas de estilo extensibles XSL. De esta manera se puede elegir visualizar ciertos elementos y otros no, dependiendo de las circunstancias. 

Además, los navegadores permiten la ejecución de aplicaciones dentro de los documentos mostrados. Las dos posibilidades más populares son la tecnología ActiveX y los applets Java. Los applets Java son pequeños programas que se descargan del servidor web y se ejecutan en la JVM (Java Virtual Machine) del navegador.

Aplicaciones Web

Cada vez con más frecuencia se está disponiendo de aplicaciones web, que consisten en fragmentos de código que se ejecutan tras realizar ciertas peticiones o respuestas HTTP, de las que cabe diferenciar entre: 


• Aplicaciones del lado del servidor: aquellas en las que el servidor lleva acabo la/s ejecución/es de una o varias aplicaciones que producen una respuesta, normalmente un código en HTML. El servidor envía esta respuesta al cliente empleando el protocolo HTTP. 


• Aplicaciones del lado del cliente: aquellas en las que el servidor proporciona al cliente el código de las aplicaciones al cliente, y éste mediante el navegador las ejecuta. Las más conocidas son las tipo Java, Javascript, Actionscript, etc. Para que la ejecución se lleve a cabo el navegador ha de tener permisos para estas ejecuciones además de soportarlas. Para el caso de Javascript, éste suele ir soportado nativamente por el navegador, pero para el resto lo normal es que el navegador tenga que emplear [plugins]. 


Las aplicaciones del lado del cliente presentan la ventaja de que el cliente realiza un procesado mínimo, pero el gran inconveniente de que a veces es necesario que el cliente cuente con unos plugins específicos para poder visualizar correctamente los resultados que recibe del servidor. A diferencia de las del lado del cliente, las aplicaciones del lado del servidor tienen el inconveniente de que en algunas ocasiones el servidor puede encontrarse muy saturado, por ejemplo, debido a un gran número de peticiones simultáneas pero a su vez esta tecnología presenta la gran ventaja de que apenas requiere procesado por parte del cliente, ni ninguna capacidad adicional para poder visualizar la respuesta del servidor.

Comentarios

Entradas populares de este blog

2.1 Tipos de servidores aplicados a la seguridad informática

2.3 Administración de los servidores

2.3.1 Monitoreo de red