W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim...

17

Click here to load reader

Transcript of W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim...

Page 1: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

WWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la

heterogeneidad de la información disponible en la Red. Integrando servicios ya existentes en Internet (como el

muy utilizado Gopher por esa época) Berners-Lee desarrolló la arquitectura básica de lo que actualmente es la

Web. El mismo Berners-Lee la describía de la siguiente manera: "La WWW es una forma de ver toda la

información disponible en Internet como un continuo, sin rupturas.Utilizando saltos hipertextuales y

búsquedas, el usuario navega a través de un mundo de información parcialmente creado a mano,

parcialmente generado por computadoras de las bases de datos existentes y de los sistemas de información ".

Web o la web, la red o www de World Wide Web, es básicamente un medio de comunicación de texto,

gráficos y otros objetos multimedia a través de Internet como mecanismo de transporte.

En el 1993 se desarrollo el primero cliente gráfico para la WWW, Mosaic

W3C Y ESTÁNDARES WEB W3C son las siglas de World Wide Web Consortium, un consorcio fundado en 1994 para dirigir a la Web hacia

su pleno potencial mediante el desarrollo de protocolos comunes que promuevan su evolución y aseguren su

interoperabilidad.

El consorcio está compuesto por un grupo de programadores, desarrolladores web, ejecutivos de la industria y

usuarios que ayudan a definir las especificaciones para el desarrollo de la tecnología web.

Un estándar es un conjunto de reglas normalizadas que describen los requisitos que deben ser cumplidos por

un producto o servicio, con el objetivo de establecer un mecanismo base para permitir que distintos

elementos hardware o software sean compatibles entre sí.

Algunos de los estándares Web más conocidos y ampliamente utilizados son:

TML (Hypertext Markup Language), para definir la estructura de los documentos;

XML (extensible Markup Language), que sirve de base para un gran número de tecnologías;

CSS (Cascading Style Sheets), que permite asignar estilos para la representación de los documentos.

Para ayudar a los desarrolladores que deseen utilizar sus Recomendaciones, el W3C ofrece una serie de

herramientas que permiten verificar si se hace una correcta aplicación de estos protocolos. Manuales de

directivas o buenas prácticas de tecnologías concretas, y los validadores sintácticos de los lenguajes, son

ejemplos de estas ayudas.

Page 2: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

CARACTERÍSTICAS GENERALES DE UN SERVICIO WEB.

COMPONENTES Y FUNCIONAMIENTO. El Servidor web se ejecuta en un ordenador manteniéndose a la espera de peticiones por parte de un cliente

(un navegador web) y que responde a estas peticiones adecuadamente, mediante una página web que se

exhibirá en el navegador o mostrando el respectivo mensaje si se detectó algún error.

A modo de ejemplo, al teclear www.wikipedia.org en nuestro navegador, éste realiza una petición HTTP al

servidor de dicha dirección. El servidor responde al cliente enviando el código HTML de la página; el cliente,

una vez recibido el código, lo interpreta y lo exhibe en pantalla.

Como vemos con este ejemplo, el cliente es el encargado de interpretar el código HTML, es decir, de mostrar

las fuentes, los colores y la disposición de los textos y objetos de la página; el servidor tan sólo se limita a

transferir el código de la página sin llevar a cabo ninguna interpretación de la misma.

Web Services (WS) ofrece una un significado estándar para interoperar entre diferentes aplicaciones

de software corriendo en diferentes plataformas y/o marcos de trabajo. El W3C pretende diseñar la

arquitectura, definirla y crear el núcleo de tecnologías que hagan posible los Servicios Web. Esta arquitectura

se basa en los siguientes componentes:

Diseñar un marco de mensajería:

• Simple SOAP: Simple Object Access Protocol es

un protocolo simple para intercambiar

información estructurada en un ambiente

descentralizado y distribuido que contiene una

construcción del mensaje que se pueda

intercambiar con una variedad de protocolos

subyacentes.

• Web Services Addressing: Define un sistema de

características abstractas para referirse a la

dirección final de los mensajes. Esta especificación

permite a los sistemas de mensajería soportar la transmisión del mensaje a través de redes que

incluyen el procesado de nodos tales como gestión final, cortafuegos y pasarelas mediante una forma

de transporte neutro.

• SOAP Message Transmission Optimization (MTOM) Descripción de la Optimización de la Transmisión

del Mensaje. Describe una característica abstracta y una puesta en práctica concreta para optimizar el

formato de la transmisión y/o de la vía de los mensajes SOAP.

Descripción de los Servicios:

• Web Services Description Language (WSDL): Lenguaje de Descripción de los Servicios Web. lenguaje

básico que puede usarse para describir servicios Web basados en el modelo que ofrece el servicio en

cuestión • Web Services Choreography Description Language (WS-CDL): Lenguaje de Descripción de la

Coreografía de los Servicios Web. Es un lenguaje basado en XML que describe colaboraciones peer to

peer de los participantes definiendo.

Page 3: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

Nombres y direcciones (URIs y URLs). Algunos ejemplos de nombres e identificadores son las URL, los nombres de

dominio de Internet, los nombres de archivos… etc.

