Ejercicios de protocolo HTTP e introducción a las aplicaciones web
Pruebas con protocolo HTTP
En las plantillas de la sesión tenéis un par de archivos JAR que implementan un cliente y un servidor HTTP de "pruebas". Estos únicamente establecen la conexión y nos permiten escribir manualmente los comandos HTTP y ver la respuesta del otro lado.
-
Utilizando el programa que simula ser un cliente HTTP (ClienteHTTP.jar) vamos a abrir la página principal del ayuntamiento de Alicante.
Para ello como host deberéis indicar www.alicante.es, y como petición la siguiente:
GET / HTTP/1.0
NOTA: es importante respetar la línea en blanco al final de la petición
-
Utilizando el programa que simula ser un servidor HTTP que tenéis en la plantilla (ServidorHTTP.jar), hacer lo siguiente:
-
Utilizar un navegador para hacer un petición HTTP a nuestro servidor de prueba. Podemos poner una URL como la siguiente:
http://localhost:1080/index.htm
Observar en el servidor espía la petición que ha hecho el navegador. ¿Qué información ha enviado el navegador en esta petición? ¿Cómo se identifica el navegador (versión + sistema operativo)?
- Abrir la página HTML form_get.htm con cualquier navegador web. Introducir datos en el formulario y enviar una petición. Esta petición se estará realizando al servidor espía instalado. Observar en este servidor la petición realizada. ¿Cómo se han enviado los datos del formulario?
- Vamos a hacer lo mismo que en el apartado anterior, pero con la página form_post.htm. ¿Qué diferencia hay entre esta petición y la realizada en el caso anterior? ¿Cómo se envían los datos introducidos en el formulario?
-
Recursos estáticos en Tomcat
Vamos a probar el servidor web Tomcat y a subir recursos estáticos a él.
-
Instalar y poner en marcha el servidor web Tomcat. Comprobar que está activo accediendo a la siguiente URL desde cualquier navegador:
http://localhost:8080/
-
Copiar el fichero pagina.htm (podrás encontrarlo en las plantillas de la sesión) a la aplicación raíz (ROOT) instalada por defecto en Tomcat. Comprobar que se puede acceder correctamente a este recurso introduciendo la siguiente URL
http://localhost:8080/pagina.htm
Instalar una aplicación web sencilla
En las plantillas de la sesión hay una sencilla aplicación web que permite mantener una página y que los visitantes puedan añadir comentarios. Vamos a empaquetar y desplegar la aplicación en Tomcat
Empaquetamiento en .war. Observar la estructura de directorios que cuelga del directorio comentarios. Podemos empaquetar la aplicación mediante la herramienta jar incluída en el JDK, como se especifica en los apuntes:
jar cvf comentarios.war *
La operación anterior hay que hacerla desde dentro del directorio comentarios, es decir, el .war creado no debe contener la carpeta "comentarios" propiamente dicha, sino lo que contiene ésta.
Si no tenemos la herramienta jar en el path, podemos comprimir los archivos en un .zip convencional y cambiarle manualmente la extensión.
Despliegue manual en Tomcat Para desplegar el .war manualmente basta con dejarlo en la carpeta webapps del directorio de instalación de Tomcat. Observar que transcurridos unos segundos el .war se descomprime automáticamente en una carpeta con el mismo nombre. Para probar la aplicación abre un navegador y accede a la URL
http://localhost:8080/comentarios/comentarios.jsp
Repliegue de la aplicación: para eliminar la aplicación del servidor basta con borrar el .war y también el directorio descomprimido.
Despliegue a través del manager de Tomcat:. Esta sería la forma de trabajar si no estuviéramos en la misma máquina que el servidor. Para ello, exportamos a un .WAR en cualquier directorio (que no sea de Tomcat). El acceso al manager se hace a través de la URL
http://localhost:8080/manager/html
Tomcat nos pedirá un usuario con rol manager. Introducir el usuario de administración. El .war se despliega con el formulario que aparece al final de la página. Una vez desplegado, comprobar que la aplicación aparece en la lista de aplicaciones activas. Comprobar también que si la aplicación se recarga a través del manager, los comentarios se pierden (ya que por el momento la aplicación los guarda en memoria del servidor).