Introduccion a La Www Introduccion a la

24
A.P.U. 2008 – Programación y Servicios Web Pág. 1 PROGRAMACION Y SERVICIOS WEB UNIDAD 1 - Introducción a WWW Contenido UNIDAD 1 - Introducción a WWW ................................................................................................1 Historia de la World Wide Web ................................................................................................2 Arquitectura de la www y conceptos .......................................................................................3 URL (Uniform Resource Locator) ..........................................................................................3 HTTP (HyperText Transfer Protocol = Protocolo de Transferencia de HiperTexto) ..............4 HTML (HyperText Markup Language = Lenguaje de Marcas de HiperTexto) ........................5 HTTP (HyperText Transfer Protocol) .........................................................................................7 Introducción a CSS (Cascading Style Sheets = Hojas de estilo en cascada) ..............................9 Funcionamiento básico de CSS .............................................................................................9 Incluir código CSS en nuestra página Web HTML ...............................................................11 Definición de estilos CSS.....................................................................................................13 Medios CSS .........................................................................................................................14 Comentarios CSS ................................................................................................................14 Servidor de Aplicaciones Web ................................................................................................15 Servidores Web ..................................................................................................................15 Tipos de Servidores Web ....................................................................................................15 Arquitecturas de las aplicaciones web ...............................................................................17 Aplicación Web...................................................................................................................19 Procesamiento Estático y Dinámico ...................................................................................20 Lenguajes de Programación Web ...........................................................................................22 Lenguaje PHP......................................................................................................................22 Lenguaje ASP ......................................................................................................................23 Lenguaje ASP.NET...............................................................................................................23 Lenguaje JSP .......................................................................................................................24

description

Introduccion a la www.pdf Introduccion a la www.pdf Introduccion a la www.pdf Introduccion a la www.pdf Introduccion a la www.pdf

Transcript of Introduccion a La Www Introduccion a la

Page 1: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 1

PROGRAMACION Y SERVICIOS WEB

UNIDAD 1 - Introducción a WWW

Contenido UNIDAD 1 - Introducción a WWW ................................................................................................1

Historia de la World Wide Web ................................................................................................2

Arquitectura de la www y conceptos .......................................................................................3

URL (Uniform Resource Locator) ..........................................................................................3

HTTP (HyperText Transfer Protocol = Protocolo de Transferencia de HiperTexto) ..............4

HTML (HyperText Markup Language = Lenguaje de Marcas de HiperTexto) ........................5

HTTP (HyperText Transfer Protocol) .........................................................................................7

Introducción a CSS (Cascading Style Sheets = Hojas de estilo en cascada) ..............................9

Funcionamiento básico de CSS .............................................................................................9

Incluir código CSS en nuestra página Web HTML ...............................................................11

Definición de estilos CSS .....................................................................................................13

Medios CSS .........................................................................................................................14

Comentarios CSS ................................................................................................................14

Servidor de Aplicaciones Web ................................................................................................15

Servidores Web ..................................................................................................................15

Tipos de Servidores Web ....................................................................................................15

Arquitecturas de las aplicaciones web ...............................................................................17

Aplicación Web...................................................................................................................19

Procesamiento Estático y Dinámico ...................................................................................20

Lenguajes de Programación Web ...........................................................................................22

Lenguaje PHP......................................................................................................................22

Lenguaje ASP ......................................................................................................................23

Lenguaje ASP.NET ...............................................................................................................23

Lenguaje JSP .......................................................................................................................24

Page 2: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 2

Historia de la World Wide Web La World Wide Web nació cerca de Ginebra (Suiza) en el CERN, el laboratorio europeo de física

de partículas. Su principal creador fue Tim Berners-Lee (nacido en Londres en 1955), que

propuso en 1989 la creación de un sistema de hipertexto para facilitar el intercambio de

información entre los investigadores del CERN. En el verano de 1991, este sistema (servidor y

navegador) se puso a disposición de todos los usuarios de Internet. El éxito de la web impulsó

la creación en 1994 del W3C (World Wide Web Consortium), organismo formado por empresas

y universidades de todo el mundo. El W3C se organiza en grupos de trabajo, en los que las

empresas y organismos interesados desarrollan por consenso especificaciones que, una vez

publicadas, reciben el nombre de recomendaciones.

El W3C está presidido por Berners-Lee y su objetivo es conducir la web a su pleno desarrollo,

asegurando su estabilidad. El éxito de la web como espacio compartido de información y

entretenimiento ha hecho necesario ir ampliando las capacidades de la web. Para conseguirlo,

