Portada » Informática » Introducción a HTTP, Sitios Web y Aplicaciones Web
El protocolo HTTP (Hypertext Transfer Protocol) es similar a muchos otros protocolos de internet, como SMTP (Simple Mail Transfer Protocol) y FTP (File Transfer Protocol), ya que HTTP es un protocolo para transferir datos desde un servidor a un cliente. La diferencia entre HTTP y casi todos los demás protocolos de internet es que, mientras los protocolos típicos admiten varias solicitudes por conexión, HTTP solo admite una. Esto significa que con HTTP el cliente se conecta al servidor para recuperar un solo archivo y después se desconecta.
HTML también permite integrar en un documento HTML imágenes y otros objetos multimedia, siendo estos almacenados en el servidor web. Por tanto, a través de HTTP se pueden transmitir estos archivos.
El navegador web envía una única solicitud al servidor. El servidor web determina qué archivo se solicita y devuelve como respuesta los datos de dicho archivo. El navegador interpreta la respuesta y representa el contenido en la pantalla. La información solicitada es la ubicación del archivo, u otro recurso que requiera el usuario, e información sobre el navegador. La información de respuesta incluye el recurso solicitado y otra información. La solicitud suele ser sin formato, la respuesta puede ser texto sin formato, con algo de formato o datos parcialmente binarios (como es el caso de las imágenes).
Estructura de un Sitio web.
Un sitio web es una colección de páginas HTML y otros archivos multimedia que albergan todo el contenido que puede ver el usuario en un determinado servidor web. Estos archivos se almacenan en el servidor web y pueden incluir una jerarquía de directorios compleja. El sitio web está formado por esa jerarquía de directorios.
Java Platform, Enterprise Edition o Java EE (anteriormente conocido como Java 2 Platform, Enterprise Edition o J2EE hasta la versión 1.4), es una plataforma de programación parte de la Plataforma Java para desarrollar y ejecutar software de aplicaciones en Lenguaje de programación Java con arquitectura de N niveles distribuida, basándose ampliamente en componentes de software modulares ejecutándose sobre un servidor de aplicaciones. La plataforma Java EE está definida por una especificación.
PLATAFORMA JAVA, EDICIÓN ENTERPRISE 5 (Java EE 5).
una plataforma de programación parte de la Plataforma Java para desarrollar y ejecutar software de aplicaciones en Lenguaje de programación Java con arquitectura de N niveles distribuida, basándose ampliamente en componentes de software modulares ejecutándose sobre un servidor de aplicaciones. La plataforma Java EE está definida por una especificación.
SITIOS WEB Y APLICACIONES WEB.
Un sitio web es una colección de archivos estáticos, páginas HTML, gráficos y otros archivos diversos. Una aplicación web es un sitio web con funcionalidad dinámica en el servidor. Una aplicación web ejecuta programas en el servidor, por ejemplo:
EJECUCIÓN DE PROGRAMAS CGI.
En los inicios de HTML, los diseñadores crearon un mecanismo que permitía a un usuario invocar un programa en el servidor Web. Dicho mecanismo se llamó Common Gateway Interface (CGI), así cuando un sitio web incluye procedimientos CGI, a este se le denominó Aplicación Web.
Normalmente el navegador debe enviar los datos al programa CGI del servidor. La especificación CGI determina cómo se empaquetan y envían los datos al servidor en la solicitud HTTP. Estos datos suelen introducirse en el navegador web mediante un formulario HTML.
VENTAJAS Y DESVENTAJAS DE LOS PROGRAMAS CGI.
Los programas CGI tienen las siguientes ventajas:
Los programas CGI tienen los siguientes inconvenientes:
EJECUCIÓN DE SERVLET DE JAVA.
Los servlet son el avance sobre los programas CGI tradicionales. Un servlet de Java es un programa Java que al igual que un programa CGI, se ejecuta en el servidor, pudiéndose ejecutar tareas similares a las realizadas por un programa CGI, sin embargo, la arquitectura de ejecución es distinta.
Como en el caso de las secuencias de comandos CGI, se pueden crear servlet capaces de reconocer solicitudes HTTP, generar la respuesta dinámicamente (consultando la Base de datos para satisfacer la solicitud) y después enviar al navegador una respuesta que contenga un documento o una página HTML.
VENTAJAS Y DESVENTAJAS DE LOS SERVLET.
Los Servlet ofrecen las siguientes ventajas:
Cada solicitud se ejecuta en un subproceso distinto, con lo cual las solicitudes de servlet se procesan mucho más rápido que en el procesamiento CGI tradicional.
Los servlet son sólidos y están orientados a objeto.
Los servlet solo pueden escribirse en lenguaje Java, lo que facilita su creación.
Los servlet son independientes de la plataforma ya que son creados en Java.
Los servlet presentan los siguientes inconvenientes:
Arquitectura de 3 Capas.
La arquitectura de 3 capas (también denominado modelo o patrón) tiene un cliente de interfaz de usuario que se ejecuta en una máquina de usuario que se comunica con software de lógica de negocio en un servidor, que a su vez se comunica con el software responsable del almacenamiento de la información a largo plazo en los equipos de base de datos.
TIPOS DE COMPONENTES VISUALES.
Hay cuatro tipos de componentes visuales.
PROTOCOLO DE TRANSFERENCIA DE HIPERTEXTO (HTTP).
En cualquier protocolo de comunicación el cliente debe transmitir una solicitud y el servidor debe transmitir una respuesta significativa. En HTTP la solicitud es algún recurso especificado por una URL, si dicha URL especifica un documento estático, la respuesta incluye el texto de este documento. Podemos considerar que la solicitud y la respuesta envuelven a la URL (más los datos del formulario) y el texto de respuesta. La siguiente figura ilustra la arquitectura cliente-servidor.
MÉTODOS HTTP.
Se pueden usar diferentes métodos para efectuar una solicitud HTTP, como se muestran a continuación.
MÉTODO HTTP | DESCRIPCIÓN |
---|---|
OPTIONS | Solicita las opciones de comunicaciones disponibles en la cadena de solicitud / respuesta. |
GET | Solicita la recuperación de información especificada mediante la URL de solicitud. |
HEAD | Idéntico a GET, con la excepción de que no devuelve un cuerpo de mensaje, sino solo los encabezados. |
POST | Solicita al servidor que acepte la entidad contenida en el cuerpo del mensaje HTTP. |
PUT | Solicita al servidor que almacene la entidad contenida en el cuerpo del mensaje HTTP. |
DELETE | Solicita al servidor que elimine el recurso especificado mediante la URI de solicitud. |
TRACE | Solicita al servidor que invoque un bucle de capa de aplicación del mensaje de solicitud. |
CONNECT | Reservado para usar con un proxy que pueda convertirse en Tunel. |
MÉTODO HTTP GET.
El método HTTP más común es la solicitud GET. Se utiliza el método GET siempre que el usuario hace clic en un hipervínculo de la página HTML que está visualizando. También se usa el método GET cuando el usuario introduce una URL en el campo de dirección. Mientras se procesa una página Web el navegador también emite solicitudes GET de imágenes, applets, archivos de hojas de estilo y otros medios vinculados.
ENCABEZADOS DE SOLICITUD HTTP.
ENCABEZADO | USO |
---|---|
ACCEPT | Los tipos MIME que puede recibir el cliente. |
HOST | El host de internet y el número de puerto del recurso solicitado |
REFERER | La dirección de la que procede la URL de solicitud. |
USER-AGENT | Información del cliente que originado la solicitud. |
ENCABEZADOS DE RESPUESTA HTTP.
ENCABEZADO | USO |
---|---|
CONTENT-TYPE | Un tipo MIME como text/html que clasifica el tipo de datos de la respuesta. |
CONTENT-LENGTH | La longitud en Bytes de la carga de la respuesta |
SERVER | Una cadena informativa sobre el servidor que ha respondido a esta solicitud. |
CACHE-CONTROL | Una directiva para el navegador Web que indica dónde debe almacenarse en caché el contenido de la respuesta. |
+ARQUITECTURA DE CONTENEDOR WEB.
Los servlet Java son componentes que deben existir en un contenedor web. El contenedor Web se crea sobre la plataforma JAVA SE e implementan las API del servlet y todos los servicios necesarios para procesar solicitudes HTTP (y de otros protocolos TCP/IP).
El contenedor web activa el servlet que coincide con la URL de solicitud llamando al método service en una instancia de la clase servlet. En concreto, la activación del método service para una determinada solicitud HTTP se gestiona en un subproceso separado dentro del proceso del contenedor web.
http
Es el servicio invocado para transmitir páginas web y el que usaremos normalmente en los enlaces.
https
Es una innovación sobre el anterior, que nos permite acceder a servidores (generalmente comerciales) que nos ofrecen el uso de técnicas de encriptación para proteger los datos que intercambiemos con él de terceras personas.
ftp
Permite trasmitir ficheros desde servidores de ftp anónimo. Si no le pedimos un fichero sino un directorio, en general el navegador se encargará de mostrarnos el contenido del mismo para que podamos escogerlo cómodamente. Utilizando la @ podremos acceder a servidores privados.
mailto
Para poder mandar un mensaje. Por ejemplo, la URL mailto:multivac@idecnet.com me mandaría un mensaje a mí.
news
Para poder acceder a foros de discusión (mal traducidos a veces como grupos de noticias). Se indica el servidor y el grupo. Por ejemplo news://news.ibernet.es/es.comp.demos nos conectaría con el foro es.comp.demos en el servidor nacional de Telefónica.
telnet
No es implementado generalmente por los navegadores, que suelen invocar un programa externo. Nos permite conectarnos con otros ordenadores y entrar en ellos como si nuestro ordenador fuese una terminal del mismo.
La dirección de la máquina puede ser, o bien una serie de cuatro números entre 0 y 255 (123.3.5.65) o bien algo más fácil de recordar como es una serie de palabras separadas por puntos (www.programacion.net). El puerto generalmente no se indica, ya que el servicio predetermina uno.
La ruta es una serie de directorios separados por el símbolo /, que es el utilizado en UNIX (el sistema operativo más extendido en los servidores de Internet).
Existe otro formato de URL. Cuando queremos acceder a un fichero situado en la misma máquina que la página web que estamos creando podemos utilizar este formato:
La estructura de un documento HTML se puede resumir así:
tipo de documento
titulo de la página
cosas que afectan a la página pero no a su contenido
contenido de la página
La cabecera
Suele ser el lugar más indicado para colocar aquellos elementos de la página que no alteren el contenido de la misma, aunque sí la forma de presentarlo y su comportamiento. Es por eso que es el lugar más recomendable para colocar los scripts y las hojas de estilo, como veremos en los capítulos correspondientes.
4. Formularios
Una de las mayores ventajas de la web es que resulta tremendamente interactiva. Los usuarios de una página no tienen más que escribir al autor de la misma para comentarle cualquier cosa de la misma. Sin embargo, si deseamos que nos digan sólo unas cosas concretas (responder a alguna pregunta, seleccionar entre varias opciones, etc..) deberemos utilizar formularios
5. Lenguajes de script
Un lenguaje de script es un pequeño lenguaje de programación cuyo código se inserta dentro del documento HTML. Este código se ejecuta en el navegador del usuario al cargar la página, o cuando sucede algo especial como puede ser el pulsar sobre un enlace.
Estos lenguajes permiten variar dinámicamente el contenido del documento, modificar el comportamiento normal del navegador, validar formularios, realizar pequeños trucos visuales, etc… Sin embargo, conviene recordar que se ejecutan en el navegador del usuario y no en la máquina donde estén alojadas, por lo que no podrán realizar cosas como manejar bases de datos. Esto hace que los contadores (por ejemplo) se deban realizar de otra manera, utilizando programas CGI.
Javascript
Como este curso está orientado a Internet, no vamos a ver nada de VBScript aquí por las razones comentadas anteriormente. Pero para ilustrar la utilidad de los lenguajes de script, vamos a realizar una pequeña introducción al Javascript. Si te sientes interesado, visita mi curso de JavaScript 1.2 http://www.programacion.com/cursos/curso/tutorial.php?id=js> para mayor información sobre el tema.