• No se han encontrado resultados

CLIENTE/SERVIDOR EN INTERNET Programación Web: Introducción CONTENIDO. Formularios HTML Manejo de sesiones Generación dinámica de HTML

N/A
N/A
Protected

Academic year: 2022

Share "CLIENTE/SERVIDOR EN INTERNET Programación Web: Introducción CONTENIDO. Formularios HTML Manejo de sesiones Generación dinámica de HTML"

Copied!
23
0
0

Texto completo

(1)

CLIENTE/SERVIDOR EN INTERNET

Programación Web: Introducción

Dr. Víctor Jesús Sosa Sosa [email protected]

Programación Web: Introducción

CONTENIDO

APLICACIONES WEB

• Definiciones Básicas

• URL

• HTTP

• HTML

• HTML

• Formularios HTML

• Manejo de sesiones

• Generación dinámica de HTML

CGI

Módulos compilados

Scripts del lado del servidor

Sistemas de publicación XML

(2)

CONTENIDO

APLICACIONES WEB

• Clientes Dinámicos

DOM

Scripts (JavaScript)

Applets ActiveX

ActiveX

• Patrones de Arquitectura de Aplicaciones Web

• Seguridad

Cliente Web Delgado

Cliente Web Grueso

Web Object

 El Web es un sistema distribuido de hiperdocumentos.

 Para observar un documento en la Web debe utilizarse una aplicación llamada visualizador y se debe indicar el nombre del documento y el nombre de

DEFINICIONES BÁSICAS

debe indicar el nombre del documento y el nombre de la computadora donde éste puede ser encontrado.

 Las solicitudes de documentos son manipuladas por una aplicación denominada servidor Web.

 Cuando un visualizador solicita un documento, el servidor Web busca el documento en su sistema de archivos y lo envía al visualizador.

(3)

DEFINICIONES BÁSICAS

 El término Web (telaraña) surge al observar el sistema como un conjunto de nodos con enlaces de interconexión.

 Un sitio Web estático es aquel donde todos los documentos están almacenados de manera definitiva documentos están almacenados de manera definitiva en el sistema de archivos.

 Una aplicación Web es un sitio Web que permite la ejecución de lógica de trabajo por medio de un visualizador Web.

Web De Hipertexto

Web Interactivo

Objetos Web De Objetos

Evolución de las Tecnologías del Web

- Visualizadores Web gráficos e hipervínculos

1994

Formatos -Tablas -CGIs

Transacciones Protegidas - SSL - S-HTTP - Muros de Protección - E-cash

1995

Web de Java:

- Applets - Componentes

móviles

Objetos Distribuidos - Orblets - Documentos Compuestos - ActiveX - CORBA - Cyberdog

1996 1997

(4)

Evolución de las Tecnologías del Web

Fundamentos del Web

(Protocolos y Tecnologías)

Internet, como red principal global.

Protocolos de aplicaciones sobre TCP/IP (SMTP,Telnet, FTP, NNTP,Gopher) Internet, como red principal privada.

Detrás de Firewalls.

URLs, como forma de nombramiento y acceso global a todos los recursos del Web

HTTP, para acceder a recursos nombrados con URLs.

HTML, para incrustar hipervínculos y describir la estructura lógica de documentos.

Visualizadores Web, como clientes universales.

http ://www.direccion.com :8080 :/ruta/subdir/archivo.ext

Esquema de protocolo

Dirección del Servidor

Número de puerto

Recurso destino

(5)

HTTP

 Hypertext Transfer Protocol (1.0 definido en RFC 1945 y 1.1 en RFC 2068).

 Define el formato y la manera en que deben ser transmitidos los mensajes y las acciones que los visualizadores y servidores Web deben realizar en visualizadores y servidores Web deben realizar en respuesta a estos mensajes.

 Protocolo sin estado, no orientado a sesión, ya que cada comando requiere que se establezca una nueva conexión.

HTML Visualizador Web

Visualizador Web

PC HTTP

HTTP 1

2

3 4

Interacción Cliente/Servidor en el Web

TCP/IP Internet HTML

Web

MAC HTTP

HTTP Documentos

HTML

Servidor Web

Cliente Middleware Servidor

3

(6)

Formato de Solicitud de HTTP

HTML y formas

Visualizador Web

HTTP

Solicitud Cliente

Web Documentos

HTML Servidor

HTTP

Sintaxis de solicitud de HTTP