el W3C ha publicado un gran número de recomendaciones, que pueden consultarse en la web.

Pese al extraordinario desarrollo y utilización de la web, su breve historia está llena de crisis,

pasos atrás y conflictos enquistados. Los usuarios de la web están interesados en que existan

unas normas comunes que permitan la interoperabilidad y la competencia, pero las empresas

que dominan un mercado suelen preferir que no existan normas comunes para que sus

productos se conviertan en la norma "de facto" y asegurar su dominio.

El W3C tiene sedes en varios países. Desde octubre de 2003, existe una oficina española del

W3C, con sede en Asturias. Entre otras cosas, mantienen una lista de recomendaciones del

W3Ctraducidas al español.

El W3C no es el único organismo que juega un papel en el desarrollo de la web.

La IETF (Internet Engineering Task Force) se ocupa desde 1986 del desarrollo de la arquitectura

de Internet y publica las normas (que por razones históricas reciben el nombre de Request For

Comments) que definen los protocolos empleados en Internet. La IANA (Internet Assigned

Numbers Authority) se ocupa desde 1972 de la asignación de direcciones a cada computadora

conectada a Internet.

Page 3: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 3

Arquitectura de la www y conceptos Para que la web funcione, se necesitan tres mecanismos:

la identificación de los recursos disponibles (URI)

reglas de comunicación entre el servidor y el navegador (HTTP)

un formato común para los documentos intercambiados (HTML, XML)

Tanto la identificación de los recursos como las reglas de comunicación son aspectos

relativamente estables, mientras que el formato de los documentos ha tenido una evolución

más compleja y continúa en desarrollo. A continuación se describen los diferentes estándares

que conforman la web.

URL (Uniform Resource Locator)

Los URL (Uniform Resource Locator) son una notación estándar para la especificación de

recursos presentes en Internet. Constituyen la piedra angular del Web, ya que hacen posible

que un link de HTML se refiera a cualquier objeto de la red.

Un URL representa de un modo compacto la localización y el método de acceso de cualquier

recurso de la red (Berners-Lee, Masinter y McCahill, 1994). No sólo hay más de dos millones de

ordenadores conectados a los varios miles de redes que forman la Internet, sino que existen

múltiples protocolos o formas diferentes de acceder a la información (ftp, gopher, http, etc.).

Los URL aportan esos dos datos esenciales: dónde se encuentra un recurso y cómo se puede

acceder a él.

La sintaxis de los URL es la siguiente:

URL:<esquema>:<parte-específica-del-esquema>

El esquema es un término convenido que representa el método de acceso a un recurso. La

parte específica del esquema informa sobre su localización en la red, de un modo que depende

de cada método de acceso. Un ejemplo nos ayudará a entender esto.

Cuando utilizamos ftp anónimo para copiar un fichero de un ordenador remoto a nuestro

ordenador necesitamos saber lo siguiente: host o nombre del ordenador remoto donde se

encuentra el fichero y path o que conduce al fichero dentro de la estructura de ficheros del

ordenador remoto. Supongamos que el fichero se llama README, y que está en el directorio

pub del host ftp.uji.es; el URL de tal objeto sería éste:

Al recuperar un fichero mediante ftp anónimo usamos "anonymous" como nombre de usuario,

y nuestra dirección de correo electrónico como password. En los URL esta información se

Page 4: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 4

omite dado que es conocida. Sin embargo, es posible incluirla si, por ejemplo, no se trata de

ftp anónimo, sino que se necesita especificar un usuario real y su password. La sintaxis

genérica de los URL para objetos accesibles por ftp es la siguiente:

URL:ftp://[user[:password]@]host[:port]/path[;type=<typdecode>]

El "port" puede omitirse si el servidor de ftp emplea el port estándar de ftp (el 21). Este

principio de omitir lo ya conocido se sigue en todos los URL. Si los distintos servidores siguen

las recomendaciones de la Internet no es necesario incluir información redundante.

El "path" es la lista ordenada de subdirectorios por los que hay que pasar para llegar al fichero,

separados por "/", seguida del nombre del fichero.

El "type" es "d", "a", "i". "d" indica que se requiere la transmisión de una lista de nombres de

ficheros (un directorio). "a" solicita una transmisión de líneas de texto. "i" solicita una

transmisión binaria.

En la actualidad existen esquemas definidos para los siguientes servicios:

Esquema Sintaxis ftp (File Transfer Protocol) ftp://user:password@host:port/path;type=<typecode> http (HyperText Transfer Protocol) http://<host>:<port>/<path>?<searchpart> gopher (gopher) gopher://<host>:<port>/<gopher-path> mailto (correo electrónico) mailto:<rfc822-addr-spec>