Se dice que un nombre está resuelto cuando está traducido a datos relacionados

con el recurso en cuestión. La asociación entre un nombre y un objeto se llama

enlace. Los nombres suelen enlazarse a los atributos de los objetos y no a su

implementación. Un atributo es una propiedad de un objeto.

Aunque se acostumbra llamar URLs a todas las direcciones Web, URI es un identificador más completo. Un URI

(Uniform Resource Identifier) se diferencia de un URL en que permite incluir en la dirección una subdirección,

determinada por el “fragmento”. Esto se comprende mejor analizando la estructura de un URI.

URI: El Identificador Universal de Recursos es la forma de encapsular un nombre en un espacio de

nombres ya registrados, etiquetándolo dentro de éste.

URL: Los Localizadores Uniformes de Recursos. Se trata de la codificación del algoritmo de acceso, es

decir, es la dirección que se le asigna al recurso para ser localizado.

URN: El objeto principal de los Nombres Uniformes de Recursos es etiquetar de forma persistente un

recurso con un identificador,

Páginas web, sitios web y aplicaciones web. Páginas Web: Es el nombre de un documento o información electrónica adaptada para la World Wide Web y

que puede ser accedida mediante un navegador para mostrarse en un monitor de computadora o dispositivo

móvil. Esta información se encuentra generalmente en formato HTML o XHTML y proporcionan enlaces a otras

páginas mediante enlaces de hipertexto

Las páginas web frecuentemente incluyen otros recursos como hojas de estilo en cascada, guiones (scripts) e

imágenes digitales, entre otros. Se utiliza el protocolo HTTP o HTTPS para la transferencia de páginas Web

Sitios Web: Es una colección de páginas web relacionadas y comunes a un dominio de Internet o subdominio

en Internet. Todos los sitios web públicamente accesibles constituyen una gigantesca World Wide Web de

información (un gigantesco entramado de recursos de alcance mundial).

A las páginas de un sitio web se accede frecuentemente a través de un URL raíz común llamado portada, que

normalmente reside en el mismo servidor físico. Los URL organizan las páginas en una jerarquía, aunque los

hiperenlaces entre ellas controlan más particularmente cómo el lector percibe la estructura general y cómo el

tráfico web fluye entre las diferentes partes de los sitios.

Aplicaciones Web: Son aquellas aplicaciones que los usuarios pueden utilizar accediendo a un servidor web a

través de Internet o de una intranet mediante un navegador.

Las aplicaciones web son populares debido a lo práctico del navegador web como cliente ligero, a la

independencia del sistema operativo, así como a la facilidad para actualizar y mantener aplicaciones web sin

distribuir e instalar software a miles de usuarios potenciales. Existen aplicaciones como los webmails, wikis,

weblogs, tiendas en línea y la propia Wikipedia que son ejemplos bien conocidos de aplicaciones web.

Page 4: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

3. Protocolo HTTP. El Protocolo de Transferencia de HiperTexto (Hypertext Transfer Protocol) es un protocolo cliente servidor que

articula los intercambios de información entre los clientes Web y los servidores HTTP. La especificación

completa del protocolo HTTP 1/0 está recogida en el RFC 1945. Fue propuesto por Tim Berners-Lee

Desde el punto de vista de las comunicaciones, está soportado sobre los servicios de conexión TCP/IP.

Un proceso servidor escucha en un puerto de comunicaciones TCP (por defecto, el 80), y espera las solicitudes

de conexión de los clientes Web. Una vez que se establece la conexión, el protocolo TCP se encarga de

mantener la comunicación y garantizar un intercambio de datos libre de errores.

HTTP se basa en sencillas operaciones de solicitud/respuesta. Un cliente establece una conexión con un

servidor y envía un mensaje con los datos de la solicitud. El servidor responde con un mensaje similar, que

contiene el estado de la operación y su posible resultado

Funcionamiento básico Cada vez que un cliente realiza una petición a un servidor, se ejecutan los siguientes pasos:

1. Un usuario accede a una URL,

2. El cliente Web descodifica la URL, separando sus diferentes partes. Así identifica el protocolo de acceso, la

dirección DNS o IP del servidor, el posible puerto opcional (el valor por defecto es 80) y el objeto requerido del

servidor.

3. Se abre una conexión TCP/IP con el servidor, llamando al puerto TCP correspondiente. Se realiza la petición.

Para ello, se envía el comando necesario (GET, POST, HEAD,…), la dirección del objeto requerido(URN), la

versión del protocolo HTTP empleada (casi siempre HTTP/1.0) y un conjunto variable de información, que

incluye datos sobre las capacidades del browser, datos opcionales para el servidor,…

4. El servidor devuelve la respuesta al cliente. Consiste en un código de estado y el tipo de dato MIME de la

información de retorno, seguido de la propia información.

5. Se cierra la conexión TCP.

Page 5: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

- Mensajes HTTP.

En una comunicación HTTP sólo existen dos tipos de mensajes, los de petición (request) y los de respuesta

(reply).

Solicitud HTTP

Una solicitud HTTP es un conjunto de líneas que el navegador envía al servidor. Incluye:

