La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tema 4 – Servicio Web Punto 3 – Protocolo HTTP Juan Luis Cano.

Presentaciones similares


Presentación del tema: "Tema 4 – Servicio Web Punto 3 – Protocolo HTTP Juan Luis Cano."— Transcripción de la presentación:

1 Tema 4 – Servicio Web Punto 3 – Protocolo HTTP Juan Luis Cano

2 Protocolo HTTP Hypertext Transfer Protocol o HTTP (en español protocolo de transferencia de hipertexto) es el protocolo usado en cada transacción de la World Wide Web. HTTP es un protocolo sin estado, es decir, que no guarda ninguna información sobre conexiones anteriores. El desarrollo de aplicaciones web necesita frecuentemente mantener estado. Para esto se usan las cookies, que es información que un servidor puede almacenar en el sistema cliente. Esto le permite a las aplicaciones web instituir la noción de "sesión", y también permite rastrear usuarios ya que las cookies pueden guardarse en el cliente por tiempo indeterminado.

3 Funcionamiento El funcionamiento del protocolo HTTP es muy sencillo pero tiene varias funcionalidades para agilizar y mejorar el proceso por lo que puede resultar bastante complejo.

4 Funcionamiento Básico
Todo el proceso se inicia cuando un cliente web (navegador) o una aplicación web envía una petición al servidor, conectándose por defecto por el puerto 80. Cuando se realiza la conexión el navegador envía una cabecera HTTP realizando la petición de la página que el usuario a solicitado en el navegador. Si no se especifica, el servidor buscará el fichero por defecto asignado (index.html), pero puede especificarse para que busque una dirección concreta de dicha página web. Cuando ha recibido el mensaje, el servidor responde al navegador mediante un mensaje HTTP ofreciéndole la página que ha pedido. Si se ha realizado correctamente, el mensaje HTTP tendrá un código válido, si no fuera así mandaría un mensaje de error (4XX o 5XX), siendo las X otros dos números.

