Sei sulla pagina 1di 6

4 Servicio HTTP

Caso prctico a Comunicacin HTTP


Duracin: 30 min. Dificultad: media

Objetivos
Conocer la comunicacin http.

Descripcin terica
1. Formato del mensaje Al tratarse de un protocolo sin estado, cada transaccin HTTP es una comunicacin distinta. Existen dos tipos de mensajes: los de peticin o solicitud (request) y los de respuesta (response), cada uno con una sintaxis determinada. El formato de un mensaje genrico en HTTP es el siguiente: Lnea de comienzo: tipo de mensaje (orden HTTP con sus parmetros, request, o resultado de la solicitud, response). Lneas de encabezado (si son obligatorias) o cero (si son opcionales), acabadas con un CR-LF (es decir, un retorno de carro CR y a continuacin una lnea final LF). Separador, que no es ms que otro CR-LF. Contenido o cuerpo del mensaje.

2. Peticiones (request) HTTP: mtodos de peticin Una peticin HTTP, en su formato ms bsico, se estructura de la siguiente manera: mtodo + espacio en blanco + URI + espacio en blanco + versin. El mtodo indica al servidor qu debe hacer con el URI (Uniform Resource Identifier, RFC 2396). El nmero de versin se refiere al protocolo que el cliente entiende. Por ejemplo, una peticin normal utiliza el mtodo GET para demandar del servidor el URI solicitado. Su sintaxis sera la siguiente: GET /index.html HTTP/1.0. La versin 1.0 de HTTP contempla tres mtodos: GET: utilizado para obtener cualquier tipo de informacin del servidor, como cuando se hace clic sobre un enlace. HEAD: parecido a GET, pero sin el cuerpo del mensaje POST: dedicado al envo de informacin desde el cliente. La versin posterior del HTTP, la 1.1, ampla estas posibilidades e implementa mtodos surgidos de nuevas necesidades generadas sobre todo por la WWW. A continuacin se detallan algunos: PUT: permite enviar el recurso objeto de la URL del cliente al servidor. DELETE: borra el recurso solicitado del servidor.

OPTIONS: proporciona al cliente informacin del servidor para que pueda, entre otras tareas, negociar los valores de los parmetros de la comunicacin.

Servicios en red

1-6

4 Servicio HTTP
2.1. Mtodo GET Desde un terminal, habr que realizar una llamada a un servidor web por el puerto por defecto de HTTP (80). En el caso de que la peticin tenga parmetros, en el mtodo GET aparecern codificados como parte de la URL desde el carcter ? en adelante. $ telnet www.upv.es 80 Trying 158.42.4.23... Connected to ias.cc.upv.es. Escape character is '^]'. Para ejecutar la peticin del fichero raz del sitio mediante el mtodo GET, habr que introducir la secuencia siguiente: GET /index.html HTTP/1.0 [Despus de teclear esta lnea, habr que pulsar Intro dos veces.] HTTP/1.0 200 OK Date: Thu, 10 Feb 2005 10:18:45 GMT Server: Apache/1.3.26 (Unix) ApacheJServ/ 1.1 mod_ssl/2.8.10 OpenSSL/0.9.6g mod_perl/1.27 Content-Type: text/html Age: 0 <html> <head> <title>Universitat Politcnica de Valncia</ title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <LINK REV="made" HREF="mailto:webmaster@upv.es"> <META NAME="author" content="Universidad Politecnica de Valencia"> <META name="keywords" content="UNIVERSIDAD INVESTIGACION DOCENCIA CENTROS DEPARTAMENTOS ESTUDIOS ALUMNADO PROFESORES ASIGNATURAS PROYECTOS"> <META name="description" content=""> </head> <body bgcolor="#FFFFFF" link="#2f373f" vlink="#2f373f" alink="#000000" leftmargin=" 0" topmargin="0" marginwidth="0" marginheight=" 0">

Servicios en red

2-6

