apuntes - desarrollo de aplicaciones web

11
Desarrollo de Aplicaciones Web Unidad I. Introducción a las Aplicaciones Web....................2 Introducción a Internet.........................................2 La www como servicio de Internet................................2 Breve historia de la www......................................2 Estándares web................................................4 Fundamentos de la web.........................................4 Historia de las aplicaciones web................................6 Unidad II. Servidores Web........................................8

Upload: hugo-rodriguez-mtz

Post on 03-Jul-2015

546 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Apuntes - Desarrollo de Aplicaciones Web

Desarrollo de Aplicaciones Web

Unidad I. Introducción a las Aplicaciones Web..................................................................................2

Introducción a Internet..................................................................................................................2

La www como servicio de Internet.................................................................................................2

Breve historia de la www...........................................................................................................2

Estándares web..........................................................................................................................4

Fundamentos de la web.............................................................................................................4

Historia de las aplicaciones web.....................................................................................................6

Unidad II. Servidores Web..................................................................................................................8

Page 2: Apuntes - Desarrollo de Aplicaciones Web

Unidad I. Introducción a las Aplicaciones Web

Introducción a InternetInternet es un conjunto descentralizado de redes de comunicación interconectadas, que

utilizan la familia de protocolos TCP/IP, garantizando que las redes físicas heterogéneas que la componen funcionen como una red lógica única, de alcance mundial.

Sus orígenes se remontan a 1969, cuando se estableció la primera conexión de computadoras, conocida como ARPANET, entre tres universidades en California y una en Utah, Estados Unidos.

El género de la palabra Internet es ambiguo, según el Diccionario de la Real Academia Española.

La www como servicio de InternetUno de los servicios que más éxito ha tenido en Internet ha sido la World Wide Web

(www, o "la Web"), hasta tal punto que es habitual la confusión entre ambos términos. La www es un conjunto de protocolos que permite, de forma sencilla, la consulta remota de archivos de hipertexto. Esta fue un desarrollo posterior (1990) y utiliza Internet como medio de transmisión.

Existen, por tanto, muchos otros servicios y protocolos en Internet, aparte de la Web: el envío de correo electrónico (SMTP), la transmisión de archivos (FTP y P2P), las conversaciones en línea (IRC), la mensajería instantánea y presencia, la transmisión de contenido y comunicación multimedia -telefonía (VoIP), televisión (IPTV)-, los boletines electrónicos (NNTP), el acceso remoto a otras maquinas (SSH y Telnet) o los juegos en línea.

Breve historia de la wwwLa idea subyacente de la Web se remonta a la propuesta de Vannevar Bush en los años 40

sobre un sistema similar: a grandes rasgos, un entramado de información distribuida con una interfaz operativa que permitía el acceso tanto a la misma como a otros artículos relevantes determinados por claves. Este proyecto nunca fue materializado, quedando relegado al plano teórico bajo el nombre de Memex.

Es en los años 50 cuando Ted Nelson realiza la primera referencia a un sistema de hipertexto, donde la información es enlazada de forma libre. Pero no es hasta 1980, con un soporte operativo tecnológico para la distribución de información en redes informáticas, cuando Tim Berners-Lee propone ENQUIRE al CERN (refiriéndose a Enquire Within Upon Everything, en castellano Preguntando de Todo Sobre Todo), donde se materializa la realización práctica de este concepto de incipientes nociones de la Web.

En marzo de 1989, Tim Berners Lee, redacta la propuesta que referenciaba a ENQUIRE y describía un sistema de gestión de información más elaborado. No hubo un bautizo oficial o un acuñamiento del término web en esas referencias iniciales utilizándose para tal efecto el término mesh. Sin embargo, el World Wide Web ya había nacido. Con la ayuda de Robert Cailliau, se publicó una propuesta más formal para la World Wide Web el 12 de noviembre de 1990.

Page 3: Apuntes - Desarrollo de Aplicaciones Web

Berners-Lee usó un NeXTcube como el primer servidor web del mundo y también escribió el primer navegador web, WorldWideWeb en 1990. En las Navidades del mismo año, Berners-Lee había creado todas las herramientas necesarias para que una web funcionase: el primer navegador web (el cual también era un editor web), el primer servidor web y las primeras páginas web que al mismo tiempo describían el proyecto.

El 6 de agosto de 1991, envió un pequeño resumen del proyecto World Wide Web al newsgroup alt.hypertext. Esta fecha también señala el debut de la web como un servicio disponible públicamente en Internet.

El concepto, subyacente y crucial, del hipertexto tiene sus orígenes en viejos proyectos de la década de los 60, como el Proyecto Xanadu de Ted Nelson y el sistema on-line NLS de Douglas Engelbart. Los dos, Nelson y Engelbart, estaban a su vez inspirados por el ya citado sistema basado en microfilm "Memex", de Vannevar Bush.

