Práctica #01 Protocolo HTTP Programación Web y Objetos Distribuidos Protocolo HTTP Práctica #01 Introducción: HTTP es un protocolo de comunicación de transferencia de Hipertexto, define la semántica y la sintaxis que utilizan los elementos de software de la arquitectura Web. Es protocolo orientatado a conexión, no es persistente, por lo tanto no guarda estado. Comúnmente utilizamos un navegador Web para poder ver el hipertexto que es regresado después de una petición, pero tratándose de un protocolo que utiliza TCP, podemos realizar peticiones prográmaticamente y obtener el hipertexto. Java tiene librerías para poder realizar programas que hagan peticiones y manejar respuestas, desde las propias librerías estándar del JDK hasta librerías ajenas a esta. En esta práctica utilizaremos las librerías propias y las librerías del proyecto Apache (HTTP Components) para programar un sencillo cliente HTTP. Actividades: 1) Con las librerías de la JDK java.net, programar un cliente HTTP, el cual haga una petición a una URL utilizando el método GET, la respuesta obtenida la imprima en la salida estándar, además de guardarla en un archivo de texto. Implementar además manejo de códigos de respuesta. O sea para cuando el código sea 200 imprimir y guardar, sino responder con el código de error. 2) Hacer lo anterior pero utilizando la librería de Apache HTTP Components (http://hc.apache.org/ downloads.cgi). 3) Investigar la diferencia entre URI y URL. 4) ¿Para que sirve la herramienta “curl”, y citar un ejemplo de uso? 5) Modificar el programa del primer inciso y recuperar las cabeceras de respuesta. 6) ¿Para la petición con que nombre de cabecera le puedo “engañar” al servidor diciendo que mi cliente es un navegador?