HTTP (HyperText Transfer Protocol = Protocolo de Transferencia de HiperTexto)

El esquema básico de cualquier transacción HTTP entre un cliente y un servidor es el siguiente

(Berners-Lee, 1993):

Conexión: El cliente establece una conexión con el servidor a través del puerto 80

(puerto estándar), u otro especificado.

Petición: El cliente envía una petición al servidor.

Respuesta: El servidor envía al cliente la respuesta (esto es, el objeco demandado o un

código de error).

Cierre: Ambas partes cierran la conexión.

HTTP (HyperText Transfer Protocol) es el protocolo de alto nivel del World-Wide Web que rige

el intercambio de mensajes entre clientes y servidores del Web.

Un protocolo es:

"Una descripción formal de los formatos de los mensajes y las reglas que deben seguir dos

ordenadores para intercambiar dichos mensajes. Los protocolos pueden describir detalles de

bajo nivel de los interfaces de máquina a máquina (por ejemplo, el orden en el cual deben

enviarse bits y bytes a través de un cable) o intercambios de alto nivel entre programas (por

ejemplo, la forma en que dos programas transfieren un fichero a través de la Internet)."

(Malkin y LaQuey Parker, 1993, pág. 39).

Page 5: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 5

El HTTP es un protocolo genérico orientado a objetos que no mantiene la conexión entre

transacciones (Berners-Lee, 1993d). Ha sido especialmente diseñado para atender las

exigencias de un sistema hipermedia distribuido como es el World-Wide Web. Sus

características principales son:

Ligereza: reduce la comunicación entre clientes y servidores a intercambios discretos, de modo

que no sobrecarga la red y permite saltos hipertextuales rápidos.

Generalidad: puede utilizarse para transferir cualquier tipo de datos, según el estándar

MIME. Esto incluye también los que desarrollen en el futuro, ya que el cliente y el

servidor pueden negociar en cualquier momento el modo de representación de los

datos: el cliente notifica al servidor una lista de formatos que entiende, y en adelante

el servidor sólo remitirá al cliente datos que este sea capaz de manejar. El cliente debe

aceptar al menos dos formatos: text/plain (texto normal) y text/html (hipertexto

codificado en HTML: el lenguaje en el que se escriben los hipertextos del Web --véase

el apartado siguiente).

Extensibilidad: contempla distintos tipos de transacción entre clientes y servidores

("métodos", en la jerga HTTP), y la futura implementación de otros nuevos. Esto abre

posibilidades más allá de la simple recuperación de objetos de la red: búsquedas,

anotaciones, etc.

HTML (HyperText Markup Language = Lenguaje de Marcas de HiperTexto)

El HTML (HyperText Markup Language) es el lenguaje en el que se escriben los hipertextos del

World-Wide Web y permite añadir a un documento de texto:

La especificación de estructuras del texto. Por ejemplo, títulos, encabezamientos,

límites de los párrafos, listas de elementos.

Estilos: texto enfatizado, citas, etc.

Objetos multimedia: imágenes o sonido, pongamos por caso.

Conexiones hipertextuales a otros objetos de la red: partes sensibles del documento

desde dónde podríamos saltar otras partes del Web.

Todo este "valor añadido" al texto se codifica como etiquetas ("tags", en la jerga) que se

insertan en el propio texto. Un ejemplo nos permitirá hacernos una idea de todo ello:

Page 6: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 6

Las etiquetas del HTML se delimitan por medio de los signos < y >. Por ejemplo, la etiqueta <P>

marca el inicio de cada párrafo. Otras, la mayor parte, van por parejas: <TITLE> y </TITLE>

abren y cierran, respectivamente, el título del documento.

Los links se abren y cierran con las etiquetas <A> y </A>. El objeto de la red a donde nos lleva

el link se codifica en la etiqueta de apertura por medio de una notación que se ha convertido

de hecho en un estándar de Internet: los llamados URL.

Page 7: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 7

HTTP (HyperText Transfer Protocol)

Uso y finalidad:

Uso: Se usa para el envío y recepción de peticiones Web.

Finalidad: Transferencia de hipertexto.

Está basado en ASCII.

Por ejemplo:

http (el protocolo o esquema)

www.cisco.com (el nombre del servidor)

Index.html (archivo específico solicitado).

Mensajes HTTP:

HTTP define los tipos de mensajes para solicitar la página Web y envía los tipos para responder:

GET (solicitud de datos por parte del cliente)

POST y PUT se utilizan para enviar mensajes que cargan datos en el servidor :

POST (carga al información en un texto sin formato)

PUT (carga los recursos o el contenido en el servidor)

Page 8: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 8

Una transacción HTTP consiste en:

Conexión: establecimiento de una conexión (puerto 80)

Solicitud: envío (cliente) de un mensaje de solicitud al servidor.

Respuesta: envío (servidor) de una respuesta al cliente.

Cierre: fin de la conexión

Page 9: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 9

Introducción a CSS (Cascading Style Sheets = Hojas de estilo en

cascada)

En el código HTML se pueden incluir una serie de etiquetas representando tanto la clase de

elementos y secciones que queremos incluir en nuestra página como el estilo a aplicar en las

mismas.

En los últimos años, cada vez se va tendiendo más a separar los contenidos de la presentación,

el marcado de los contenidos de los estilos de visualización de los mismos.

Al crear una página web: o Se utiliza en primer lugar el lenguaje HTML/XHTML para marcar los

contenidos, es decir, designar la función de cada elemento de la página: sección, párrafo, texto

destacado, tabla, lista ordenada, control, etc. La idea es que esta parte tenga cada vez más

semántica, dotando de sentido a los documentos generados y sus secciones. o En segundo

lugar, se emplea CSS para definir el aspecto de cada elemento (color, tamaño, tipo de letra,

posición, etc.).

Los navegadores contienen diversos componentes. Uno de ellos, el motor de renderizado, se

encarga de interpretar el código HTML con las etiquetas y el código CSS de formateo, y mostrar

el contenido con su formato en la ventana del navegador. Hay distintas versiones de HTML y

de CSS que van evolucionando, y su soporte en distintos motores es variable.

Una de las claves para el buen funcionamiento de nuestras aplicaciones web en distintos

navegadores es la estandarización. Conviene conocer las normas oficiales, más allá del

conjunto de funcionalidades implementadas en un momento dado en un navegador concreto,

lo que irá cambiando. El estado actual de las especificaciones estándar actual es CSS3.

Funcionamiento básico de CSS

Podemos definir una página web muy sencilla con:

Esta página se visualizará como:

Page 10: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 10

Podríamos cambiar el estilo de la cabecera y los párrafos con:

Ahora se visualizaría como:

Hemos logrado el cambio de visualización deseado, pero a costa de mezclar los contenidos

(una cabecera principal, y dos párrafos) con el formato a dar a los mismos. Sin embargo, una

cuestión concierne a la persona que decide el tipo de información a presentar, y otra a la

Page 11: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 11

persona encargada de definir la presentación/maquetación de la información, que no tendrían

por qué ser la misma, se están mezclando innecesariamente las responsabilidades (contenido y

presentación). Además, si toda cabecera principal se debe poner en azul, deberemos indicar la

misma instrucción en todas las cabeceras, lo cual es redundante y puede implicar

incoherencias de estilo.

Propuesta con CSS: La alternativa sería separar ambas, de modo que las etiquetas delimiten el

tipo de contenido (etiqueta, <h1> o <p>) y posiblemente clase (class), quedando el código

como:

Como vemos, se han eliminado las referencias a color o tamaño de texto como atributos de las

etiquetas . En su lugar, se ha dejado sin atributo la etiqueta <h1> >, y se ha

calificado uno de los párrafos como importante, lo cual tiene una consideración más

semántica, y será la hoja de estilo la que nos diga cómo presentar las cabeceras, los párrafos

normales (por defecto) y los párrafos importantes (calificados). A simple vista podemos ver

que se establece dentro de <head> un <style> de tipo text/css, y que en su interior definimos

el formato a aplicar a las etiquetas <h1> (color de texto blue), y a aquello que se califique

como importante, .imp (tamaño de texto x-large).

Incluir código CSS en nuestra página Web HTML

Existen tres formas de incluir código CSS del tipo que hemos visto en nuestra página web,

como veremos a continuación.

Incluir el estilo como atributo de la etiqueta HTML

Page 12: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 12

Se pueden emplear instrucciones de estilo CSS con el atributo style dentro de cualquier

etiqueta HTML. Es la opción menos aconsejada y usada, puesto que no permite

separación entre contenido y presentación, ni estandarizar y reutilizar, pero es la

opción a emplear en caso de querer aplicar un formato de forma excepcional a un solo

elemento.

Por ejemplo:

Incluir el estilo a nivel de página

Se pueden emplear instrucciones de estilo CSS empleando una etiqueta <style> > en la