El gran avance de Berners-Lee fue unir hipertexto e Internet. En su libro Weaving the Web (en castellano, Tejiendo la Red), explica que él había sugerido repetidamente que la unión entre las dos tecnologías era posible para miembros de las dos comunidades tecnológicas, pero como nadie aceptó su invitación, decidió, finalmente, hacer frente al proyecto él mismo. En el proceso, desarrolló un sistema de identificadores únicos globales para los recursos web y también: el Uniform Resource Identifier.

World Wide Web tenía algunas diferencias de los otros sistemas de hipertexto que estaban disponibles en aquel momento:

WWW sólo requería enlaces unidireccionales en vez de los bidireccionales. Esto hacía posible que una persona enlazara a otro recurso sin necesidad de ninguna acción del propietario de ese recurso. Con ello se reducía significativamente la dificultad de implementar servidores web y navegadores (en comparación con los sistemas anteriores), pero en cambio presentaba el problema crónico de los enlaces rotos.

A diferencia de sus predecesores, como HyperCard, World Wide Web era no-propietario, haciendo posible desarrollar servidores y clientes independientemente y añadir extensiones sin restricciones de licencia.

El 30 de abril de 1993, el CERN anunció que la web sería gratuita para todos, sin ningún tipo de honorarios.

ViolaWWW fue un navegador bastante popular en los comienzos de la web que estaba basado en el concepto de la herramienta hipertextual de software de Mac denominada HyperCard. Sin embargo, los investigadores generalmente están de acuerdo en que el punto de inflexión de la World Wide Web comenzó con la introducción del navegador web Mosaic en 1993, un navegador gráfico desarrollado por un equipo del NCSA en la Universidad de Illinois en Urbana-Champaign (NCSA-UIUC), dirigido por Marc Andreessen. Funding para Mosaic vino del High-Performance Computing and Communications Initiative, un programa de fondos iniciado por el

Page 4: Apuntes - Desarrollo de Aplicaciones Web

entonces gobernador Al Gore High Performance Computing and Communication Act of 1991, también conocida como la Gore Bill. Antes del lanzamiento de Mosaic, las páginas web no integraban un amplio entorno gráfico y su popularidad fue menor que otros protocolos anteriores ya en uso sobre Internet, como el protocolo Gopher y WAIS. La interfaz gráfica de usuario de Mosaic permitió a la WWW convertirse en el protocolo de Internet más popular de una manera fulgurante.

Estándares webDestacamos los siguientes estándares:

el Identificador de Recurso Uniforme (URI), que es un sistema universal para referenciar recursos en la Web, como páginas web,

el Protocolo de Transferencia de Hipertexto (HTTP), que especifica cómo se comunican el navegador y el servidor entre ellos,

el Lenguaje de Marcado de Hipertexto (HTML), usado para definir la estructura y contenido de documentos de hipertexto,

el Lenguaje de Marcado Extensible (XML), usado para describir la estructura de los documentos de texto.

Berners Lee dirige desde 2007 el World Wide Web Consortium (W3C), el cual desarrolla y mantiene esos y otros estándares que permiten a los ordenadores de la Web almacenar y comunicar efectivamente diferentes formas de información.

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 archivo 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 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 porque 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, trasfiriendo cada componente por conexiones diferentes .

Page 5: Apuntes - Desarrollo de Aplicaciones Web

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:

GET: Petición de un recurso.POST: Petición de un recurso enviando parámetros.HEAD: Petición de algunos datos sobre un recurso.PUT: Creación o envío de un recurso.DELETE: Borrado de un recurso.TRACE: Devolución de la petición a su origen tal como la había recibido el receptor, para la depuración de errores.OPTIONS: Comprueba la capacidad del servidor.CONNECT: Se reserva para su uso en servidores intermedios con capacidad para funcionar como túneles entre otros servidores.

Se debe destacar que todos los recursos servidos mediante HTTP deberán ser referenciados utilizando una URL ("Universal Resource Locators").

Las 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 HTTP puede contener 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:

Formando parte de la propia cadena de la petición, codificados como parte de la misma URL.Como datos añadidos a la petición.

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 carácter "?". Los parámetros se separan entre sí mediante el carácter "&". Los espacios se sustituyen por el carácter "+". Los

Page 6: Apuntes - Desarrollo de Aplicaciones Web

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 carácter en cuestión.

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

Historia de las aplicaciones webEn un principio la web era sencillamente una colección de páginas estáticas, documentos,

etc., para su consulta o descarga. El paso inmediatamente posterior en su evolución fue la inclusión de un método para elaborar paginas dinámicas que permitieran que lo mostrado tuviese carácter dinámico (es decir, generado a partir de los datos de la petición). Este método fue conocido como CGI ("Common Gateway Interface") y definía un mecanismo mediante el que se podía pasar información entre el servidor y ciertos programas externos. Los CGIs siguen utilizándose ampliamente; la mayoría de los servidores web permiten su uso debido a su sencillez. Además, dan total libertad para elegir el lenguaje de programación que se desea emplear.