Una línea de solicitud: es una línea que especifica el tipo de documento solicitado, el método que se

aplicará y la versión del protocolo utilizada.

Los campos del encabezado de solicitud: es un conjunto de líneas opcionales que permiten aportar

información adicional sobre la solicitud y/o el cliente (navegador, sistema operativo, etc

El cuerpo de la solicitud: es un conjunto de líneas opcionales que, por ejemplo, permiten que se

envíen datos por un comando POST durante la transmisión de datos al servidor utilizando un formulario.

Respuesta HTTP

Una respuesta HTTP es un conjunto de líneas que el servidor envía al navegador. Está constituida por: Incluye:

Una línea de estado: es una línea que especifica la versión del protocolo utilizada y el estado de la

solicitud en proceso mediante un texto explicativo y un código.

Los campos del encabezado de respuesta: es un conjunto de líneas opcionales que permiten aportar

información adicional sobre la respuesta y/o el servidor

El cuerpo de la respuesta: contiene el documento solicitado.

Métodos de petición: GET, POST, HEAD, PUT, DELETE y TRACE.

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 la recuperación de meta-información escrita en los encabezados de respuesta, sin

tener que transportar todo el contenido.

GET: Pide una representación del recurso especificado. Por seguridad no debería ser usado por aplicaciones

que causen efectos ya que transmite información a través de la URI agregando parámetros a la URL.

POST: Somete los datos a que sean procesados para el recurso identificado. Los datos se incluirán en el cuerpo

de la petición. Esto puede resultar en la creación de un nuevo recurso o de las actualizaciones de los recursos

existentes o ambas cosas.

PUT: Sube, carga o realiza un upload de un recurso especificado (archivo), es el camino más eficiente para

subir archivos a un servidor. La desventaja del método PUT es que los servidores de hosting compartido no lo

tienen habilitado.

DELETE: Borra el recurso especificado.

TRACE: Este método solicita al servidor que envíe de vuelta en un mensaje de respuesta, se utiliza con fines de

comprobación y diagnostico.

Page 6: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

- 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.

Connection (conexión): Permite especificar diferentes opciones para la conexión. Por ejemplo:

Connection: close

Content-Language (idioma del contenido) Esta cabecera indica el idioma de los destinatarios del recurso

Content-Length (longitud del contenido) Indica la longitud del cuerpo del recurso, expresada en número de

octetos.

Content-Location (localización del contenido) Dirección complementaria que ofrece el servidor en su

respuesta. Esta nueva dirección (una URI absoluta o relativa) no corrige la dirección original del recurso

solicitado por el cliente, sino que ofrece una ruta a un recurso que complementa al solicitado originalmente.

Content-Type (tipo de contenido) Indica, como su nombre indica, el tipo de contenido del recurso.

Date (fecha) Indica la fecha de creación del recurso. Tiene la forma:

Expect (espera) Mediante esta cabecera, el cliente indica qué tipo de respuesta espera del servidor. Si el

servidor no está preparado para responder como el cliente espera, debe indicarlo mediante el envío de un

código de estatus 417 (Expectation Failed).

Expires (expiración) Indica la fecha a partir de la cual el recurso debe considerarse obsoleto.

IP (remote adress) No es estrictamente una cabecera del protocolo HTTP, sino del protocolo TCP/IP. Expresa la

identificación numérica de una máquina.

Host (servidor) Nombre del servidor.

Location (localización) Mediante este campo el servidor indica la dirección (la URL) de un recurso cuando no se

encuentra en la dirección en que se ha solicitado. De esta forma, el servidor invita al navegador (o al software

del cliente en general) a que se redirija a la nueva localización.

Request (solicitud) Indica el fichero solicitado y el método y versión del protocolo que se van a emplear para

realizar la conexión.

Status Code (código de estado) Mediante el código de estado el servidor informa al navegador sobre cómo ha

resuelto la solicitud de un documento. Errores 400, 500 y 600

User-Agent (agente de usuario) El user-agent identifica el software de la máquina cliente

Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)

Page 7: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

Códigos de estado y error. La línea de estado es la primera línea de la respuesta y consiste en la versión de protocolo que se utiliza,

seguida de una indicación de estado numérica a la que puede ir asociada una frase explicativa. El código de

estado es un número de 3 dígitos que indica si la petición ha sido atendida satisfactoriamente o no, y en caso

de no haber sido atendida, indica la causa. Los códigos se dividen en cinco clases definidas por el primer dígito

del código de estado. Así tenemos:

1xx: Informativo. La petición se recibe y sigue el proceso.

2xx: éxito. La acción requerida por la petición ha sido recibida, entendida y aceptada.

3xx: Redirección. Para completar la petición se han de tomar más acciones.

4xx: Error del cliente. La petición no es sintácticamente correcta y no se puede llevar a cabo.

5xx: Error del servidor. El servidor falla al atender la petición que aparentemente es correcta.

• Error 200: Ok. Correcto.

• Error 201: Created. Creado.

• Error 204: No content. No hay contenido.

Códigos mediante los cuales indicamos una redirección al usuario, o que la página actual ha cambiado de

dirección.

• Error 301: Moved Permanently. Movido permanentemente.