sección HEAD de nuestro documento HTML.

Por ejemplo, como vimos anteriormente:

Permite aplicar el estilo definido a todos los elementos de un determinado tipo de

contenido (a nivel de etiqueta), de una determinada clase (a nivel de class), o bien a un

elemento determinado (a nivel de id).

Incluir el estilo en archivo .css independiente, y usar a nivel de sitio

Nos referimos con sitio web a todas las páginas que componen nuestra aplicación,

compuesta de un número determinado de páginas.

Podemos definir un documento CSS con el estilo, y utilizarlo así en todas las páginas

del sitio de manera uniforme.

Es la opción más aconsejada, por ser la que permite una mejor separación entre

contenido y presentación.

El código en el fichero aparte sería del mismo tipo de la opción anterior, pero sin la

etiqueta style. Por ejemplo, podemos tener un archivo “miestilo.css”:

Page 13: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 13

Para importarlo, bastará con escribir en las páginas que queramos aplicar el estilo:

De esta forma, cuando el navegador carga la página HTML, al ver esta etiqueta

descarga los archivos CSS externos enlazados mediante y aplica los estilos a los

contenidos de la página.

Definición de estilos CSS

Una sección de definición de estilos CSS (tanto en etiqueta style como en archivo externo)

permite definir un conjunto de reglas CSS.

Las reglas CSS se componen de:

Un selector que indica a qué elementos HTML se aplicará la regla, y

Un conjunto de declaraciones, indicando los estilos a aplicar a los elementos seleccionados.

Una declaración se compone de una o varias propiedades CSS con sus valores, siendo:

Propiedad: característica a modificar.

Valor: establece el valor a aplicar a la característica en cuestión.

Page 14: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 14

Los estilos aplicados directamente sobre un elemento HTML incluyen únicamente la sección de

declaraciones, ya que el elemento seleccionado es sobre el que estamos actuando con el

atributo style.

En la especificación actual, CSS 2.1, hay definidas 115 propiedades, si bien en CSS3 ya va por

239, a falta de cerrar la especificación de este estándar.

Medios CSS

Podemos aplicar distintos estilos sobre la misma declaración de contenidos HTML, definiendo

el formato aplicar sobre distintos medios como la pantalla (screen), impresoras (print),

dispositivos de mano (handheld), etc.

Por defecto nuestro estilo se mostrará para todas las posibles salidas o medios.

Si queremos aplicar las reglas en un determinado medio, se puede indicar mediante:

media="screen" como atributo de la etiqueta .

@import url("estilos_seccion.css") screen; dentro de la etiqueta style.

En la sección style, para un determinado conjunto de reglas:

@media print {

body { font-size: 10pt }

}

Comentarios CSS

Los comentarios dentro de la sección de CSS se indican entre /* y */: o /* Este es mi

comentario… */.

Pueden ocupar una o varias líneas.

No confundir con los comentarios HTML: <!-- comentario -->

Page 15: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 15

Servidor de Aplicaciones Web

Servidores Web

Los servidores web son aquellos cuya tarea es alojar sitios y/o aplicaciones, las cuales son

accedidas por los clientes utilizando un navegador que se comunica con el servidor utilizando

el protocolo HTTP (hypertext markup language).

Básicamente un servidor WEB consta de un interprete HTTP el cual se mantiene a la espera de

peticiones de clientes y le responde con el contenido según sea solicitado. El cliente, una vez

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

Además los servidores pueden disponer de un intérprete de otros lenguajes

de programación que ejecutan código embebido dentro del código HTML de las páginas que

contiene el sitio antes de enviar el resultado al cliente. Esto se conoce como programación de

lado del servidor y utiliza lenguajes como ASP, PHP, Perl, Ajax, etc. Las ventajas de utilizar

estos lenguajes radica en la potencia de los mismos ejecutando tareas más complejas como, por

ejemplo acceder a bases de datos abstrayendo al cliente de toda la operación.

El servidor web, se encarga de contestar a peticiones de ejecución realizadas por los clientes o un

usuario de internet o intranet; de forma adecuada, entregando como resultado una página web o

información de todo tipo de acuerdo a los comandos solicitados

Tipos de Servidores Web

Servidor Dedicado: se refiere a una computadora servidora al sitio del cliente(para aplicaciones

de alta demanda) (Hosting)

Servidor Compartido: lo que significa que un mismo servidor (computadora + programas

servidos) se usara para varios clientes compartiendo los recursos

Page 16: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 16

Servidor Apache

