Punto 3 Protocolo HTTP. Juan Luis Cano

Documentos relacionados
CAPÍTULO 5: PROTOCOLO HTTP

5.- DESCRIPCIÓN DEL PROTOCOLO HTTP

PRACTICA FINAL. Diseño e implementación de un servidor Web básico y cliente http. Protocolo HTTP-RC

Redes de Computadores II

5.1 Introducción. 5.2 El protocolo HTTP.

INTERCAMBIO DE OBJETOS

PROTOCOLO FTP PROTOCOLO DE TRANSFERENCIA DE ARCHIVOS ING. RAUL BAREÑO GUTIERREZ RAUL BAREÑO GUTIERREZ 1

Tema 2 El Servicio Web

HTTP Introducción. Redes de Datos Ing. Marcelo Utard / Ing. Pablo Ronco FACULTAD DE INGENIERIA UNIVERSIDAD DE BUENOS AIRES

Servicio de publicación de información web (HTTP)

Protocolo HTTP. Tema 4 SRI. Vicente Sánchez Patón. I.E.S Gregorio Prieto

UD 4: Instalación y administración de servicios Web SRI

Código de ética. Temario. Herramientas. Entrar en ubuntu

Testing de Seguridad de Aplicaciones Web

Tema 2: Protocolo HTTP.

HTTP. Redes I. Departamento de Sistemas Telemáticos y Computación (GSyC) Noviembre de GSyC HTTP 1

PROTOCOLO HTTP. Hypertext Transfer Protocol

Arquitecturas REST (Representa3onal State Transfer)

Seguridad en Aplicaciones Web

TEMA 3: La Aplicación World Wide Web

Si usted quiere desarrollar con Bluevia y Java, esto es lo primero que debe saber

HyperText Transfer Protocol

Protocolos de WWW. Bibliografía: Redes de Computadores: un enfoque descendente basado en Internet : J.F Kurose y K.W. Ross. GSyC 2007.

PHP 7 Desarrollar un sitio web dinámico e interactivo

Funcionamiento de Servicios Web, FTP

Desarrollo y servicios web

Módulo PRESTASHOP REDIRECCIONES 301, 302 Y 303 DE URLS GUÍA DE INSTALACIÓN Y DE CONFIGURACIÓN

DESARROLLO DE APLICACIONES PARA LA WEB II

Desarrollo y servicios web

MANUAL DE USUARIO SISTEMA INFORMÁTICO PARA HISTORIAS CLÍNICAS

Introduccion a HTML y Formularios. Gerardo Grinman 5D

Qué significan los errores más habituales que devuelve Apache y cómo solucionarlos?

Internet y Correo Electrónico. Guía del Usuario Página 13. Centro de Capacitación en Informática

Programación páginas web con PHP

Punto 1 Funcionamiento del Servicio FTP. Juan Luis Cano

SERVICIOS WEB DE MODIFICACIÓN DE LA D.G. DEL CATASTRO Introducción general

Desarrollo y servicios web

ANEXO APLICACIÓN DE FIRMA

Protocolo HTTP Apache. Servicios HTTP. Esteban De La Fuente Rubio L A TEX. Universidad Andrés Bello. 17 jun 2011

SUBSISTEMA DE CARGA DE FICHEROS CON DATOS DE ADEUDOS, RECHAZOS Y DEVOLUCIONES. SEPA Y SEPAXML. Carga de Ficheros

Desarrollo y servicios web

Plataforma Electrónica Cáncer

Capa de Aplicación (Parte 2 de 2)

Introducción a los Servicios de conectividad empresarial de SharePoint 2013

Qué es World Wide Web? La red como instrumento de comunicación. Sugerencias para sacar el máximo partido de WWW. Requisitos para utilizar WWW

WWW (HTTP PROXY - CACHING)

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

HyperText Transfer Protocol

Práctica 6. Localización de páginas web con SDL Trados Studio

SERVICIOS DE RED E INTERNET

ACCESO A LA APLICACIÓN

Centro Universitario UAEM Zumpango Ingeniería en Computación Servicios de Internet M.T.I. Carlos Alberto Rojas Hernández