• Error 307: Moved Temporarily. Movido temporalmente.

• Error 303: See others. Ver otros.

• Error 304: Not modified. No modificado.

• Error 300: Multiple choices. Múltiples opciones.

Errores de la comunicación en la parte del usuario (cliente).

• Error 400: Bad request. Petición errónea.

• Error 401: Unauthorized. No autorizado.

• Error 403: Forbidden. Prohibido.

• Error 404: Not found. No se encuentra.

• Error 405: Method not allowed. Método no permitido.

• Error 414: Request URI too long. Dirección demasiado larga.

Errores de la comunicación en la parte del servidor.

• Error 500: Internal Server Error. Error interno del servidor.

• Error 501: Not implemented. No implementado.

• Error 503: Service Unavailable. Servicio no disponible.

Page 8: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

- Almacenamiento en cache. Se llama caché web a la caché que almacena documentos web Un caché web almacena copias de los

documentos que pasan por él, de forma que subsiguientes peticiones pueden ser respondidas por el propio

caché, si se cumplen ciertas condiciones.

TIPOS DE CACHÉ:

Las cachés web pueden utilizarse de diversas formas.

Cachés de agente de usuario (User-Agent), como las presentes en los navegadores web, son cachés privados,

que funcionan solo para un único usuario. También existen paquetes específicos que se instalan como proxy

local y actúan como caché además de realizar otras tareas,

Los intermediarios en la comunicación cliente-servidor también pueden implementar cachés compartidos

(también llamadas proxy-cachés directos) que sirvan páginas a varios usuarios. Los proxy-cachés suelen ser

usados por los proveedores de servicios de Internet (ISP), universidades y empresas para ahorrar ancho de

banda.

Las cachés pasarela (llamadas también proxy-cachés inversos o aceleradores web) funcionan a cargo del

propio servidor original, de forma que los clientes no distinguen unos de otros. Puede hacerse funcionar

conjuntamente varias cachés pasarela para implementar una Content Delivery Network (CDN)

Varios cachés pueden ser coordinados entre sí con las ayuda de protocolos específicos tales como ICP o HTCP.

Control de los cachés web

El protocolo HTTP define tres mecanismos básicos para controlar las cachés:

Frescura, que permite que una respuesta sea usada sin comprobar de nuevo el servidor origen, y puede ser

controlada tanto por el servidor como el cliente.

Validación, que puede usarse para comprobar si una respuesta cacheada sigue siendo buena tras caducar.

Invalidación, que normalmente es un efecto secundario de otra petición que pasa por la caché.

- Redirecciones. ¿Cuándo se necesita una redirección web?

Existen diferentes casos de real necesidad para los cuales se debe de usar la redirección:

por ejemplo en caso de cambio en la Url de nuestro portal, variación del nombre de un fichero, o cambio de

carpeta en la arborescencia de nuestro sitio web.

Su funcionamiento:

Necesitamos que el encabezamiento enviado por la página consultada corresponda a su estatus.

Por ejemplo, si una página ha cambiado de lugar en nuestro portal, es de vital importancia que la antigua Url

haga un redireccionamiento hacia la nueva, utilizando un encabezamiento HTTP que precise que esta página

ha cambiado de manera definitiva de dirección (código 301) – Esto permitirá al robot el no volver a indexar

nunca la antigua Url, poniendo al día su base de datos aplicando la nueva Url a la página en cuestión. Si no

aplicamos la redirección desde la antigua Url, el robot y los visitantes obtendrán un error 404.

Page 9: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

- Comprensión. Es una capacidad que se puede utilizar en servidores web y clientes web para hacer un mejor uso de ancho de

banda disponible, y proporcionar mayores velocidades de transmisión entre ambos.

Los datos HTTP se comprimen antes de ser enviados desde el servidor. Para ello el navegador del cliente

informa al servidor web de los métodos de compresión que soporta. El servidor en base a dichos valores,

comprimirá el contenido antes de ser enviado al cliente.

Existen diferentes esquemas de compresión de contenido, pero los más comunes son deflate y gzip.

La compresión se da del servidor al cliente, no del cliente al servidor. El cliente al momento de enviar una

petición envía en su cabecera la línea:

Accept-Encoding: gzip, deflate

Esto le permite saber al servidor que el cliente soporta http comprimido, al momento que el servidor entrega

los datos añade en la cabecera.

- Cookies. Una cookie, se utiliza para; un sitio web de origen, enviar información de estado del navegador del usuario y

para el navegador, volver la información de estado para el sitio de origen. El Estado información puede ser

utilizada para la autenticación, identificación de un usuario de la sesión, las preferencias del usuario, cesta de

la compra contenido, o cualquier cosa que se puede lograr a través de datos de texto almacenar en el

ordenador del usuario.

Las cookies no pueden ser programadas, no pueden llevar virus, y no pueden instalar programas maliciosos en

el ordenador anfitrión. Sin embargo, pueden ser utilizados por el software espía.

- Autenticación. Es el proceso de identificar si un cliente es apto para tener acceso a un recurso. El protocolo HTTP soporta la

autenticación como un medio de negociar el acceso a un recurso seguro.