<method><resource identifier><HTTP version><crlf> Línea de

<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: MacWeb

Línea de Solicitud Campos de Encabezado de solicitud Cuerpo de entidad

Ejemplo

Línea de Solicitud

Campos de Encabezado de solicitud

Formato de Respuesta de HTTP

HTML y formas

Visualizador Web

HTTP

Respuesta Cliente

Web Documentos

HTML Servidor

HTTP Sintaxis de respuesta de HTTP

<HTTP version><result code>[<explanation>]<crlf>

[<Header> : <value>]<crlf>

Encabezado (estatus) de Respuesta [<Header> : <value>]<crlf>

-- --

[<Header> : <value>]<crlf>

blank line <crlf>

[Entity body]

HTTP/1.0 200 OK Server: CCSA/1.3 Mime_version: 1.0 Content_type: text/html Content_length: 2000

<HTML>

-- --

</HTML>

Campos de Encabezado Cuerpo de entidad

Ejemplo Encabezado

re repuesta Campos de Encabezado

Cuerpo de Entidad (es decir, Documento HTML)

(7)

Método HTTP/1.0 HTTP/1.1 Descripción del Método

GET S S Recuperar el URL especificado.

HEAD S S Idéntico a GET, salvo que el servidor no envía eldocumento en respuesta; solo envía los encabezados. Los clientes lo usan para obtener metadatos de recursos o para probar validez de vínculos de hipertexto.

POST S S Enviar estos datos al URL especificado.

PUT N S Almacenar estos datos en el URL especificado, remplazando lo anterior.

PATCH N S Similar a PUT, salvo que contiene una lista de diferencias entre la versión original del URL y el contenido deseado tras la aplicación del método.

Métodos de HTTP

COPY N S Copiar el recurso identificado por el URL en la(s) ubicación(es) especificada (s).

MOVE N S Trasladar el recurso indicado por el URL a la(s) ubicación(es) especificada(s).

Equivalete a usar COPY/DELETE DELETE N S Borra el recurso identificado por el URL.

LICK N S Establecer una o más relaciones de vinculación entre el recurso identificado por el URL y otros recursos

UCLICK N S Eliminar una o más relaciones de vinculación en el URL especificado.

TRACE N S Notificar todo lo que se reciba del cliente en el cuerpo de entidad de la respuesta.

OPTIOCS N S Solicita información de opciones disponibles.

WRAPPED N S Permite que solicitudes se envuelvan en conjunto y quizá también se codifiquen para reforzar la seguridad y/o privacidad de la solicitud. El servidor destino debe desenvolver el mensaje y cederlo al manipulador apropiado

Encabezado HTTP/1.0 HTTP/1.1 Descripción del Método

Cache-Control N S Instrucciones de Solicitud/Respuesta de memoria caché.

Connection N S Infomación que no puede transmitirse a gateways.

Date S S Fecha y hora de origen del mensaje.

Forwarded N S Información usada por gateways para rastrear pasos intermedios y evitar lazos

Encabezados Generales de HTTP

Forwarded N S

de solicitudes.

Keep-Alive N S Información de diagnostico.

MIME-Version S S Versión de MIME empleada para codificar el mensaje.

Pragma S S Contiene instrucciones de implementación (por ejemplo, sin memoria caché) Upgrade N S Lista protocolos de comunicación adicionales que soporta un cliente y que

querría usar previo acuerdo del servidor

(8)

Encabezado HTTP/1.0 HTTP/1.1 Descripción del Método Accept N S Lista contenido aceptable de tipo/subtipo MIME.

Accept-Chars N S Lista conjunto de caracteres aceptables

Accept-Encoding N S Lista codificaciones aceptables, como compresión y compresión con zip.

Accept-Language N S Lista de lenguajes naturales aceptables.

Authorization S S Transmite esquema de autenticación y codificación del usuario.

Encabezados de Solicitudes de HTTP

From S S Contiene dirección de correo electrónico en Internet del usuario.

Host N S Contiene nombre de anfitrión destino.

If-Modified-Since S S Contiene una fecha/hora usada por GET para la descarga condicional de documentos.

Proxy-Authorization N S Permite a clientes prestar su identidad a un representante.

Refer S S URL del documento de origen de esta solicitud.

Unless N S Lista condiciones de encabezado que deben cumplirse para que un método sea aplicado a un recurso.

User-Agent S S Describe al visualizador.