4 Servicio HTTP
[A continuacin, se enva el resto de la pgina solicitada.] </body> </html> Connection closed by foreign host. En primer lugar, se realiza la conexin con el servidor (telnet), y a continuacin se realiza la peticin mediante GET el URI index.html. De inmediato, se obtendr una respuesta afirmativa y se llevar a cabo toda la accin que se haba planeado. Al final de la comunicacin, el servidor interrumpir la conexin.

2.2. Mtodo HEAD Se utiliza para preguntar informacin sobre un documento (es decir, sus metadatos), no para obtener el propio documento. HEAD es ms rpido que GET, ya que en este caso se transfiere menos informacin. Desde un terminal, se realiza una llamada a un servidor web, por el puerto por defecto (80). $ telnet www.upv.es 80 Trying 158.42.4.23... Connected to ias.cc.upv.es. Escape character is '^]'. La peticin se ejecuta mediante el mtodo HEAD (sin olvidarse de cargar dos retornos de carro despus de la peticin): HEAD /index.html HTTP/1.0 HTTP/1.0 200 OK Date: Thu, 10 Feb 2005 10:14:28 GMT Server: Apache/1.3.26 (Unix) ApacheJServ/ 1.1 mod_ssl/2.8.10 OpenSSL/0.9.6g mod_perl/1.27 Content-Type: text/html Age: 0 Connection closed by foreign host. HEAD lo utilizan clientes que recurren a la cach para comprobar si el documento ha cambiado desde la ltima vez que se accedi a l.

2.3. Mtodo POST Se utiliza para transferir datos del cliente al servidor que se han incluido en el cuerpo de la solicitud. Por lo general, se utiliza POST en aquellos casos en que debe recogerse informacin del protocolo HTTP desde lenguajes de script del servidor. En este caso, los datos pueden transferirse con la ayuda del tipo MIME multipart/form-data, utilizado para encapsular los datos de un formulario a la hora de enviarlos hacia el servidor mediante el mtodo POST o tambin formando parte de la URL. Desde un terminal, se realiza una llamada a un servidor web a travs del puerto por defecto (80). $ telnet www.upv.es 80 Trying 158.42.4.23... Connected to ias.cc.upv.es. Escape character is '^]'.

Servicios en red

3-6

4 Servicio HTTP
Para enviar el objeto al servidor, se emplea el mtodo POST. POST /index.html HTTP/1.0 ... Connection closed by foreign host. En el caso de que fallase alguno de estos mtodos, el servidor lo indicara con una lnea como la siguiente: HTTP/1.1 405 Method Not Allowed

3. Respuestas HTTP Estn formadas por cdigos de tres dgitos (fuente: www.es.wikipedia.org). 1xx Mensajes N 100-111 Descripcin Conexin rechazada

2xx Operacin exitosa N 200 201-203 204 205 206 Descripcin OK Informacin no oficial Sin contenido Contenido para recargar Contenido parcial

3xx Redireccin hacia otra URL N 300 301 302 303 304 305 307 Descripcin Mltiples posibilidades Mudada permanentemente Encontrada Vea otras No modificada Utilice un proxy Redireccin temporal

Servicios en red

4-6

4 Servicio HTTP
4xx Error por parte del cliente N 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 Descripcin Solicitud incorrecta No autorizado Pago requerido Prohibido No encontrado Mtodo no permitido No aceptable Proxy requerido Tiempo de espera agotado Conflicto Ya no disponible Requiere longitud Fall precondicin Entidad de solicitud demasiado larga URL de solicitud demasiado larga Tipo de medio no soportado Rango solicitado no disponible Fall expectativa

Servicios en red

5-6

4 Servicio HTTP
5xx Error por parte del servidor

N 500 501 502 503 504 505

Descripcin Error interno No implementado Pasarela incorrecta Servicio no disponible Tiempo de espera de la pasarela agotado Versin de HTTP no soportada

Servicios en red

6-6

Potrebbero piacerti anche