La solicitud inicial de un cliente es normalmente una solicitud anónima, que no contiene ninguna información

de autenticación. Las aplicaciones de servidor HTTP pueden denegar la solicitud anónima indicando que se

requiere la autenticación.

AUTENTICACIÓN BÁSICA

Cuando el usuario accede a un recurso del servidor web protegido mediante autenticación básica, tiene lugar

el siguiente proceso:

1. El navegador presenta al usuario la ventana de autenticación, para que introduzca su nombre y contraseña.

2. El navegador intenta establecer una conexión con el servidor utilizando esta información.

3. Si el servidor rechaza la información de autenticación, el navegador le presenta nuevamente la ventana al

usuario hasta que éste introduce por fin una contraseña válida o cierra la ventana.

4. Cuando el servidor web verifica con éxito los datos de autenticación, se establece la conexión de acceso al

recurso protegido.

Page 10: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

AUTENTICACIÓN MEDIANTE RESÚMENES O DIGEST

Dado que el método anterior envía las contraseñas en claro, no resulta muy adecuado cuando las exigencias

de seguridad son elevadas. Para paliar este inconveniente, además de cifrar el canal con SSL, otra alternativa

consiste en enviar un resumen criptográfico de la contraseña (un hash) en vez de la propia contraseña, de la

siguiente forma:

1. El servidor envía al navegador cierta información que será utilizada en el proceso de autenticación.

2. El navegador añade esta información a su nombre de usuario y contraseña, junto con otra información

adicional, y crea un resumen del conjunto. Esta información adicional persigue el cometido de impedir ataques

de reactuación

3. Se envía en claro tanto el resumen como la información adicional al servidor

4. El servidor añade esta información adicional a una copia en claro de la contraseña del cliente y crea el

resumen del conjunto.

5. El servidor compara el resumen que ha creado con el que le ha llegado del navegador.

6. Si ambos números coinciden, se le concede acceso al usuario.

AUTENTICACIÓN HTTPS

El uso del formato HTTPS para enviar mensajes garantiza la autenticación de los usuarios que necesitan acceso

a los recursos por medio de un servidor Web estableciendo una conexión de nivel de sockets seguro (SSL) para

conseguir una comunicación segura entre un remitente y un destinatario. El emisor es siempre considerado

como cliente SSL y el destinatario como servidor SSL independientemente de si el equipo está ejecutando

Message Queue Server o software de cliente..

En la autenticación HTTPS se utilizan dos tipos de certificados:

Certificados de servidor. Este certificado contiene información sobre el servidor que permite a un cliente

identificar el servidor antes de compartir información confidencial.

Certificados de cliente. Este certificado contiene información personal sobre el usuario e identifica el

servidor al cliente de SSL (el remitente).

- Conexiones persistentes. Las conexiones persistentes del HTTP, también llamadas HTTP keep-alive, o reutilización de la conexión del

HTTP, son la idea de usar la misma conexión del TCP para enviar y recibir múltiples Peticiones del

HTTP/responses, en comparación con abrir una nueva conexión para cada par de la petición/respuesta.

Permiten que varias peticiones y respuestas sean transferidas usando la misma conexión TCP.

Se usan por omisión en HTTP 1.1.

Si se envía la cabecera “Connection: close”, el servidor cierra la conexión después de la respuesta.

Un servidor puede cerrar la conexión antes de enviar todas las respuestas.

El servidor cerrará las conexiones inactivas pasado un plazo de tiempo

El ahorro del establecimiento de una conexión TCP para cada conexión Web reduce el tiempo en el caso de las

conexiones secuenciales. El tiempo de respuesta de las conexiones paralelas persistentes es el mismo que el

de las conexiones no persistentes, aunque la carga para el servidor suele ser menor cuando son persistentes.

Page 11: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

4. Configuración de un servidor Web.

Un servidor web es un programa informático que procesa una aplicación del lado del servido realizando

conexiones bidireccionales y/o unidireccionales y síncronas o asíncronas con el cliente generando una

respuesta en cualquier lenguaje o Aplicación del lado del cliente.

Instalación, configuración y uso. La instalación se basa en siguiente, siguiente hasta que lleguemos a una pantalla donde nos empieza a pedir

datos

Datos a configurar durante la instalación:

- Network Domain: En esta casilla tenemos varias opciones; lo más normal es que queramos instalar el

servidor para usarlo nosotros solos, si este es tu caso en esta casilla pon "localhost" (sin las comillas).

Si por el contrario deseas que el resto del mundo mundial pueda ver las maravillas que puedes hacer con

PHP+MySQL pues en esta casilla debes poner tu dirección IP.

- Server Name: Es el nombre que quieres que tenga tu servidor web, por ejemplo My_Server.

- Administrator´s Email adress : aquí tienes que poner la dirección de correo electrónico del administrador del

servidor web; vamos la tuya, por ejemplo: [email protected]

Después de haber rellenado estás casillas nos aparecen dos opciones:

- For all users in port 80, as a service: instala Apache como un servicio de Windows, es decir que Apache se

ejecuta al iniciar el ordenador; eligiendo esta opción el servidor se pone a la escucha en el puerto 80.