El funcionamiento de los CGIs tenía un punto débil: cada vez que se recibía una petición, el servidor debía lanzar un proceso para ejecutar el programa CGI. Como la mayoría de CGIs estaban escritos en lenguajes interpretados, como Perl o Python, o en lenguajes que requerían "run-time environment", como Java o Visual Basic, el servidor se veía sometido a una gran carga. La concurrencia de múltiples accesos al CGI podía ocasionar problemas graves.

Por eso se empezaron a desarrollar alternativas a los CGIs que solucionaran el problema del rendimiento. Las soluciones llegan básicamente por 2 vías: 1) se diseñan sistemas de ejecución de módulos mejor integrados con el servidor, que evitan la instanciación y ejecución de varios programas, y 2) se dota a los servidores un intérprete de algún lenguaje de programación que permita incluir el código en las páginas de forma que lo ejecute el servidor, reduciendo el intervalo de respuesta.

Entonces se experimenta un aumento del número de arquitecturas y lenguajes que permiten desarrollar aplicaciones web. Todas siguen alguna de estas vías. Las más útiles y las más utilizadas son las que permiten mezclar los 2 sistemas: un lenguaje integrado que permita al

Page 7: Apuntes - Desarrollo de Aplicaciones Web

servidor interpretar comandos "incrustados" en las páginas HTML y, además, un sistema de ejecución de programas mejor enlazado con el servidor, que no implique los problemas de rendimiento propios de los CGIs.

Una de las más potentes es la seguida por Sun Microsystems con su Java, integrado por 2 componentes; un lenguaje que permite la incrustación de código en las paginas HTML que el servidor convierte en programas ejecutables, JSP ("Java Server Pages" o "Paginas de Servidor de Java"), y un método de programación muy ligado al servidor, con un rendimiento superior a los CGIs, denominado "Java Servlet".

Otra tecnología de éxito y una de las más utilizadas es el lenguaje PHP. Se trata de un lenguaje interpretado que permite la incrustación de HTML en los programas, con una sintaxis derivada de C y Perl. El hecho de ser sencillo y potente ha contribuido a hacer de PHP una herramienta muy apropiada para determinados desarrollos.

TareasCrear una aplicación ASP. Net en donde se ocupen 2 páginas y una página maestra (la

misma para las dos páginas). La página maestra deberá contener una sección para el título de la aplicación (tema), una sección para el menú y una sección para visualizar los contenidos (páginas). El tema de la aplicación será sobre el servicio social de los alumnos del 8° semestre de L.I. En la primera página se deberá dar de alta la siguiente información: clave del alumno, nombre completo del alumno, lugar en donde realiza/realizó el servicio social, y labores realizadas. Para esto último, se deberá crear una base de datos llamada Servicio_TuNombre. Tú definirás el nombre de la tabla, nombres y tipos de datos de los campos. La segunda página deberá implementar un objeto GridView para visualizar el contenido de la única tabla de la base de datos. Todas las páginas deberán estar estandarizadas.

PrácticaCrear una aplicación web ASP.Net en donde se ocupen 3 páginas y una página maestra (la

misma para las tres páginas). La página maestra deberá contener una sección para el título de la aplicación (tema), una sección para el menú y una sección para visualizar los contenidos (páginas). El tema de la aplicación será describir la comunidad en donde vives. La primera página deberá contener la descripción de la comunidad, la cual no deberá ser menor a una cuartilla de un documento de Word (fuente calibri de tamaño 12). La segunda página deberá contener una galería de imágenes (no menor a 10 imágenes). La tercera página deberá contener una tabla de enlaces externos (mínimo 10) relacionados con tu comunidad. Todas las páginas deberán estar estandarizadas.

Page 8: Apuntes - Desarrollo de Aplicaciones Web

Unidad II. Servidores Web

Tarea para Evaluación de la Unidad II.

El Instituto Tecnológico Superior de Zacapoaxtla requiere un sitio web para la administración de la bolsa de trabajo para los alumnos egresados. Se requiere que los alumnos tengan sus propias cuentas de usuario dentro del sitio. Los alumnos podrán crear sus propias cuentas en el caso de que no tengan una, además de poder actualizar las cuentas existentes.

El sitio deberá tener una sección en donde se ofrezcan empleos y el perfil de la persona que podría ocupar el empleo ofrecido. Ahí mismo se deberá presentar la lista de candidatos para cada uno de esos empleos.

También se deberá tener una sección para agregar, actualizar o modificar los empleos ofrecidos en el sitio. Se deberá indicar el estatus de cada empleo: disponible, no disponible, ocupado. Esto sólo podrá hacerlo el administrador del sitio. El alumno sólo podrá agregarse a sí mismo como candidato a un empleo.

El proyecto deberá ser elaborado individualmente o en equipos de 2 a 5 personas empleando ASP.Net y SQL Server, para ser entregado el día 6 de mayo.

Los datos a tomar en cuenta para el alumno son: Clave, Nombre, Apellidos, Carrera, Semestre, Promedio General, Currículo Resumido.

Posteriormente, el sitio deberá ser publicado en una intranet.