Es un servidor http(1996), de código abierto y multiplataforma(Unix (BSD, GNU/Linux, etc.), Microsoft

Windows, Macintosh)

Ventajas:

Su extensibilidad y construcción modular. Se puede poner módulos para ampliar su

funcionabilidad (por ejemplo mod_php para ejecutar paginas PhP)

La noción de sitio virtual: Posibilidad de colocar múltiples sitios web en la misma maquina.

Robusto y estable

Desventaja

Falta de una interfaz grafica que ayude a su configuración

Microsoft Internet Information Services IIS

Es un servidor web y un conjunto de servicios para el sistemas operativo Microsoft Windows,

las computadoras que tienen este servicio instalado puede publicar páginas web tanto local

como remotamente.

Los servicios que ofrece son: FTP,SMTP,NNTP y HTTP/HTTPS.

Se basa en varios módulos que le dan capacidad para procesar distintos tipos de páginas. Por

ejemplo ASP(Active Server Pages) y Asp.Net

También pueden ser incluidos los otros fabricantes como PHP o PERL.

IIS vs Apache

Ambos son software utilizados en el servidor para ofrecer servicios, los cuales son:

Apache: HTTP, HTTPS, FTP y FTPS (usando módulo mod_ftp), SMTP (usando módulo

mod_smtpd), NNTP (aunque debe ser implementado aparte).

IIS: HTTP, HTTPS, FTP, FTPS, SMTP y NNTP.

Una de las principales características en común además de sus usos, es que su funcionalidad se

ve ampliada gracias a una gran cantidad de módulos que pueden ser añadidos, por ejemplo

para la gestión de las bases de datos. También poseen en común la posibilidad de uso de

lenguajes como PHP, Perl y Python.

Diferencia: a diferencia de IIS, Apache no permite el uso de ASP a menos que se importe un

módulo especifico. Una diferencia importante entre ambos es que Apache es software libre y

multiplataforma, mientras que IIS es software propietario y está hecho para sistemas

Windows. En cuanto al aumento de funcionalidad por módulos, en ambos casos es muy grande

y no existe gran diferencia. En relación al rendimiento, algunos lugares indican un mejor

rendimiento en Apache aunque esto depende del sistema operativo utilizado.

Page 17: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 17

Arquitecturas de las aplicaciones web

Las aplicaciones web se basan en una arquitectura cliente/servidor: por un lado está el cliente

(el navegador, explorador o visualizador) y por otro lado el servidor (el servidor web). Existen

diversas variantes de la arquitectura básica según como se implementen las diferentes

funcionalidades de la parte servidor. Las arquitecturas más comunes son:

1. Todo en un servidor: un único ordenador aloja el servicio de HTTP, la lógica de

negocio y la lógica de datos y los datos. El software que ofrece el servicio de HTTP

gestiona también la lógica de negocio. Las tecnologías que emplean esta arquitectura

son ASP y PHP.

2. Servidor de datos separado: a partir de la arquitectura anterior, se separa la lógica de

datos y los datos a un servidor de bases de datos específico. Las tecnologías que

emplean esta arquitectura son ASP y PHP.

3. Todo en un servidor, con servicio de aplicaciones: en la arquitectura número 1 se

separa la lógica de negocio del servicio de HTTP y se incluye el servicio de

aplicaciones para gestionar los procesos que implementan la lógica de negocio. La

tecnología que emplea esta arquitectura es JSP.

Page 18: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 18

4. Servidor de datos separado, con servicio de aplicaciones: a partir de la arquitectura

anterior, se separa la lógica de datos y los datos a un servidor de bases de datos

específico. La tecnología que emplea esta arquitectura es JSP.

5. Todo separado: las tres funcionalidades básicas del servidor web se separan en tres

servidores específicos. La tecnología que emplea esta arquitectura es JSP.

Page 19: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 19

El objetivo de separar las distintas funcionalidades (servicio de HTTP, lógica de negocio y

lógica de datos) en distintos servidores es aumentar la escalabilidad del sistema de cara a

obtener un mayor rendimiento. Al separar las distintas funcionales en distintos servidores,

cada uno de ellos se puede configurar (dimensionar) de forma adecuada a los requisitos que

presenta cada uno de ellos. Por ejemplo, para ofrecer el servicio de HTTP hace falta un

ordenador con una buena conexión a Internet, rápido pero sin grandes necesidades de

almacenamiento. Sin embargo, para el servidor de bases de datos hace falta un ordenador con

mucha memoria y con un disco duro de alta capacidad de almacenamiento y rápido para