Encabezado HTTP/1.0 HTTP/1.1 Descripción del Método

Location S S Envía la ubicación exacta del recurso

Proxy-Authenticate N S Envía el esquema de codificación/autorización usado en esta sesión.

Public N S Lista todos los métodos no estándar soportados por un servidor.

Encabezados de Respuesta de HTTP

Retry-After N S Indica (en segundos) cuando volver a intentar un servicio.

Server S S Envía información sobre el software usado en el servidor.

WWW-Authenticate S S Envía el esquema de codificación/autorización que desea usar el servidor en todas sus interacciones en el Web.

(9)

Encabezado HTTP/1.0 HTTP/1.1 Descripción del Método Allow S S Lista los métodos soportados por el recurso de URL.

Content-Encoding S S Especifíca codificación de respuesta, como compresión y compresión con zip.

Content-Language N S Especifica lenguaje natural de respuesta (por ejemplo, español) Content-Length S S Extensión en bytes del cuerpo de entidad.

Content-Type S S Tipo de contenido MIME de respuesta.

Encabezados de Entidad de HTTP

Content-Version N S Contiene un número de versión del recurso.

Derived-From N S Identifica la versión anterior.

Expires S S Contiene fecha/hora después de la cual el documento caduca.

Last-Modified S S Contien fecha/hora de la modificación más recientedel recurso.

Link N S Contiene información de vinculación del documento.

Title N S Contiene el título del documento.

Transfer-Encoding N S Identifica una transformación aplicada al documento (o cuerpo del mensaje)

URL-Header N S Contiene la parte del nombre del recurso del URL.

Códigos de Estado

Códigos de Estado = “200” ; OK

| “201”; Creado

| “202”; Aceptado

| “204”; Sin Contenido

| “301”; Movido Permanentemente

| “302”; Movido Temporalmente

| “304”; No Modificado

| “400”; Mala Solicitud

| “400”; Mala Solicitud

| “401”; No autorizado

| “403”; Prohibido

| “404”; No encontrado

| “500”; Error Interno en el Servidor

| “501”; No implementado

| “502”; Gateway equivocado

| “503”; Servicio No Disponible

| extensiones de códigos

(10)

Transport Control Protocol: HTTP0.9

TCP Host A Host B

SYN SYN

ACK

DATA 1 RTT

1 RTT

DATA DATA

FIN

ACK

DATA

FIN

ACK Conexión cerrada por

A

Conexión cerrada por B

DATA

ACK

DATA

ACK

DATA

ACK 3 RTT +

2G

1 RTT + 2G G

Host A Host B Host A Host B

Transport Control Protocol: HTTP1.0

DATA

ACK

Tamaño de Ventana 1 Tamaño de Ventana 3

X1 = 1/RTT X3 = 3/RTT

(11)

HTTP 1.1

HTTP 1.1 arregla muchos de los problemas que tiene HTTP 1.0, pero es más complejo.

Características principales:

• Identifica Nombre de Host (permite host virtuales)

• Negocia Contenidos (múltiples lenguajes)

• Negocia Contenidos (múltiples lenguajes)

• Conecciones Persistentes (reduce sobrecarga en conexiones TCP)

• Transferencias en Bloques

• Rangos de Bytes (solicita partes de un documento)

• Soporte de Proxy

SISTEMAS DE PUBLICACIÓN XML

 Utilizan XML (Extensible Markup Language) y XSL (Extensible Styelsheet Language) para la separación del contenido y la presentación.

 Utilizan tecnologías existentes (e.g.

Servlets) para el procesamiento de solicitudes HTTP.

 Ejemplos: Cocoon, Bladerunner,

Relevant.

(12)

SISTEMAS DE PUBLICACIÓN XML

Ventajas:

Mayor facilidad para la administración, especialmente de aplicaciones grandes.

Separación completa de lógica, contenido y presentación.

Desventajas:

Desventajas:

Mayor dificultad para crear la aplicación, ya que es más complicado utilizar XML/XSL que HTML directamente.

Las herramientas no han alcanzado el nivel de madurez de otras opciones para la generación dinámica de código debido a que la tecnología de XML está constantemente evolucionando con mucha rapidez.

PATRONES DE ARQUITECTURA PARA APLICACIONES WEB

 Cliente Web Delgado

 Cliente Web Grueso

 Cliente Web Grueso

 Web Object

(13)

