INTRODUCCIN v 2 1 Introduccin Estndares para el

  • Slides: 24
Download presentation
INTRODUCCIÓN v 2. 1

INTRODUCCIÓN v 2. 1

Introducción Estándares para el Web § El Web está basado en estándares de comunicación

Introducción Estándares para el Web § El Web está basado en estándares de comunicación y de documentos. ü Muchos tipos de navegador sobre diferentes plataformas, ü Existen muchas implementaciones de servidores web. § El Web es abierto respecto a los tipos de recursos que pueden ser publicados y compartidos en él. ü Páginas web (archivos de texto), imágenes, sonido, video, etc. ü Si alguien inventa un nuevo formato los archivos en dicho formato pueden ser publicadas inmediatamente en el Web. ü Los navegadores están diseñados para acomodar la nueva funcionalidad de presentación en forma de aplicaciones colaboradoras y conectores (plug-ins). v 2. 1

Introducción Estándares para el Web § El Web está basado en tres componentes tecnológicos

Introducción Estándares para el Web § El Web está basado en tres componentes tecnológicos de carácter estándar básicos: ü URLs como identificadores generales de recursos. ü HTTP como protocolo para acceder a recursos que utilizan URLs. ü HTML para definir la estructura de los documentos y permitir su despliegue (render). § Especificación de HTTP: ü HTTP (Hyper. Text Transfer Protocol) es un protocolo a nivel de aplicación para sistemas de información de hipermedia, colaborativos y distribuidos. v 2. 1

El protocolo HTTP Sesión HTTP: Peticiones y Respuestas § Una Sesión HTTP es una

El protocolo HTTP Sesión HTTP: Peticiones y Respuestas § Una Sesión HTTP es una secuencia de transacciones tipo petición/respuesta (request/response). § Un cliente inicia con la petición de un recurso. ü Establece una conexión a un puerto particular (típicamente el 80) en un servidor anfitrión (host). ü Usando generalmente el Protocolo de Control de Transmisión (TCP). ü El recurso se identifica a través de una URL. § Un servidor HTTP escucha en ese puerto y espera peticiones. § Al recibir una petición, el servidor retorna una respuesta: ü Envía de vuelta una línea de estatus, como “HTTP/1. 1 200 OK”, y ü Envía un mensaje propio, w el cuerpo (body) del cual es quizás el recurso solicitado. w Un mensaje de error (en caso de error), w U otra información. v 2. 1

El protocolo HTTP El protocolo de transporte y las transacciones § En Internet, las

El protocolo HTTP El protocolo de transporte y las transacciones § En Internet, las comunicaciones HTTP generalmente toman lugar sobre conexiones TCP. ü El puerto por omisión es el 80, pero también pueden ser usados otros puertos. ü Sin embargo, HTTP puede ser implementado sobre cualquier otro protocolo o red. ü HTTP solo requiere un protocolo de transporte confiable. § Una transacción HTTP es dividida en cuatro pasos: ü El navegador abre una conexión ü El navegador envía una petición al servidor ü El servidor envía una respuesta al navegador ü La conexión es cerrada v 2. 1

El protocolo HTTP Protocolo HTTP/CGI § Cliente (browser) – Página HTML – Tag especial

El protocolo HTTP Protocolo HTTP/CGI § Cliente (browser) – Página HTML – Tag especial <FORM> ü Envía la petición (request) HTTP al servidor enviando los parámetros y el programa a ejecutar. § El Servidor HTTP recibe la petición y pasa los parámetros y el requerimiento a otro programa usando el protocolo CGI – Common Gateway Interface. ü El servidor CGI puede estar escrito en cualquier lenguaje que pueda leer la entrada/salida estándar y variables de ambiente. ü El servidor HTTP lanza el programa CGI por cada petición. ü El programa se ejecuta y retorna los resultados en formato HTML/HTTP hacia el servidor. § El servidor a su vez retorna el resultado en el mismo formato hacia el browser. § Clientes y Servidor HTTP usan MIME para la representación de datos para describir el contenido de los mensajes. v 2. 1

El protocolo HTTP Principales carácterísticas § Varias versiones: ü HTTP/0. 9 ü HTTP/1. 0