mantener todos los datos.

Otra ventaja que se obtiene al separar las funcionalidades, es que al aislar la lógica de negocio

y la lógica de datos en servidores separados que no están conectados directamente a Internet

se aumenta el nivel de seguridad, ya que no es tan fácil acceder a ellos.

En algunos casos, las arquitecturas donde se separan el servicio de HTTP del resto de

servicios es la única opción disponible. Por ejemplo, en los sistemas heredados ( legacy

systems), donde ya existe una lógica de negocio en un servidor de aplicaciones y una lógica de

datos en un servidor de bases de datos, la única forma de acceder desde Internet al sistema

heredado es a través de un servidor que ofrezca el servicio de HTTP y se comunique

internamente con el servidor de aplicaciones.

Aplicación Web

Las aplicaciones web utilizan lo que se conoce como clientes livianos (light clients) los cuales

no ejecutan demasiadas labores de procesamiento para la ejecución de la aplicación misma.

Desde el punto de vista de la arquitectura se distinguen dos lados; uno es el cliente, donde se

encuentra el usuario final utilizando la aplicación por medio de un navegador (como Internet

Explorer o Mozilla Firefox). A través de este cliente web, el usuario interactúa con la aplicación

localizada al otro lado, en el servidor, que es donde residen realmente los datos, reglas y

lógica de la aplicación.

Page 20: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 20

Procesamiento Estático y Dinámico

Procesamiento estático

En muchos casos, el servidor es un programa que simplemente toma el pedido que recibe y

devuelve una página (compuesta por uno o más archivos HTML, imágenes, animaciones, etc.)

que está guardada en algún lugar del disco. En estos casos decimos que son páginas estáticas.

A no ser que el administrador del sitio actualice su contenido, al ingresar en la pá- gina web

siempre obtendremos el mismo resultado, no importa cuándo ingresemos ni desde dónde.

Para la gran mayoría de sistemas de negocios, este tipo de servicio no es muy útil, ya que se

suele necesitar que se devuelva una página con contenido dinámico, que cambie según quién

pidió la página, según la fecha, etc.

El servidor de páginas estáticas siempre devuelve el mismo recurso para el mismo pedido.

Procesamiento Dinamico

Pensemos, por ejemplo, en el sistema de un banco. Si ingreso en el sitio del banco y quiero

consultar mi saldo, debería devolverme mi saldo actual al momento exacto de pedirlo. Si el

sitio web sólo provee contenido estático, entonces deberían tener una página guardada en el

disco para cada saldo posible. Esto, obviamente, es impracticable. Y tampoco es viable que

haya una persona que esté actualizando las páginas de saldos de todos los usuarios a medida

que van realizando operaciones sobre sus cuentas. En esos casos, el servidor efectúa

operaciones (yendo a buscar datos a una base de datos, consultando con otro servidor o

accediendo a otro tipo de servicios de negocios) y devuelve una página dinámica; esto es, una

página que no está guardada en ningún lugar dentro del servidor, sino que fue creada en el

momento para quien la pidió. El servidor accede a los datos variables, en este caso, el saldo del

usuario, luego construye en memoria la página con este dato y se la devuelve al cliente, que la

muestra en pantalla.

Page 21: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 21

El servidor web dinámico construye una respuesta distinta para cada pedido.

La programación web entonces, consiste en escribir programas que, dada una petición web

realizada por un cliente (un navegador), procesen el pedido y generen y devuelvan un

resultado. Como en todo proceso de desarrollo de software, hay mucho de reutilización.

Podremos ver que, por ejemplo, la parte de recibir el pedido y enviar la respuesta por lo

general no cambia, solamente cambia la lógica de negocios de cada pedido y el contenido de la

respuesta generada. En este libro utilizaremos herramientas ya desarrolladas de código abierto

que nos ayudarán en la creación de aplicaciones web.

Page 22: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 22

Lenguajes de Programación Web

Lenguaje PHP

Es un lenguaje de programación utilizado para la creación de sitio web. PHP es un acrónimo

recursivo que significa “PHP Hypertext Pre-processor”, (inicialmente se llamó Personal Home

Page). Surgió en 1995, desarrollado por PHP Group.

PHP es un lenguaje de script interpretado en el lado del servidor utilizado para la generación

de páginas web dinámicas, embebidas en páginas HTML y ejecutadas en el servidor. PHP no

necesita ser compilado para ejecutarse. Para su funcionamiento necesita tener instalado

Apache o IIS con las librerías de PHP. La mayor parte de su sintaxis ha sido tomada de C, Java y