CLIENTE WEB DELGADO



Es el más utilizado en aplicaciones para la Internet



Se utiliza cuando los clientes tienen poco poder de computación o no se poco poder de computación o no se tiene control sobre su configuración



Toda la lógica de trabajo se ejecuta en el servidor



El visualizador es simplemente un instrumento de interfaz de usuario

ELEMENTOS DEL PATRÓN CLIENTE WEB DELGADO

 Visualizador

• Cualquier visualizador capaz de mostrar formularios y aceptar galletas

 Servidor Web

 Servidor Web

• Los visualizadores interactúan con el sistema sólo por medio del servidor Web.

• Procesan todas las solicitudes y pasan el control a otros servidores cuando las solicitudes son de módulos compilados o páginas con scripts de servidor.

(14)

ELEMENTOS DEL PATRÓN CLIENTE WEB DELGADO

 Conexión HTTP

• Toda la comunicación entre el cliente y el servidor se realiza con HTTP

• Cada vez que el cliente y el servidor intercambian información, se produce una nueva conexión HTTP

• En ocasiones se utiliza una variante llamada HTTPS o HTTP con SSL (Secure Sockets Layer), la cual permite cifrar la información transmitida utilizando algoritmos asimétricos (clave pública/clave privada)

ELEMENTOS DEL PATRÓN CLIENTE WEB DELGADO

 Páginas HTML estáticas

• Páginas con interfaz de usuario e información que no es producto de un procesamiento por parte del servidor

• Típicamente contienen información explicativa o formularios

• Cuando el servidor Web recibe una solicitud por una de estas páginas, simplemente envía el contenido archivo al cliente

(15)

ELEMENTOS DEL PATRÓN CLIENTE WEB DELGADO

 Páginas de Servidor

• Páginas producto de un procesamiento por parte del servidor

• Típicamente implementadas mediante páginas con scripts del lado del servidor o mediante módulos compilados

• Potencialmente tienen acceso a todos los recursos del servidor, tales como bases de datos, otros sistemas existentes, etc.

ELEMENTOS DEL PATRÓN CLIENTE WEB DELGADO

 Servidor de Aplicaciones

• Es la maquinaria que permite la ejecución de lógica del lado del servidor

• Se acopla con el servidor Web

• Puede, de hecho, ser una extensión del servidor Web, pero en algunos casos puede ser ejecutado en Web, pero en algunos casos puede ser ejecutado en otra computadora.

 Sistemas existentes

•Componentes a los cuales se tiene acceso mediante interfaces de programación o servidores de aplicación correspondientes

•Ejemplos: Bases de datos, sistemas mercantiles, sistemas SCADA, etc.

(16)

Visualizador

HTTP

ELEMENTOS DEL PATRÓN CLIENTE

WEB DELGADO

Servidor Web Servidor de Aplicaciones

Páginas HTML

Objetos de Negocio/

Sistemas Existentes Páginas de

Servidor

CLIENTE WEB GRUESO

• Extiende el patrón Cliente Web Delgado mediante el uso de scripts (JavaScript) u objetos (Applets/ActiveX) del lado del cliente

• El cliente ejecuta lógica de trabajo

• Es apropiado para ser usado en ambientes donde hay control sobre la configuración del visualizador (e.g.

Intranets)

• Permite establecer interfaces de usuario sofisticadas

(17)

ELEMENTOS DEL PATRÓN CLIENTE WEB GRUESO

 Scripts del lado del cliente

• Código JavaScript, VBScript en las páginas HTML

• El visualizador interpreta el script, el cual tiene acceso al DOM

 Controles ActiveX

 Controles ActiveX

• Objetos COM que pueden ser referenciados por el cliente

• Tienen acceso a todos los recursos del cliente

• Pueden ser usados para incorporar lógica de trabajo y/o implementar interfaces de usuario sofisticadas

• Seguridad mediante firma digital, la cual permite establecer la identidad del autor del componente

ELEMENTOS DEL PATRÓN CLIENTE WEB GRUESO

 Java Applet

• Componente compilado y autocontenido que se ejecuta en el visualizador

• Tienen acceso limitado a los recursos del cliente

• Tienen acceso limitado a los recursos del cliente

• Pueden ser usados para incorporar lógica de trabajo y/o implementar interfaces de usuario sofisticadas

• Seguridad mediante firma digital, la cual permite aumentar el acceso a los recursos del cliente

(18)