- Only for the current user , on port 8080, when started manually: instala Apache como un programa normal,

para ejecutar el servidor lo elegimos en el menú de inicio y se abre una ventana para indicar que se está

ejecutando Apache.

Esta es la típica ventana en la escogemos si queremos hacer una instalación típica o personalizada, hacemos

clic en la instalación típica (typical) y luego en el botón next

Aquí nos dan a elegir el directorio donde deseamos instalar el Apache, por defecto se instala en Archivos de

programa, pero nosotros para no complicarnos mucho la vida, lo vamos a instalar en c:\Apache\ Para cambiar

el directorio de instalación hacemos clic en

Una vez instalado el servidor deberemos de lanzarlo (iniciarlo) y desde un navegador acceder a la ip de acceso

que configuramos http://localhost:80 http://dir_ip:8080

Page 12: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

- Autenticación y control de acceso. La autenticación es el proceso de identificar si un cliente es apto para tener acceso a un recurso. El protocolo

HTTP soporta la autenticación como un medio de negociar el acceso a un recurso seguro.

La solicitud inicial de un cliente es normalmente una solicitud anónima, que no contiene ninguna información

de autenticación. Las aplicaciones de servidor HTTP pueden denegar la solicitud anónima indicando que se

requiere la autenticación. La aplicación de servidor envía encabezados de la autenticación de WWW para

indicar los esquemas de autenticación soportados. Este documento describe varios esquemas de autenticación

para HTTP y aborda su suporte en Windows Communication Foundation (WCF).

El control de acceso constituye una poderosa herramienta para proteger la entrada a un web completo o sólo

a ciertos directorios concretos e incluso a ficheros o programas individuales.

Este control consta generalmente de dos pasos:

En primer lugar, la autenticación, que identifica al usuario o a la máquina que trata de acceder a los

recursos, protegidos o no.

En segundo lugar, procede la cesión de derechos, es decir, la autorización, que dota al usuario de privilegios

para poder efectuar ciertas operaciones con los datos protegidos, tales como leerlos, modificarlos, crearlos,

etc.

Por defecto, todas las páginas y servicios del servidor web se pueden acceder anónimamente, es decir, sin

necesidad de identificarse ante el servidor y sin ningún tipo de restricción.

- Registro y monitorización del servicio Web. Los archivos de registros o archivos log como se conocen comúnmente, son archivos en donde se van

almacenando un registro de todos los eventos que ocurren en un sistema durante un periodo de tiempo en

particular. Estos archivos son usados tanto por el sistema operativo como por las aplicaciones o demonios

(procesos) para registrar datos o información sobre un evento en particular. En un sistema Linux podemos

encontrar estos archivos de registro o logs en la carpeta /var/log y en equipos Windows en el visor de

sucesos.

En cambio los registros de los servidores Web quedan especificados en diferentes directivas en sus ficheros de

configuración, por ejemplo apache posee varios registros:

- De Error: Apache enviará cualquier información de diagnóstico y registrará cualquier error que

encuentre al procesar peticiones al archivo de registro seleccionado. ErrorLog y LogLevel

- De Acceso: información sobre todas las peticiones que procesa. CustomLog, LogFormat, SetEnvIf

- De ficheros PIF, actividad de Script y Actividad del módulo Rewrite

Page 13: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

- Tipos MIME. Multipurpose Internet Mail Extensions o MIME (en español "extensiones multipropósito de correo de

internet") son una serie de especificaciones dirigidas al intercambio de archivos a través de Internet (texto,

audio, vídeo, etc.) de forma transparente para el usuario. Una parte importante del MIME está dedicada a

mejorar las posibilidades de transferencia de texto en distintos idiomas y alfabetos. En sentido general

las extensiones de MIME van encaminadas a soportar:

Texto en conjuntos de caracteres distintos de US-ASCII;

adjuntos que no son de tipo texto;

información de encabezados con conjuntos de caracteres distintos de ASCII.

Prácticamente todos los mensajes de correo electrónico escritos por personas en Internet y una

proporción considerable de estos mensajes generados automáticamente son transmitidos en formato

MIME a través de SMTP. Los mensajes de correo electrónico en Internet están tan cercanamente

asociados con el SMTP y MIME que usualmente se les llama mensaje SMTP/MIME.

Los tipos de contenido definidos por el estándar MIME tienen gran importancia también fuera del

contexto de los mensajes electrónicos. Ejemplo de esto son algunos protocolos de red tales como HTTP de

la Web. HTTP requiere que los datos sean transmitidos en un contexto de mensajes tipo e-mail aunque los

datos pueden no ser un e-mail propiamente dicho.

- WebDAV. El objetivo de WebDAV es hacer de la World Wide Web un medio legible y editable, en línea con la visión

original de Tim Berners-Lee. Este protocolo proporciona funcionalidades para crear, cambiar y mover

documentos en un servidor remoto (típicamente un servidor web). Esto se utiliza sobre todo para permitir la

edición de los documentos que sirve un servidor web, pero puede también aplicarse a sistemas de

almacenamiento generales basados en web, que pueden ser accedidos desde cualquier lugar. La