El protocolo HTTP Principales carácterísticas § Varias versiones: ü HTTP/0. 9 ü HTTP/1. 0 ü HTTP/1. 1 § HTTP es un protocolo del estilo RPC sobre TCP/IP § HTTP es stataless ü Protocolo Request / Response ü Cliente -> Servidor (Request) ü Servidor -> Cliente (Response) § HTTP Data representation ü Pasa datos auto-descritos ü El cliente informa al servidor que representación de datos puede entender. ü Cliente y Servidor negocian los tipos de datos v 2. 1

LA PETICIÓN HTTP v 2. 1

LA PETICIÓN HTTP v 2. 1

Estructura La Petición HTTP § Línea de encabezado: ü método (o comando), ü recurso

Estructura La Petición HTTP § Línea de encabezado: ü método (o comando), ü recurso destino, y ü versión HTML. § Campos de encabezado: ü información adicional sobre la solicitud y el cliente. § Cuerpo de entidad: ü a veces utilizado para transferir información. v 2. 1

La petición HTTP Petición HTTP: Un pequeño ejemplo <method><resource identifier><HTTP version><crlf> [<Header> : <value>]<crlf>.

La petición HTTP Petición HTTP: Un pequeño ejemplo <method><resource identifier><HTTP version><crlf> [<Header> : <value>]<crlf>. . . [<Header> : <value>]<crlf> blank line <crlf> [Entity body] GET /path/file. html HTTP/1. 0 Accept: text/html Accept: audio/x User-agent: Mac. Web v 2. 1

La Petición HTTP Métodos de una petición § § § § GET: Recuperar el

La Petición HTTP Métodos de una petición § § § § GET: Recuperar el URL especificado. HEAD: Recuperar sólo el encabezado. POST: Enviar datos al URL especificado. PUT*: Almacenar datos. PATCH*: Almacenar diferencias. COPY*: Copiar recursos MOVE*: Mover recurso DELETE*: Borrar el recurso. LINK*: Establecer liga entre recursos. UNLINK*: Eliminar liga entre recursos. TRACE*: Notificar recepción de datos. OPTIONS*: Solicitar información sobre opciones de comunicación WRAPPED*: Empaca la solicitud * Disponibles en HTTP/1. 1 v 2. 1

La Petición HTTP Campos de encabezado de General & Request General Header Fields §

La Petición HTTP Campos de encabezado de General & Request General Header Fields § § § § v 2. 1 Cache control Connection Data Forwarded Keep alive MIME version Pragma Upgrade Request Header Fields § Accept charset § Accept encoding § Accept language § Authorization § From § Host § If modified since § Proxy authentication § Range § Referrer § Unless § User agent

La petición HTTP Método GET vs POST § Método GET ü Cuando se envía

La petición HTTP Método GET vs POST § Método GET ü Cuando se envía una petición con el método GET, los parámetros son enviados como parte del URL. ü GET causa que los campos de entrada de la forma “name=valor” sean adicionados al final del URL despues de un “? ” w http: //www. server. com/page. jsp? name 1=value 1&name 2=value 2&name 3=value 3 ü GET causa que el servidor web parsee la URL e inserte el string después del “? ” en una variable de ambiente llamada “query-string” § Método POST ü POST agrega el contenido en el BODY de un mensaje HTTP. ü El programa en el servidor lee los campos de entrada de la entrada estándar. § Cual es mejor? ü Muchas veces algunos S. O. limitan el tamaños de las variables de ambiente a 256 – 1024 bytes ü Lo más recomendado sería el método POST que no tiene limitaciones de tamaño. v 2. 1

LA RESPUESTA HTTP v 2. 1

LA RESPUESTA HTTP v 2. 1

La Respuesta HTTP El mensaje de respuesta ¿Qué es? § Línea de estado (status)

La Respuesta HTTP El mensaje de respuesta ¿Qué es? § Línea de estado (status) seguida por uno o más respuestas y encabezados generales, seguidos por un cuerpo de entidad opcional. § Status-Line = HTTP-Version <SP> Status-Code <SP> Reason-Phrase <CRLF> v 2. 1 Códigos de status § Informational (1 xx) ü 100: Continue § Successful (2 xx) ü 200: OK § Redirection (3 xx) ü 301: Moved permanently. ü 303: See other. ü 307: Moved temporally. § Client error (4 xx) ü ü 401: Non authorized. 403: Forbidden. 404: Not Found. 405: Method not allowed § Server error (5 xx) ü ü 500: Internal Error 503: Non available 504: Time-out 505: Unsupported version.