Perl con algunas características específicas. Los archivos cuentan con la extensión (php).

Ventajas:

Muy fácil de aprender.

Se caracteriza por ser un lenguaje muy rápido.

Soporta en cierta medida la orientación a objeto. Clases y herencia.

Es un lenguaje multiplataforma: Linux, Windows, entre otros.

Capacidad de conexión con la mayoría de los manejadores de base de datos: MysSQL,

PostgreSQL, Oracle, MS SQL Server, entre otras.

Capacidad de expandir su potencial utilizando módulos.

Posee documentación en su página oficial la cual incluye descripción y ejemplos de

cada una de sus funciones.

Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.

Incluye gran cantidad de funciones.

No requiere definición de tipos de variables ni manejo detallado del bajo nivel.

Desventajas:

Se necesita instalar un servidor web.

Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto puede ser más

ineficiente a medida que las solicitudes aumenten de número.

Page 23: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 23

La legibilidad del código puede verse afectada al mezclar sentencias HTML y PHP.

La programación orientada a objetos es aún muy deficiente para aplicaciones grandes.

Dificulta la modularización.

Dificulta la organización por capas de la aplicación.

Lenguaje ASP

Es una tecnología del lado de servidor desarrollada por Microsoft para el desarrollo de sitio

web dinámicos. ASP significa en inglés (Active Server Pages), fue liberado por Microsoft en

1996. Las páginas web desarrolladas bajo este lenguaje es necesario tener instalado Internet

Information Server (IIS).

ASP no necesita ser compilado para ejecutarse. Existen varios lenguajes que se pueden utilizar

para crear páginas ASP. El más utilizado es VBScript, nativo de Microsoft. ASP se puede hacer

también en Perl and Jscript (no JavaScript). El código ASP puede ser insertado junto con el

código HTML. Los archivos cuentan con la extensión (asp).

Ventajas:

Usa Visual Basic Script, siendo fácil para los usuarios.

Comunicación óptima con SQL Server.

Soporta el lenguaje JScript (Javascript de Microsoft).

Desventajas:

Código desorganizado.

Se necesita escribir mucho código para realizar funciones sencillas.

Tecnología propietaria.

Hospedaje de sitios web costosos.

Lenguaje ASP.NET

Este es un lenguaje comercializado por Microsoft, y usado por programadores para desarrollar

entre otras funciones, sitios web. ASP.NET es el sucesor de la tecnología ASP, fue lanzada al

mercado mediante una estrategia de mercado denominada .NET.

El ASP.NET fue desarrollado para resolver las limitantes que brindaba tu antecesor ASP. Creado

para desarrollar web sencillas o grandes aplicaciones. Para el desarrollo de ASP.NET se puede

utilizar C#, VB.NET o J#. Los archivos cuentan con la extensión (aspx). Para su funcionamiento

de las páginas se necesita tener instalado IIS con el Framework .Net. Microsft Windows 2003

incluye este framework, solo se necesitará instalarlo en versiones anteriores.

Ventajas:

Completamente orientado a objetos.

Page 24: Introduccion a La Www Introduccion a la

A.P.U. 2008 – Programación y Servicios Web Pág. 24

Controles de usuario y personalizados.

División entre la capa de aplicación o diseño y el código.

Facilita el mantenimiento de grandes aplicaciones.

Incremento de velocidad de respuesta del servidor.

Mayor velocidad.

Mayor seguridad.

Desventajas:

Mayor consumo de recursos.

Lenguaje JSP

Es un lenguaje para la creación de sitios web dinámicos, acrónimo de Java Server Pages. Está

orientado a desarrollar páginas web en Java. JSP es un lenguaje multiplataforma. Creado para

ejecutarse del lado del servidor.

JSP fue desarrollado por Sun Microsystems. Comparte ventajas similares a las de ASP.NET,

desarrollado para la creación de aplicaciones web potentes. Posee un motor de páginas

basado en los servlets de Java. Para su funcionamiento se necesita tener instalado un servidor

Tomcat.

Características:

Código separado de la lógica del programa.

Las páginas son compiladas en la primera petición.

Permite separar la parte dinámica de la estática en las páginas web.

Los archivos se encuentran con la extensión (jsp).

El código JSP puede ser incrustado en código HTML.

Ventajas:

Ejecución rápida del servlets.

Crear páginas del lado del servidor.

Multiplataforma.

Código bien estructurado.

Integridad con los módulos de Java.

La parte dinámica está escrita en Java.

Permite la utilización se servlets.

Desventajas:

Complejidad de aprendizaje.