mayoría de los sistemas operativos modernos proporcionan soporte para WebDAV,

WebDAV añade los siguientes métodos a HTTP:

PROPFIND - Usado para recuperar propiedades, almacenadas como XML, desde un recurso. También está

sobrecargado para permitir recuperar la estructura de jerarquía de directorios

PROPPATCH - Usado para cambiar y borrar múltiples propiedades de un recurso en una simple

operación atómica

MCOL - Usado para crear colecciones

COP - Usado para copiar un recurso desde un URI a otro.

MOVE - Usado para mover un recurso desde un URI a otro.

LOC - Usado para bloquear (lock) un recurso. WebDAV soporta tanto bloqueos compartidos como

exclusivos.

UNLOC - Para desbloquear un recurso.

El grupo de trabajo WebDAV está todavía trabajando en unas cuantas extensiones a WebDAV,

incluyendo: control de redirecciones, enlaces, límites de espacio en disco y mejoras en la especificación base

para que alcance el nivel de madurez del resto de estándares de Internet.

Page 14: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

5. Navegadores Web.

Aplicación que opera a través de Internet, interpretando la información de archivos y sitios web para que

podamos ser capaces de leerla

La funcionalidad básica de un navegador web es permitir la visualización de documentos de texto,

posiblemente con recursos multimedia incrustados. Los documentos pueden estar ubicados en la

computadora en donde está el usuario, pero también pueden estar en cualquier otro dispositivo que esté

conectado a la computadora del usuario o a través de Internet, y que tenga los recursos necesarios para la

transmisión de los documentos (un software servidor web).

El seguimiento de enlaces de una página a otra, ubicada en cualquier computadora conectada a la

Internet, se llama navegación, de donde se origina el nombre navegador del original en inglés, browser,

aunque su uso es minoritario.

Algunos navegadores web incluyen una Suite. Estas Suite disponen de varios programas integrados para

leer noticias de Usenet y correo electrónico mediante los protocolos NNTP, IMAP y POP.

6. Seguridad del protocolo HTTP:

- Protocolo HTTPS:443 Hyper Text Transfer Protocol Secure, es un protocolo de aplicación basado en el protocolo HTTP, destinado a la

transferencia segura de datos de HiperTexto, es decir, es la versión segura de HTTP.

Es utilizado principalmente por entidades bancarias, tiendas en línea, y cualquier tipo de servicio que requiera

el envío de datos personales o contraseñas.

La idea del protocolo, es crear un canal seguro sobre una red insegura. Proporcionando seguridad frente

ataques eavesdropping y man in the midle, siempre que tenga un método de cifrado adecuados y un

certificado del servidor validos.

La confianza de este protocolo proviene de un servidor de autoridad de certificación que viene preinstalado en

el software del navegador.

Una conexión HTTPS es validada cuando se cumple las siguientes condiciones:

El usuario confía en la Autoridad de certificación para websites legítimos

El website proporciona un certificado valido (en caso de fallo, la mayoría de los navegadores muestran un

mensaje de alerta), lo que significa que está firmado por una autoridad confiable.

El certificado identifica correctamente al website.

Que el usuario confié en que la capa de cifrado del protocolo (TLS o SSL) es inquebrantable a ataques

informáticos.

Diferencias a generales con el protocolo HTTP

A nivel de red el protocolo HTTP opera en la capa más alta del Modelo OSI, la capa aplicación; mientras que el

protocolo HTTPS opera en una subcapa más baja, cifrando un mensaje HTTP previo a la transmisión y

descifrando un mensaje una vez recibido.

Page 15: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

- Conexiones seguras: SSL , TSL. Son protocolos criptográficos que proporcionan comunicaciones de seguridad en el Internet. TLS y SSL cifra los

segmentos de conexiones de red por encima de la capa de transporte, utilizando criptografía asimétrica de

clave, cifrado simétrico de la vida privada y los códigos de autenticación de mensajes para la integridad del

mensaje.

SSL proporciona autenticación y privacidad de la información entre extremos sobre Internet mediante el uso

de criptografía. Habitualmente, sólo el servidor es autenticado (es decir, se garantiza su identidad) mientras

que el cliente se mantiene sin autenticar.

SSL implica una serie de fases básicas:

Negociar entre las partes el algoritmo que se usará en la comunicación

Intercambio de claves públicas y autenticación basada en certificados digitales

Cifrado del tráfico basado en cifrado simétrico

Durante la primera fase, el cliente y el servidor negocian qué algoritmos criptográficos se van a usar. Las

implementaciones actuales proporcionan las siguientes opciones:

Para criptografía de clave pública: RSA, Diffie-Hellman, DSA;

Para cifrado simétrico: RC4, IDEA , DES, 3DES y AES;

Con funciones hash: MD5 o de la familia SHA.

TLS (Transport Layer Security) es una evolución del protocolo SSL (Secure Sockets Layer), es un protocolo

mediante el cual se establece una conexión segura por medio de un canal cifrado entre el cliente y servidor.

Así el intercambio de información se realiza en un entorno seguro y libre de ataques.Estos protocolos

permiten prevenir escuchas (eavesdropping), evitar la falsificación de la identidad del remitente y mantener la