Visualizador

HTTP

Applets/

ActiveX

ELEMENTOS DEL PATRÓN CLIENTE WEB GRUESO

Servidor Web Servidor de Aplicaciones

Páginas HTML

Objetos de Negocio/

Sistemas Existentes Páginas de

Servidor HTTP

 Se basa en la utilización de la tecnología Web como parte de un sistema cliente/servidor de objetos distribuidos

 Es apropiado para ser usado en ambientes donde hay control sobre la configuración del

WEB OBJECT

donde hay control sobre la configuración del visualizador y la conexión de red (e.g.

Intranets)

 Se utilizan protocolos de objetos distribuidos

para la comunicación entre clientes y

servidores

(19)

ELEMENTOS DEL PATRON WEB Object

 IIOP (Internet InterORB Protocol)

•Protocolo de comunicación entre objetos CORBA (Common Object Request Broker Architecture) en redes IP

 DCOM (Distributed COM)

•Protocolo para objetos COM (ActiveX) distribuidos

 RMI (Remote Method Invocation)

•Interfaz de programación Java para objetos distribuidos. JRMP (Java Remote Method Protocol) es el protocolo más utilizado, pero también puede utilizarse IIOP.

Visualizador

Applets ActiveX

Cliente

HTTP

ELEMENTOS DEL PATRON WEB DELIVERY

Servidor Web Servidor de Aplicaciones

Páginas HTML

ActiveX Servidor

Objetos de Negocio

Páginas de Servidor

Enterprise JavaBeans DCOM

RMI IIOP

(20)

SEGURIDAD

 Aseguramiento físico de las computadoras que contienen los servicios de la aplicación y de los equipos de red asociados.

 Aseguramiento lógico consta de los siguientes aspectos:

• Autenticación

• Confidencialidad

• Integridad

• No repudiación

CONCEPTOS FUNDAMENTALES

 CERTIFICADO DIGITAL

Documento firmado digitalmente por una entidad (Autoridad de Certificados) que afirma que la clave pública de otra entidad tiene un determinado valor.

 CLAVE PÚBLICA

Número asociado a una entidad que debe

ser conocido por cualquiera que desee

interactuar de manera segura con dicha

entidad. Se utiliza para verificar firmas

digitales.

(21)

CONCEPTOS FUNDAMENTALES

 FIRMA DIGITAL

Secuencia corta de datos que se calcula aplicando un algoritmo sobre otra secuencia de datos (mensaje) que se desea firmar utilizando la clave privada de la entidad firmante. Permite determinar si la secuencia de datos ha sido determinar si la secuencia de datos ha sido modificada durante la transmisión.

 CLAVE PRIVADA

Número asociado a una entidad que sólo debe ser conocido por dicha entidad. Se utiliza para calcular firmas digitales.

MENSAJE FUNCIÓNHASH RESULTADOHASH FUNCIÓNFIRMA FIRMA DIGITAL

CLAVE PRIVADA

MENSAJE

AL

DESTINATARIO

FIRMA DIGITAL

FIRMA DIGITAL

MENSAJE FUNCIÓNHASH RESULTADOHASH

FUNCIÓN VERIFICA CIÓN

CLAVE PÚBLICA

VALIDEZ PRIVADA

DEL FIRMANTE

(22)

AUTENTICACION

 Identificación del cliente con el servidor

 Puede ser implementada por el servidor Web o por la aplicación misma

Web o por la aplicación misma

 Puede manejarse con contraseñas o con certificados digitales

CONFIDENCIALIDAD

 Cifrado de la información transmitida

 La tecnología de cifrado más utilizada es SSL

 SSL es una capa que permite cifrar la

información entre el protocolo de la capa

de aplicación y la capa de transporte

(23)

INTEGRIDAD

 Consiste en garantizar que la información transmitida no sea modificada en el camino

 Este aspecto es cubierto por SSL

 Este aspecto es cubierto por SSL

 Cada mensaje cifrado por SSL tiene adicionalmente códigos de autenticación de mensaje (MAC), los cuales están basados en firmas digitales.

NO REPUDIACION

 Consiste en asegurar que ambas partes en una transacción estén de acuerdo en que ésta se ha llevado a cabo

 Es implementada mediante certificados

 Es implementada mediante certificados

y firmas digitales, que permiten demostrar

que el dueño del certificado estuvo

involucrado en la transacción

Referencias

Documento similar