|
|
|
|
|
Fundamentos de la webEl éxito de la web se basa en dos factores fundamentales: el protocolo HTTP y el lenguaje HTML. El primero permite una implementación sencilla de un sistema de comunicaciones que permite enviar cualquier ficehro de forma fácil, simplificando el funcionamiento del servidor y posibilitando que servidores poco potentes atiendan cientos o miles de peticiones y reduzcan de este modo los costes de despliegue. El segundo, el lenguaje HTML, proporciona un mecanismo sencillo y muy eficiente de creación de páginas enlazadas. El protocolo HTTPEl protocolo HTTP (Hypertext Tranfer Protocol) es el protocolo principal de la World Wide Web. Es un protocolo simple, orientado a conexión y sin estado. Está orientado a conexión proque emplea para su funcionamiento un protocolo de comunicaciones (TCP, o Transport Control Protocol) de modo conectado, que establece un canal de comunicaciones entre el cliente y el servidor, por el cual pasan los bytes que constituyen los datos de la transferencia, en contraposición a los protocolos denominados de datagrama (o no orientados a conexión) que dividen la serie de datos en pequeños paquetes (o datagramas) antes de enviarlos, pudiendo llegar por diversas vías del servidor al cliente. Este protocolo no mantiene estado o, dicho de otro modo, cada transferencia de datos es una conexión diferente a la anterior, sin relación entre ellas. Por ejemplo, para transferir una página web debemos enviar el código HTML del texto, por un lado, y las imágenes que la componen por otro, pues en la especificación inicial 1.0 del protocolo HTTP se abrían y utilizaban tantas conexiones como componentes tenía la página, trasfiriéndo cada componente por conexiones diferentes . Existe una variante de HTTP denominada HTTPS (S significa "secure", o "seguro") que utiliza el protocolo de seguridad SSL (o "Secure Socket Layer") para cifrar y autenticar el tráfico de datos, muy utilizada por los servidores web orientados al comercio electrónico o por aquellos que albergan información de tipo personal o confidencial. De forma esquemática, el funcionamiento de HTTP es como sigue: el cliente establece una conexión TCP con el servidor, hacia el puerto por defecto para el protocolo HTTP (o el indicado expresamente en la conexión), envía una orden HTTP de solicitud de un recurso (añadiendo algunas cabeceras con información) y, utilizando la misma conexión, el servidor responde enviando los datos solicitados y, además, añadiendo algunas cabeceras con información. El protocolo también define la forma de codificar el paso de parámetros entre dos páginas, la tunelización de las conexiones (para sistemas de firewall), define la posible existencia de servidores intermedios de caché, etc. Las directivas que se utilizan para la petición de información según se definen en HTTP 1.1 (la versión considerada estable y ampliamente utilizada) son:
Se detallan a continuación algunos de entre estos comandos, ya que su comprensión es básica para desarrollar aplicaciones web. Se debe destacar que todos los recursos servidos mediante HTTP deberán ser referenciados utilizando una URL ("Universal Resource Locators"). Peticiones en el protocolo HTTP: GET y POSTLas peticiones en HTTP se pueden realizar utilizando 2 métodos. El método GET, cuando envía parámetros con la petición, lo hace codificándolos en la URL. El método POST lo hace como parte del cuerpo de la petición. Una petición GET tiene este formato: GET /index.html HTTP/1.1 La petición está formada por:
Línea de petición La línea de la petición está formada por estos elementos:
Cabecera de lapetición Contiene información adicional que ayuda al servidor a procesar correctamente la petición. La información se facilita en forma de: Identificador: valor Los identificadores más importantes son:
Parámetros de la petición Una petición HTTP puedecontener parámetros, por ejemplo, como respuesta a un formulario de registro o a una selección de entre los productos en una tienda virtual. Tales parámetros pueden pasarse de 2 formas:
Para codificar los parámetros como parte incluida en la URL, éstos deben añadirse a la URL detrás del nombre del recurso, separándolos de éste mediante el caracter "?". Los parámetros se separan entre sí mediante el caracter "&". Los espacios se sustituyen por el caracter "+". Los caracteres especiales (los mencionados antes de "&", "+" y "?", y los caracteres que no son imprimibles, etc.) se representan mediante "%xx", donde "xx" representa el código en codificación ASCII en hexadecimal del caracter en cuestión. Por ejemplo: http://www.ejemplo.com/indice.jsp? que en la petición HTTP quedaría: GET /indice.jsp?nombre=Fulano+Mengano&OK=1 HTTP/1.0 Para pasar los parámetros como datos añadidos, se envían al servidor en el cuerpo del mensaje de la petición. Por ejemplo, siguiendo con la petición: POST /indice.jsp HTTP/1.0 Se debe destacar que para pasar los parámetros en el cuerpo de la petición, ésta se debe realizar como POST (no como GET), aunque una petición POST puede llevar parámetros en la línea de petición (igual que una GET). Los parámetros pasados en el cuerpo de la petición están codificados igual que si los pasamos mediante la URL, o pueden usar una codificación específica derivada del formato MIME ("Multipurpose Internet Mail Extensions"), conocida como codificación multiparte. El ejemplo anterior en formato multiparte quedaría: POST /indice.jsp HTTP/1.0 Esta codificación es propia y exclusiva del método POST. Se emplea para el envío de ficheros al servidor. Respuestas en el protocolo HTTP Las respuestas en el protocolo HTTP son similares a las peticiones. Una respuesta estándar sería similar a esto: HTTP/1.1 200 OK Podemos observar que la primera línea responde con la versión del protocolo utilizada para enviar la página, seguida por un código de retorno y lo que se denomina una frase de retorno. Después del estatus aparecen unos campos de control, que tienen el mismo formato que en las cabeceras de la petición. A continuación se incluye el contenido del recursosolicitado. El lenguaje HTMLEl otro factor principal del éxito del World Wide Web ha sido el lenguaje HTML ("Hypertext Mark-up Language", o "Lenguaje de Marcado de Hipertexto"), que es un lenguaje de marcas (se insertan marcas o etiquetas en el texto) que permite representar de forma rica el contenido y referenciar otros recursos (por ejemplo, imágenes), o enlaces a otros documentos (que es, precisamente, la característica más destacada de la web), mostrar formularios para su posterior procesamiento, etc. El lenguaje HTML se encuentra en la actualidad en la versión 4.01 y empieza a proporcionar algunas funcionalidades más avanzadas. Se ha definido una especificación compatible con HTML, llamada XHTML ("Extensible Hypertext Markup Language" o "Lenguaje Extensible de Marcado de Hipertexto") que se define a menudo como una versión XML validable de HTML, que proporciona un "XML Schema" contra el cual es posible validar el documento con el objeto de comprobar si está bien formado. |
|
Los manuales titulados Introducción a las aplicaciones web, Instalación del servidor web y Servicios web han sido extraídos, con algunas modificaciones, del manual "Desarrollo de aplicaciones web", publicado por la UOC dentro de su máster de software libre, escrito por Carles Mateu i Piñol.
El manual tiene licencia GFDL, la cual otorga permiso para copiar, distribuir y modificar el documento según los términos de la GNU Free Documentation License, Version 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni textos de cubierta delantera o trasera.
Se puede acceder al documento original en: http://www.uoc.edu/masters/esp/img/873.pdf (versión imprimible) y http://www.uoc.edu/masters/esp/img/692.zip (versión editable, formato zip).