integridad del mensaje en una aplicación cliente-servidor.

- Gestión de certificados y acceso seguro con HTTPS. HTTPS es una combinación del protocolo HTTP y protocolos criptográficos (SSL/TTL). Se emplea para lograr

conexiones más seguras en la WWW, generalmente para transacciones de pagos o cada vez que se

intercambie información sensible (por ejemplo, claves) en internet. De esta manera la información sensible, en

el caso de ser interceptada por un ajeno, estará cifrada. El nivel de protección que ofrece depende de la

corrección de la implementación del navegador web, del software y de los algoritmos criptográficos

soportados. Además HTTPS es vulnerable cuando es aplicado a contenido estático públicamente disponible

Adquiriendo Certificados

Las organizaciones pueden también ser su propia autoridad de certificación, particularmente si son

responsables de establecer acceso a navegadores de sus propios. Estas pueden fácilmente agregar copias de

su propio certificado firmado a los certificados de confianza distribuidos con el navegador.

Usar un Control de Acceso

El sistema puede también ser usado para la Autenticación de clientes con el objetivo de limitar el acceso a un

servidor web a usuarios autorizados. Para hacer esto, el administrador del sitio típicamente crea un certificado

para cada usuario, un certificado que es guardado dentro de su navegador. Normalmente, este contiene el

nombre y la dirección de correo del usuario autorizado y es revisado automáticamente en cada reconexión

para verificar la identidad del usuario, potencialmente sin que cada vez tenga que ingresar una contraseña.

Page 16: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

7. Almacenamiento virtual de sitios web: «Hosts» virtuales.

El término Hosting Virtual se refiere a hacer funcionar más de un sitio web en una sola máquina. Los sitios web

virtuales pueden estar "basados en direcciones IP", lo que significa que cada sitio web tiene una dirección IP

diferente, o "basados en nombres diferentes", lo que significa que con una sola dirección IP están funcionando

sitios web con diferentes nombres (de dominio). El hecho de que estén funcionando en la misma máquina

física pasa completamente desapercibido para el usuario que visita esos sitios web.

Apache fue uno de los primeros servidores web en soportar hosting virtual basado en direcciones IP. Las

versiones 1.1 y posteriores de Apache soportan hosting virtual (vhost) basado tanto en direcciones IP como

basado en nombres.

- Alojamiento virtual basado en IPs.

El hosting virtual basado en IPs usa la dirección IP de la conexión para determinar qué host virtual es el que

tiene que servir. Por lo tanto, necesitará tener diferentes direcciones IP para cada host. Cuando se utiliza el

alojamiento virtual basado en IPs, cada apunta a una dirección IP única. El servidor web está configurado con

múltiples interfaces de red físicas, interfaces de red virtuales en la misma interfaz física o varias direcciones IP

en una interfaz.

El servidor web puede abrir por separado socket de escucha para cada dirección IP o se puede escuchar en

todas las interfaces con un solo socket y obtener la dirección de recepción de la conexión TCP después de la

aceptación de las conexiones. El cliente no está involucrado en este proceso y por lo tanto no hay problemas

de compatibilidad.

La desventaja de este enfoque es que el servidor necesita una dirección IP diferente para cada sitio web. Esto

aumenta la carga administrativa y contribuye al agotamiento de direcciones IPv4.

- Alojamiento virtual basado en nombres.

Es normalmente más sencillo, porque solo necesita configurar su servidor de DNS para que localice la dirección

IP correcta y entonces configurar Apache para que reconozca los diferentes nombres de host. Usando hosting

virtual basado en nombres también se reduce la demanda de direcciones IP.

El hosting virtual basado en nombres no se puede usar junto con SSL por la naturaleza del protocolo SSL.

- Alojamiento virtual basado en puertos.

El número de puerto por defecto para HTTP es 80. Sin embargo, la mayoría de servidores web se puede

configurar para funcionar en casi cualquier número de puerto, siempre que el número de puerto no está en

uso por cualquier otro programa en el servidor.

Sin embargo, este es un enfoque de usuario poco amigable. a que los usuarios no recordarán el puerto

específico de acceso a parte de parecer poco profesionales y que los firewall bloquean la gran mayoría de

puertos

Page 17: W3C Y ESTÁNDARES WEB - · PDF fileWWW – World Wide Web Por el 1989 Tim Berners-Lee se dedicaba a encontrar una solución efectiva al problema de la proliferación y la heterogeneidad

- Alojamientos híbridos.

Por medio de un software simulamos dividir una computadora en número de servidores que deseemos. Así,

cada servidor virtual trabaja como si fuera una computadora independiente con un alojamiento dedicado. La

diferencia con los servidores compartidos es que en éstos sólo abrimos carpetas en el disco duro para las

diferentes páginas.

No son tan baratos como los compartidos, ni tan caros como los dedicados. Sin tantas ventajas técnicas como

éstos últimos, pero sin tantos inconvenientes como los primeros. Una buena elección intermedia.

Debido a la cantidad de clientes de vitalización generalmente se ejecuta en una sola máquina, en general esta

práctica está limitada el tiempo de procesador, memoria RAM y espacio en disco.