La Respuesta HTTP Campos del Encabezado del Response § Location § Proxy authentication §

La Respuesta HTTP Campos del Encabezado del Response § Location § Proxy authentication § Public § Retry after § Server § WWW-Authenticate v 2. 1

Campos del Encabezado del Entity La Respuesta HTTP § § § § § v

Campos del Encabezado del Entity La Respuesta HTTP § § § § § v 2. 1 Allow Content encoding Content language Content length Content MD 5 Content range Content type Content version Derived from § § § § Expires Last modified Link Title Transfer encoding URL header Extension header

La Petición y Respuesta HTTP Entity Body § Secuencia arbitraria de bytes. § HTTP

La Petición y Respuesta HTTP Entity Body § Secuencia arbitraria de bytes. § HTTP transfiere cualquier tipo de datos, incluyendo: ü text ü binary data ü audio ü images ü Video § Interpretación del dato determinado por los campos del encabezado. ü Content encoding, content type, transfer encoding v 2. 1

La Petición y Respuesta HTTP Ejemplos Request GET /path/file. html HTTP/1. 0 Accept: text/html

La Petición y Respuesta HTTP Ejemplos Request GET /path/file. html HTTP/1. 0 Accept: text/html Accept: audio/x Host: 200. 12. 180. 4 User-Agent: Mac. Web Response HTTP/1. 0 200 OK Server: NCSA/1. 3 Mime_version: 1. 0 Content_type: text/html Content_lenght: 2000 <HTML> … </HTML> v 2. 1

HTTPS: PROTOCOLO SEGURO 1. Introducción 2. TSL / SSL 3. HTTPS v 2. 1

HTTPS: PROTOCOLO SEGURO 1. Introducción 2. TSL / SSL 3. HTTPS v 2. 1

HTTPS: Protocolo seguro Introducción § Hypertext Transfer Protocol Secure ( ) es una combinación

HTTPS: Protocolo seguro Introducción § Hypertext Transfer Protocol Secure ( ) es una combinación entre HTTP y SSL/TLS para proveer una comunicación encriptada e identificación segura de un servidor web. v 2. 1

HTTPS: Protocolo seguro TSL: Transport Layer Security § Transport Layer Security ( ) y

HTTPS: Protocolo seguro TSL: Transport Layer Security § Transport Layer Security ( ) y Secure Sockets Layer ( ) son protocolos de encriptación que proveen comunicaciones seguras en una red. § TLS y SSL encriptan paquetes de conexiones sobre la capa de transporte, usando ü una criptografía simétrica para la privacidad, y ü un código de autenticación de mensajes para la fiabilidad de mensajes. § Estos protocolos son utilizados en distintos contextos y aplicaciones tales como navegación web, mail, mensajería instantánea y voz-IP. v 2. 1

HTTPS: TSL: El protocolo 1. El cliente se conecta a un servidor habilitado TLS

HTTPS: TSL: El protocolo 1. El cliente se conecta a un servidor habilitado TLS solicitando una conexión segura y presenta una lista de encriptaciones soportadas. 2. De esta lista, el servidor elige la encriptación y función de hash más fuertes que también soporte y notifica al cliente de su decisión. 3. El servidor envía de vuelta su certificado digital para autenticarse. El certificado contiene su nombre, el certificado de autoridad (CA) y la llave pública encriptada. 4. El cliente podría contactar el servidor que emitido el certificado (CA) y confirmar la validez del certificado. 5. Para generar las llaves de sesión usadas para la conexión segura, el cliente encripta un número aleatorio con la llave pública del servidor y le envía el resultado. 6. A partir del número aleatorio, ambas partes generan una llave para la encriptación y desencriptación. v 2. 1

Diagrama de interacción del protocolo HTTPS: Protocolo seguro handshake: Client. Hello Server. Hello handshake:

Diagrama de interacción del protocolo HTTPS: Protocolo seguro handshake: Client. Hello Server. Hello handshake: Certificate handshake: ne rver. Hello. Do e S : e k a h s d handshake: Client. K ey. Exchange Change. Cipher. Spec handshake: Finish ed pec Change. Cipher. S Finished : e k a h s d n ha application_data ta application_da v 2. 1