Tema 4: Tecnologías Web Java

Tema 1 HTTP y aplicaciones web

Introducción al desarrollo web (idesweb)

AUTOFIRMA Orientación y Soluciones a Problemas conocidos. AUTOFIRMA Uso de AUTOFIRMA en páginas web Soluciones y Orientación en problemas detectados 1

Tema 4: Diseño e Implementación de la Capa Web

5. Desarrollo de Aplicaciones en Internet

SERVIDOR WEB MULTIPLATAFORMA CON IMPLEMENTACIÓN CGI

Introducción a RIA. Andrés Pastorini. TRIA Tecnólogo Informático

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

Sistemas Distribuidos Basados en la WEB

DISEÑO CURRICULAR ELECTIVA II. DESARROLLO DE APLICACIONES WEB

MÓDULOS B-MOTICS ESCLAVOS DE MODBUS. Bielsa electrónica S.L. Ref: mblogix1.0es.pdf

Amadeus Selling Platform Connect Acceso, página de comandos y modo rápido

PROTOCOLOS HTTP Y HTTPS

SISTEMA ELECTRÓNICO DE CONTRATACIONES MANUAL DE USUARIO FINAL MÓDULO DE PROVEEDORES Y CONTRATISTAS

Crear un servidor Web en IIS

Servicios en Red Ejercicio 1 FTP

1.2 Para qué me sirve FTP FTP y Planes de Hospedaje FTP y CentovaCast (AutoDj) FTP y Dreamweaver Descarga de FileZilla 10

SMTP-API Documentación Técnica

Práctica 4: Instalación y Gestión de Servicios en Sistemas 9Distribuidos.

TEMARIO. 4-Servlet Definición de servlet El Web Container y el ciclo de vida de los servlets El ciclo request- response.

Curso JAVA EE

Linux Avanzado: Redes y Servidores (Versión Ubuntu)

Catálogo en línea del SGB Exportación de datos desde el SGB

Solicitudes Material de Almacén

Aviso Legal sobre Cookies L.S.S.I.C.E. EMPLEO DE COOKIES

Novedades ebd versión 3.2

Manual de Instalación de PrestaShop 1.3 en Windows XP.

Clase 22 Nivel de Aplicación WWW Tema 6.- Nivel de aplicación en Internet

Rawel E. Luciano B Sistema Operativo III 15- SERVIDOR . José Doñe

Transcripción:

Punto 3 Protocolo HTTP Juan Luis Cano

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.

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.

1. 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. 2. 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. 3. 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.

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: www.24x7linux.com User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-us; rv:1.2b) Gecko/20021016 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9, text/plain;q=0.8,video/xmng,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- 8859-15, utf-8;q=0.66, *;q=0.66 Keep-Alive: 300 Connection: keep-alive

Hay dos tipos de mensajes: De respuesta y 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.

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.

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.

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.

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.

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.

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.

Código Comentario Descripción 200 OK La operación se ha realizado correctamente 201 Created 202 Accepted 204 No Content 301 Moved Permanently 302 Found 304 Not Modified Como resultado de la operación, se ha creado un nuevo objeto ya disponible. La URL del objeto se adjunta en la respuesta. 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. La operación ha sido aceptada pero no ha producido ningún resultado. El cliente no deberá modificar el documento que se muestra. 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. 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. Se devuelve cuando se realiza un GET condicional y el documento no ha sido modificado.

Código 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 501 Internal Server Error Not Implemented 502 Bad Gateway 503 Service Unavailable El servidor ha tenido un error interno y no puede continuar con el procesamiento. El servidor no tiene capacidad, por su configuración interna, para responder a la petición. El servidor, que está actuando como Proxy o Gateway, ha encontrado un error al acceder al recurso que había solicitado el cliente. El servidor está actualmente deshabilitado y no es capaz de atender al requerimiento.

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

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:

El protocolo HTTP permite a los webmasters redireccionar sus páginas a otros enlaces mediante los códigos 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.

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.

Para realizarlo hay que descargar uno de los módulos del mismo, el mod_gzip

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

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.

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.

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.

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.