5 Ejemplo de una petición del cliente web
A continuación se muestra una petición HTTP típica, de la página principal de un sitio. Como puede verse se ofrecen muchos datos, como el cliente Web que pide la consulta (Firefox) y el tipo de datos que solicita (Imágenes) GET / HTTP/1.1 Host: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2b) Gecko/ Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9, text/plain;q=0.8,video/x- mng,image/png,image/jpeg,image/gif;q=0.2, text/css,*/*;q=0.1 Accept-Language: es-es, en-us;q=0.66, en;q=0.33 Accept- Encoding: gzip, deflate, compress;q=0.9 Accept-Charset: ISO , utf-8;q=0.66, *;q=0.66 Keep-Alive: 300 Connection: keep-alive

6 Mensajes HTTP Hay dos tipos de mensajes: De respuesta y de petición.

7 Mensajes de Petición Es el mensaje que envía el cliente al servidor para establecer una conexión vía HTTP y poder pedir un recurso o una página.

8 Mensajes de Respuesta Es el mensaje que envía el servidor para responder al cliente, enviándole la petición que ha realizado. Los mensajes de respuesta siempre tienen 3 secciones: la línea inicial de estados, las lineas de cabecera y el cuerpo de la entidad.

9 Métodos de petición El protocolo HTTP consta de ocho métodos de interactuación con el servidor: HEAD: Pide una respuesta idéntica a la que correspondería a una petición GET, pero sin el cuerpo de la respuesta. Esto es útil para obtener sólo los encabezados de respuesta, agilizando el proceso. GET: Pide una representación del recurso especificado. Por seguridad no debe ser utilizado ya que transmite información sobre algunos parámetros a la URL. DELETE: Borra el recurso especificado.

10 Métodos de petición restantes
TRACE: Este método solicita al servidor que envíe de vuelta en un mensaje de respuesta, en la sección del cuerpo de entidad, toda la data que reciba del mensaje de solicitud. Se utiliza con fines de comprobación y diagnostico. OPTIONS: Devuelve los métodos HTTP que el servidor soporta para un URL específico. CONNECT: Se utiliza para saber si se tiene acceso a un host. POST: Somete los datos a que sean procesados para el recurso identificado. Los datos se incluirán en el cuerpo de la petición. PUT: Sube, carga o realiza una subida de un recurso especificado, es el camino más eficiente para subir archivos a un servidor.

11 Cabeceras Las Cabeceras HTTP o Metatags, son los parámetros que se envían en una petición o respuesta HTTP al cliente o al servidor para proporcionar información esencial sobre la transacción en curso. Estas cabeceras proporcionan información mediante la sintaxis 'Cabecera: Valor' y son enviadas automáticamente por el navegador o el servidor Web.

12 Cabeceras estandarizadas
Las cabeceras estandarizadas de HTTP son las siguientes: Accept: Determina el tipo de contenido o MIME que se espera de la respuesta. Su valor debe ser una cadena MIME. Accept-Charset: Determina el set de caracteres aceptable en la respuesta. Su valor debe ser un código de caracteres IANA. Accept-Encoding: Determina la codificación (compresión) que se espera de la respuesta. Valores comunes suelen ser gzip, deflate o sdch. Accept-Language: Determina el idioma aceptado para la respuesta. Su valor debe ser cualquier código de lenguaje estandarizado Authorization: Determina la autentificación HTTP para la petición en curso.

13 Códigos de estado HTTP Ante cada transacción con un servidor HTTP, hay varios tipos de código con los que puede responder dicho servidor: 1XX: Mensajes Informativos. 2XX: Mensajes asociados con operaciones realizadas correctamente. 3XX: Mensajes de redirección, que informan de que es necesario realizar operaciones adicionales para llevar a cabo una operación. 4XX: Errores del cliente, dados por que se ha realizado una consulta errónea o no puede ser realizada la operación. 5XX: Error del servidor que no ha podido llevar a cabo la solicitud.

14 Tabla de códigos de respuesta HTTP
Comentario Descripción 200 OK La operación se ha realizado correctamente 201 Created Como resultado de la operación, se ha creado un nuevo objeto ya disponible. La URL del objeto se adjunta en la respuesta. 202 Accepted Como resultado de la operación, se ha creado un nuevo objeto que todavía no está disponible. La URL del objeto se adjunta en la respuesta. 204 No Content La operación ha sido aceptada pero no ha producido ningún resultado. El cliente no deberá modificar el documento que se muestra. 301 Moved Permanently El objeto al que se quiere acceder ha sido movido a otro lugar permanentemente. El servidor proporciona, además, la URL donde se aloja el objeto. 302 Found El objeto al que se quiere acceder ha sido movido a otro lugar temporal. El servidor proporciona, además, la URL donde se aloja el objeto. 304 Not Modified Se devuelve cuando se realiza un GET condicional y el documento no ha sido modificado.

15 Tabla de códigos de error HTTP
Comentario Descripción 400 Bad Request La petición tiene un error de sintaxis y no es entendible por el servidor. 401 Unauthorized La petición requiere un permiso especial, que normalmente es un nombre y una contraseña. 403 Forbidden El acceso a este recurso está prohibido. No es posible utilizar una clave para modificar la protección. 404 Not Found La URL solicitada no existe. 500 Internal Server Error El servidor ha tenido un error interno y no puede continuar con el procesamiento. 501 Not Implemented El servidor no tiene capacidad, por su configuración interna, para responder a la petición. 502 Bad Gateway El servidor, que está actuando como Proxy o Gateway, ha encontrado un error al acceder al recurso que había solicitado el cliente. 503 Service Unavailable El servidor está actualmente deshabilitado y no es capaz de atender al requerimiento.

16 Almacenamiento en caché
La memoria caché HTTP es la parte del protocolo que permite a los clientes y servidores intercambiar información relacionada con la memoria caché. HTTP especifica varias cabeceras de caché para respuestas, como son: Cache-Control Expires ETag Last-Modified

17 Cabecera Caché-Control
La cabecera Cache-Control es la única que no contiene una, sino varias piezas de información sobre la memoria caché de una respuesta. Cada pieza de información está separada por una coma:

18 Redirecciones El protocolo HTTP permite a los webmasters redireccionar sus páginas a otros enlaces mediante los códigos 301 y 302.

19 Diferencias entre redirecciones 301 y 302
Con la redirección 301 estamos indicando al buscador que esa redirección es permanente, es decir, que una URL A ha cambiado definitivamente a la URL B. Con la redirección 302 estamos indicando al buscador que esa redirección es temporal, es decir, que una URL A  se ha cambiado temporalmente a la URL B.

20 Compresión Se trata de comprimir la información enviada por el servidor del sitio web, dejando al navegador del visitante el trabajo de descomprimirlo. Esto se realiza automáticamente, sin que el visitante lo perciba ni deba intervenir.

21 Realizar una compresión en Apache
Para realizarlo hay que descargar uno de los módulos del mismo, el mod_gzip

22 Cookies Para la autenticación, el protocolo HTTP incluye mecanismos tales como el digest access authentication, que permite acceder a una página web sólo cuando el usuario ha facilitado un nombre de usuario y contraseña correctos. Y ahí es donde se le dan sentido a las cookies

23 Repetición de los datos
Una vez que se han introducido los credenciales, el navegador las almacena y las utiliza para acceder a las páginas siguientes, sin pedirlas de nuevo al usuario. Internamente, el nombre de usuario y la contraseña se envían al servidor con cada petición del navegador.

24 Autenticación En el contexto de una transacción HTTP, la autenticación de acceso básica es un método diseñado para permitir a un navegador web, u otro programa cliente, proveer credenciales en la forma de usuario y contraseña cuando se le solicita una página al servidor.

25 Conexiones Persistentes (Keep Alive)
Antes de que esta característica existiese, se necesitaba una conexión TCP separada para cada petición. Cuando un documento utilizaba enlaces a otros ficheros externos, la transmisión era extremadamente ineficiente. HTTP en su última versión, proporciona la posibilidad de establecer sesiones de mayor duración de manera que se permiten múltiples peticiones sobre la misma conexión TCP. Esta característica llega a proporcionar en algunos casos hasta un 50 por cien de mejora en los tiempos de latencia entre documentos HTML.

26 Ventajas de Keep Alive Los principales beneficios al usar conexiones persistentes son: Se abren menos conexiones TCP, lo que ahora recursos (CPU, memoria, etc.). Se pueden entubar (pipeline) peticiones y respuestas en una conexión. Esto permite al cliente hacer múltiples peticiones sin esperar a las respuestas. Se reduce la latencia en peticiones al utilizar varias veces un canal ya abierto.

27 Punto 4 – Configuración de un Servidor Web


Descargar ppt "Tema 4 – Servicio Web Punto 3 – Protocolo HTTP Juan Luis Cano."

Presentaciones similares


Anuncios Google