1. Desarrollo de Páginas
Web
Bloque Especializado
Compilador:
Lic. Ingrid Riquelme Ramírez
Licenciatura en Diseño Gráfico
CONOCERSE ACEPTARSE AMARSE CUIDARSE SUPERARSE TRANSMITIR TRANSFORMAR
2. Desarrollo de Páginas Web
Índice
Índice 1
Objetivo General 3
Tema 1. Herramientas básicas para sitios Web 4
Objetivo de Aprendizaje 4
Introducción 4
1.1 Conceptos básicos de la tecnología Internet 5
1.2 Dreamweaver: Generación de páginas Web en forma visual 8
1.3 Producción de páginas Web con lenguaje de programación HTML 9
1.3.1 Estructura básica de un documento 11
Tema 2. Herramientas de diseño grafico para Web 13
Objetivo de aprendizaje 13
Introducción 13
2.1 Dibujo y manejo de imágenes 13
2.2 Java 16
2.3 Applets y Servlets 17
2.4 Javascript 18
Tema 3. Programación en Internet 19
Objetivo de aprendizaje 19
Introducción 19
3.1 Vínculo Javascript con HTML 20
3.2 Código del lado del cliente – Código del lado del servidor 21
3.3 Generación de dinámica de cajas 22
3.3.1 Conceptos ASP 25
3.3.2 Conceptos PhP 29
3.3.3 Conceptos CGL 34
3.3.4 Conceptos Perl 37
3.4 Base de datos 43
3.5 Seguridad 46
3.6 Estructuración del lenguaje estructurado 48
Tema 4. Creación de sitios Web 54
Objetivos de aprendizaje 54
Introducción 54
4.1 Estrategias de desarrollo de portales en Internet 54
4.2 Formas de comercio electrónico 55
4.2.1 ¿Qué es e-commerce? 55
4.2.2 ¿Qué ventajas ofrece el comercio electrónico? 56
4.2.3 ¿Cuántas formas de comercio electrónico existen? 57
Índice 1
3. Desarrollo de Páginas Web
4.3 Servicios 58
4.4 Desarrollo de un proyecto e-businnes 59
Glosario 63
Bibliografía General 111
Índice 2
4. Desarrollo de Páginas Web
Objetivo general
Al término del curso el estudiante conceptualizará a detalle los componentes de
una página web, haciendo especial hincapié en el diseño de estilos, tratamiento
visual de textos y formatos así como el trabajo con plantillas para definir de forma
más completa la composición de un sitio web
Objetivo General 3
5. Desarrollo de Páginas Web
Tema 1. Herramientas básicas para sitios web
Subtemas
1.1 Conceptos básicos de la tecnología Internet
1.2 Dreamweaver: Generación de paginas Web en forma visual
1.3 Producción de paginas Web con lenguaje de programación HTML
1.3.1 Estructura básica de un documento
Objetivo de Aprendizaje
Al término del tema el estudiante conocerá parte de la historia del Internet y el
lenguaje HTML, así como, aprenderá la conformación básica de un documento
HTML para su aplicación en proyectos Web para su correcta visualización en los
diversos navegadores.
Introducción
Al generarse un entorno para compartir información como lo es Internet se
requieren nuevas especificaciones, es por ello que se deben conocer los pilares
de dichas especificaciones para el desarrollo de páginas Web como vendrían
siendo el protocolo, el URL, hipertexto, dominio, navegadores, etc.
Existen básicamente dos formas de generar páginas HTML, uno como editores de
texto, la otra mediante software tipo Dreamweaver, en donde el diseño es
WYSIWYG (What you see is what you get) lo que se ve en pantalla es lo que se
obtiene en el explorardor. Pero para ello, es necesario que se sigan ciertos
estándares para que los sitios sean lo más accesibles para todos los navegadores.
En cada versión del lenguaje HTML las empresas van siguiendo cada vez más las
recomendaciones del consorcio 3WC, de tal forma que los navegadores Web de
última generación poseen una mecánica de interpretación de código muy
parecida, por lo que se espera que en futuras versiones se pudiera escribir un
mismo código compatible para todos los navegadores.
Otro de los lenguajes en desarrollo es el XML, cual para algunos sería la solución
ideal para dejar atrás el lenguaje HTML, apostando por un lenguaje más completo,
extensible y compatible, elaborado desde cero en busca de la compatibilidad y la
estandarización.
Tema 1. Herramientas básicas para sitios Web 4
6. Desarrollo de Páginas Web
1.1Conceptos básicos de la tecnología internet
HTML (HiperText Markup Language). Lenguaje de marcas de hipertexto.
La ventaja del html es que soporta el hipertexto por medio de ligas, botones,
hotspots, etc, lo que nos permite acceder de una página a otra, llamar videos,
audio, animaciones, etc.
El concepto de hipertexto fue acuñado por Ted Nelson, en 1965, y se basa en la
idea general de unos elementos de texto especiales dentro de un documento que
permiten, al ser activados, enlazar con otra parte del documento o con otro
documento diferente. Este sistema de relación entre documentos o partes de los
mismos fue la extensión a INTERNET de los siempre usados índices o relaciones
bibliográficas, pero que ahora permitían acceder a la sección o documento
referenciado de forma inmediata.
Con esta base, en 1989 un joven investigador del CERN, Tim Berners-Lee, tuvo la
genial idea de crear un entorno para compartir información tal que un documento
fuese accesible por cualquier ordenador conectado a INTERNET, sin importar
dónde estuvieran el host servidor del documento o el host que lo solicitaba.
Además, debería ser posible enlazar mediante hipertexto diferentes documentos o
recursos sin límites de localización geográfica, de tal forma que el usuario pudiera
“navegar” de forma transparente por dichos documentos, consiguiéndose así una
cadena de información descentralizada.
Pero este planteamiento requería nuevas especificaciones, nuevas formas de
comunicar diferentes equipos informáticos, nuevas implementaciones de carácter
general. Así que en CERN, la NSCA y diversos organismos pusieron manos a la
obra, y el resultado fue:
1. Para poder transferir de forma adecuada los diferentes documentos de
hipertexto por INTERNET se creó un protocolo de red específico, el HTTP
(Hipertext Transfer Protocol), basado en el envió de documentos de texto plano
en formato ASCII y de ciertas cabeceras que aportan la información necesaria
para la transmisión.
2. Para poder identificar un documento o recurso de Internet de forma unívoca fue
necesario asignar a cada uno de ellos una especie de dirección única, que se
denominó URL (Uniform Resource Locator), que indica tanto la localización
exacta del recurso como el protocolo necesario para su transferencia. La forma
genérica de la URL de una página web es:
http://www.servidor.dominio/carpeta/pagina.html
Tema 1. Herramientas básicas para sitios Web 5
7. Desarrollo de Páginas Web
Como por ejemplo: http://www.htmlweb.net/redes/redes.html
Aunque en realidad la parte dominio corresponde con la tecnología TCP/IP la
cual se denomina dirección IP.
3. Para poder dar formato a los datos presentes en el documento Web se
desarrolló un lenguaje específico, el HTML (HyperText Mark – up Language –
Lenguaje de Marcas de Hipertexto), que permitía asignar un formato especial
de presentación a los elementos del documento contenidos entre unas
etiquetas especiales, denominadas marcas o tags.
4. Por último, para poder interpretar y visualizar correctamente los documentos
así creados fue necesario crear unas interfaces específicas, que se
denominaron browsers (navegadores) como podrían ser Netscape, Explorer,
Mozilla o Firefox. Dichas páginas generalmente son realizadas con el lenguaje
llamado HTML y puede incluir textos, gráficos y archivos multimedia. Todos
ellos se encuentran en un servidor al cual se le puede solicitar la información
en cualquier momento y el navegador la despliega de acuerdo a las
instrucciones que tiene el documento HMTL.
Estos fueron los pilares esenciales de los cuales se construyó la WWW (World
Wide Web), la gran telaraña mundial de páginas Web (documentos Web
visualizados en un navegador). El WWW es un sistema de información global,
público e independiente, mediante el cual un usuario cualquiera puede acceder a
documentos HTML almacenados en diferentes servidores ubicados en cualquier
parte del mundo, pudiendo saltar de un servidor a otro de forma instantánea
mediante los enlaces de hipertexto contenidos en las páginas Web.
El protocolo HTTP se encuentra actualmente en su versión 1.1, que mejora
sustancialmente al la anterior, el HTTP 1.0, sobre todo en lo que respecta al
manejo de conexiones entre navegador cliente y servidor Web, permitiendo la
descarga de los diferentes elementos que forman una página Web en una sola
conexión.
Estas mejoras, junto con las que ha tenido el lenguaje HTML (actualmente en su
versión 4.01, de septiembre del 2001), han permitido que en la actualidad las
páginas Web sean verdaderos documentos multimedia, con imágenes, sonidos y
videos, algo inimaginable en los momentos de la creación de la Web, de tal forma
que es frecuente encontrar ahora el término “hipermedia” evolución del concepto
de hipertexto.
La mayoría de los equipos puede desplegar paginas Web, la visualización de
dichas páginas depende del equipo del usuario, el monitor, la velocidad de
conexión y el software utilizado para visualizar dicha página (navegador o
Tema 1. Herramientas básicas para sitios Web 6
8. Desarrollo de Páginas Web
browser). Recientemente la tecnología permite la visualización de algunas páginas
en celulares, pda’s, televisores, por lo que en caso de ser necesario se deberán
realizar varias versiones de un mismo sitio para su correcta visualización en los
diversos dispositivos.
En toda petición de una página Web intervienen diferentes entidades: por un lado,
el programa navegador en el host que realiza la solicitud y por otro lado un
programa servidor alojado en un host remoto (denominado servidor Web). Ambos
programas/equipos se comunican entre sí por medio del acceso a Internet que
facilita un ISP (Proveedor de Servicios de Internet) y de las extensiones de red
que proporciona una determinada compañía, generalmente de telefonía.
Para establecer la conexión necesaria entre ambas máquinas se utiliza una
arquitectura de interconexión de redes, generalmente la arquitectura TCP/IP, en la
que los datos en la transmisión van pasando sucesivamente por diferentes
dispositivos de red (generalmente routers) desde el host emisor al host destino.
Este sistema de comunicación, en el que un host realiza peticiones que son
atendidas y contestadas por otro remoto, se denomina arquitectura cliente-
servidor. El host que realiza la petición es el cliente, mientras que el host que
contesta dicha petición es el servidor.
Los servidores son pues los encargados de almacenar los ficheros HTML, junto
con las imágenes, ficheros CSS, ficheros javascript, etc., necesarios para la
correcta visualización de la página Web. Un mismo servidor Web puede estar
atendiendo a la vez a diferentes navegadores cliente.
En este entorno de trabajo, cuando un navegador cliente solicita una página web
al servidor se establece una conexión entre ambos, transfiriéndose entonces los
ficheros necesarios desde el servidor al navegador, mediante el protocolo HTTP.
En el caso de HTTP 1.0 cada uno de los ficheros de la página precisa una
conexión y descarga independiente (transacción), por lo que si la página contiene
muchas imágenes, por ejemplo, el proceso de carga de la misma se retrasa
considerablemente. Este factor se ha mejorado en la versión HTTP 1.1, en la que
una única conexión se mantiene para la descarga de todos los ficheros necesarios
para visualizar la página solicitada.
Un factor a tener en cuenta en cuanto a HTTP es que no es un protocolo orientado
al mantenimiento de estados. Esto quiere decir que cada conexión realizada entre
el navegador cliente y el servidor Web es independiente, no manteniéndose
variables de sesión ni de aplicación, con lo que el almacenamiento de claves,
variables, etc. debe realizarse mediante herramientas auxiliares (programación en
CGI, ASP, JSP, etc.).
Las páginas desplegadas se guardan temporalmente en la máquina del usuario y
es lo que se le conoce como caché o archivos temporales, esto es para optimizar
Tema 1. Herramientas básicas para sitios Web 7
9. Desarrollo de Páginas Web
la velocidad de visualización del sitio la próxima vez en la que se accede a la
página.
1.2Dreamweaver: Generación de páginas Web en forma visual
Dreamweaver es uno de los productos de Adobe el cual permite ver lo que se verá
en línea relativamente, pues no siempre ocurre así. Entre estos programas se
encuentran: Adobe GoLive, NetObjects, Fusion, Amamya, entre otros.
Estos programas son bastante amigables para los usuarios, se pueden generar
sitios completos de forma muy rápida debido a que tienes de facilidad de arrastrar
los elementos y generar las páginas como si se estuviera trabajando en Word. Por
desgracia esta forma de crear sitios, tiene un precio: estos programas generan
mucha basura en el código HTML. Por lo que el tener el conocimiento sobre el
HTML ayudará en mucho a aquellos que diseñen en los programas WYSYWYG
(What you see is what you get) a optimizar el código.
Así como existen los programas mencionados anteriormente, están los editores de
HTML como: Homesite, Aracnophilia, HotDog, CoffeCup, 1rstPage, BBEdit,
Emacs, etc. Parecería que el desarrollar sitios con este tipo de programas sería un
trabajo arduo y pesado, sin embargo, ayuda a comprender mejor el lenguaje y en
un tiempo determinado se tiene un mayor control sobre el diseño del sitio y sobre
aquellos errores que en un programa WYSYWYG sin experiencia sería difícil de
solucionar. Estos programas también vienen integrados con varias herramientas y
con la opción de ir visualizando el diseño en el navegador, al igual que
dreamweaver.
Dreamweaver te permite visualizar el código fuente, el diseño y el diseño – código
fuente por lo que es posible eliminar toda la basura generada por éste siempre y
cuando se sepa qué significa cada etiqueta, por lo que lo más recomendable al
elegir un programa para desarrollar cualquier sitio es tener conocimiento básico de
HMTL y comprender su estructura, la mejor forma de ir aprendiendo sobre esta
navegar en los sitios que ya están en línea y ver el código fuente, el cual se puede
visualizar de la siguiente manera:
Internet Explorer ver Código Fuente
Netscape ver Fuente de la página
Tema 1. Herramientas básicas para sitios Web 8
10. Desarrollo de Páginas Web
1.3Producción de páginas Web con lenguaje de programación
HTML
Desde un principio las grandes empresas involucradas en el desarrollo de
aplicaciones basadas en el intercambio de datos por red buscaban un sistema de
organización estructurada de documentos. IBM creó GML (Lenguaje de Marcado
Generalizado) para las necesidades de sus sistemas internos de edición, aunque
no pasó de ser un lenguaje de uso interno.
La primera tecnología de información estandarizada y estructurada fue SGML
(Lenguaje de Marcado Generalizado Estándar). SGML, que también fue creado
por IBM, comenzó a ser utilizado por un amplio número de sectores como
estándar de información de propósito general. En 1986 SGML surge como
estándar ISO, pero debido a su elevada complejidad y coste no pasó a convertirse
en un estándar de hecho.
En 1989, Tim Berners – Lee y Anders Berglund, dos investigadores del
Laboratorio Europea de Física de Partículas (CERN), crearon un lenguaje basado
en etiquetas e hipertexto para marcar documentos técnicos con el fin de
compartirlos en Internet. Así surgió una aplicación simplificada del SGML llamado
HTML (Lenguaje de Marcas de Hipertexto), que se convirtió en el primer formato
de información estándar en la Web.
En sus diferentes versiones, el lenguaje HTML ha ido sufriendo modificaciones
que han ido adaptándolo a las necesidades y características de la INTERNET de
cada momento. De esta forma, etiquetas que inicialmente se implementaron se
han ido suprimiendo luego, mientras que han ido introduciéndose etiquetas nuevas
en cada versión.
Y no sólo eso, si no que cada empresa fabricante de navegadores ha ido
implementando etiquetas y extensiones propias al lenguaje, de tal forma que llegó
un momento en el que reinó un caos casi total, resultando muy difícil la creación
de páginas Web que se visualizaran igual en los diferentes navegadores.
Para poner un poco de orden en esta situación, diversas empresas del sector
(Nestcape, Microsoft, etc.) y diferentes organismos interesados crearon en 1996 y
a instancias de Tim Berners-Lee, el World Wide Web Consortium, más conocido
como W3C, que ha tomado bajo su responsabilidad la evolución de los protocolos
y estándares asociados con la Web.
Al Consorcio de la WWW les pertenecen un gran número de empresas y
organizaciones relacionadas con la Web, incluyendo AT&T, Adobe Systems, Inc.,
Microsoft Corporation y Sun Microsystems, Inc. Su propósito es promover el
crecimiento de la Web desarrollando especificaciones y software de referencia.
Tema 1. Herramientas básicas para sitios Web 9
11. Desarrollo de Páginas Web
El Consorcio es administrado por el MIT y el INRIA, en colaboración con el CERN,
siendo su tarea principal la de recomendar a las empresas y desarrolladores
interesados en la Web una serie de pautas sobre cómo deben implementarse los
diferentes lenguajes (HTML, CSS, XML, etc.) y tecnologías implicados.
En cada versión del lenguaje HTML las empresas van siguiendo cada vez más las
recomendaciones del consorcio, de tal forma que los navegadores Web de última
generación (Internet Explorer 7.0 y Netscape Browser 8.1.2) poseen una mecánica
de interpretación de código muy parecida, por lo que se espera que en futuras
versiones se pudiera escribir un mismo código compatible con ambos. En caso
contrario el desarrollo del lenguaje XML sería la solución ideal para dejar atrás el
lenguaje HTML, apostando por un lenguaje más completo, extensible y
compatible, elaborado desde cero en busca de la compatibilidad y la
estandarización.
A la hora de diseñar y construir las páginas Web, una de las principales tareas de
todo diseñador va a ser escribir un código HTML compatible con Internet Explorer
y con Nestcape Navigator, ya que ambos navegadores renderizan las etiquetas de
forma diferente en muchos casos, y en otros poseen etiquetas propias, que no son
soportadas por el otro. Como norma general, hay que construir páginas que se
visualicen de forma análoga en ambos navegadores, y si la analogía no puede ser
perfecta, por lo menos que se visualicen de forma correcta en ambos.
Al margen de estas consideraciones, como lenguaje de marcas que es, el lenguaje
HTML se basa en la introducción en el texto del documento de una serie de
etiquetas especiales, que generalmente van en pareja de apertura-cierre, que van
a definir el aspecto con que se presentarán los textos, imágenes u otros elementos
incluidos entre ambas. Es decir, mediante HTML se estructuran los documentos
de una forma lógica para su presentación en los navegadores cliente.
Su sintaxis general es del tipo:
<etiqueta>contenido entre etiquetas</etiqueta>
Donde podemos apreciar cómo las etiquetas se delimitan mediante los símbolos <
>, y cómo la etiqueta de cierre lleva al principio el símbolo /. Ejemplo:
<b>Este texto va en negrita</b>
Tema 1. Herramientas básicas para sitios Web 10
12. Desarrollo de Páginas Web
Además, cada etiqueta puede poseer una serie de atributos que modifiquen o
amplíen su funcionalidad, atributos que pueden ser obligatorios u opcionales. La
sintaxis general de una etiqueta con atributos es:
<etiqueta atributo1=”valor” atributo2=”valor”> Contenido entre etiquetas </etiqueta>
Donde puede haber tantos atributos como sea necesario, ejemplo:
<h2 align=”center”>Cabecero</h2>
No es necesario, pero si conveniente encerrar los valores de los atributos entre
comillas dobles.
Aunque la mayoría de las etiquetas llevan pareja de cierre, existen algunas que no
siguen esta norma, generalmente etiquetas útiles para definir elementos vacíos,
sin contenido interno. Este es el caso de la etiqueta usada para incluir una imagen
o de la etiqueta definitoria de un salto de línea:
Hola<br>amigo
En cuanto a usar mayúsculas o minúsculas en la definición de etiquetas y
atributos, HTML no distingue entre unas y otras, por lo que podemos usar el
sistema que más nos guste. Eso si, o ponemos todas las etiquetas en mayúsculas,
o las ponemos todas en minúsculas, pero nunca mezcladas. Lo mismo podemos
decir respecto a los atributos, aunque generalmente los valores de estos de
escriben en minúsculas (salvo los códigos de colores en hexadecimal, que se
suelen poner en mayúsculas).
1.3.1 Estructura básica de un documento
Vamos a definir una página Web como aquello que el usuario ve en la ventana de
su navegador, mientras que un documento Web será el código interno que genera
la página, y que por lo tanto contendrá elementos visibles en la página Web y
otros elementos que no serán visibles en ningún momento en la ventana del
navegador.
Ambos conceptos se suelen identificar, y no ocurre nada por hacerlo así. Nosotros
vamos a separar ambos conceptos tan sólo con vistas a un mejor entendimiento
de las explicaciones.
Tema 1. Herramientas básicas para sitios Web 11
13. Desarrollo de Páginas Web
Pues bien, un documento Web consta básicamente de dos partes o secciones
bien diferenciadas:
1. Cabecera o head: porción de código comprendida entre las etiquetas
<HEAD> y </HEAD>, cuyo contenido no es visible en la ventana del
navegador.
2. Cuerpo o body: porción de código comprendida entre las etiquetas <BODY>
y </BODY>, cuyo contenido si es visible en la ventana del navegador.
Ambas secciones se encuentran siempre dentro de la pareja de etiquetas
delimitadoras <HTML> y </HTML>, que son las que fundamentalmente delimitan
el contenido de todo documento Web:
<html>
<head>
Cabecera
</head>
<body>
Cuerpo
</body>
</html>
Es posible, y así lo hacen algunas personas, prescindir de la inclusión de alguna
de las etiquetas, ya que los navegadores están preparados para conocer qué
elementos pertenecen a la cabecera de un documento y cuáles pertenecen al
cuerpo. Pero esta práctica es totalmente desaconsejable, ya que las etiquetas y
sus correspondientes parejas de cierre tienen un motivo de ser, están ahí para
delimitar con claridad las diferentes partes de un documento, haciéndolo más claro
y estructurado. Y esto es aplicable a todas las etiquetas HTML, sin excepción de
ningún tipo.
Tema 1. Herramientas básicas para sitios Web 12
14. Desarrollo de Páginas Web
Tema 2. Herramientas de diseño gráfico para web
Subtemas
2.1 Dibujo y manejo de imágenes
2.2 Java
2.3 Applets y Servlets
2.4 Javascript
Objetivo de Aprendizaje
Al término del tema el estudiante empleará correctamente los formatos de
compresión de imágenes y tendrá un primer acercamiento con otro lenguaje
llamado Java y Javascript y los posibles usos de este lenguaje.
Introducción
Los gráficos utilizados en Web requieren un tratamiento especial, pues no es lo
mismo para su uso en editorial, en primera instancia la resolución utilizada es de
72dpi, además de que para cada tipo de imagen se utiliza un formato de
compresión distinta, por ejemplo para degradados se recomienda el uso del
formato jpeg, mientras que para su uso en flash es recomendable el uso del
formato png. Cualesquiera que sean las necesidades del proyecto Web será
necesario conocer los diversos formatos de compresión y hacer el uso correcto de
los mismos.
Para el desarrollo de páginas ó aplicaciones Web existen varios lenguajes de
programación además del HTML, uno de ellos es el Java el cual es independiente
de las plataformas y navegadores por lo que se supone que las aplicaciones
desarrolladas en Java pueden ser ejecutadas en cualquier ordenador.
Afortunadamente Java implementa consigo un gran número de clases, incluidas
gratuitamente en su entorno de desarrollo, para realizar muy variadas tareas que
permiten al desarrollador centrarse en las características más inherentes a su
proyecto.
2.1 Dibujo y manejo de imágenes
Al trabajar sobre publicaciones digitales los gráficos e imágenes requieren un
tratamiento especial. Generalmente, lo que se busca de un sitio es que sea
dinámico y atractivo, pero sobre todo, que descargue rápidamente, es incómodo
para cualquier usuario esperar minutos para poder acceder a la página y cuando
Tema 2. Herramientas de diseño grafico para Web 13
15. Desarrollo de Páginas Web
esto sucede, es muy probable que ni siquiera termine viéndola. Por ello, existen
varios formatos para el tratamiento de imágenes, cada uno responde ciertas
necesidades como se verá a continuación.
Formato GIF (Graphic Interchange Format ó Formato Gráfico Intercambiable)
El formato GIF es recomendable para imágenes con un área de color homogénea
y sin texturas complejas, debido a que su sistema de compresión se basa en
eliminar los colores innecesarios reduciendo la paleta de colores a 256 colores u 8
bits. Una de las ventajas de este formato es que desde un principio el usuario
puede ver la imagen, un poco borrosa, pero al finalizar la descarga ya se visualiza
correctamente. Y por última ventaja es que permite el uso de transparencia en los
colores, pero al aplicarlo en un fondo distinto a su color original, puede mostrar un
halo blanco no deseado, por lo que no es muy recomendable su uso a menos que
se haga un retoque exhaustivo de la imagen.
Uso del formato GIF Uso del formato JPEG
Formato JPEG (Joint Photographic Experts Group ó Estándar del grupo de
Expertos Fotográficos)
Este formato es muy utilizado por la compresión que hace de los archivos, el
tamaño final del archivo puede ser hasta 100 veces más pequeño, lo que permite
el uso de varias imágenes y gráficos dentro de las páginas web, mientras mayor
compresión haya en la imagen, menor será la calidad de la imagen y se mostrará
un ruido visual. Se utiliza generalmente para fotografías o gráficos con mucha
textura. También tiene la cualidad de mostrarse desde un principio siempre y
Tema 2. Herramientas de diseño grafico para Web 14
16. Desarrollo de Páginas Web
cuando se guarde como un jpeg progresivo, muy útil en su uso en html, sin
embargo cuando se utiliza en flash con vinculación externa, causa problemas en
su visualización.
Uso del formato GIF Uso del formato JPEG
Formato PNG (Portable Network Graphic ó Gráficos portátiles en red)
Este formato fue diseñado específicamente para su desempeño en la web, tiene
las mismas cualidades y sistema de compresión del formato GIF. Aún sigue en
desarrollo, algunos navegadores no permiten su correcta visualización, por lo que
no es muy recomendable su uso directamente en el html actualmente, se dice que
este formato revolucionará en la web, pero aún queda por verse. Su uso en Flash
resulta bastante atractivo por el tamaño final o para fondos transparentes.
Tema 2. Herramientas de diseño grafico para Web 15
17. Desarrollo de Páginas Web
2.2 Java
Es un lenguaje de programación desarrollado por Sun Microsystems.
Es independiente de las plataformas por lo que el supuesto es que el programa
desarrollado se podría ejecutar en cualquier ordenador. Por otro lado un desarrollo
en Java nunca empieza desde cero. Java implementa consigo un gran número de
clases, incluidas gratuitamente en su entorno de desarrollo, para realizar muy
variadas tareas que permiten al desarrollador centrarse en las características más
inherentes a su proyecto.
Sun distribuye gratuitamente desde su página Web, el entorno de desarrollo Java
llamado indistintamente con estas siglas: JDK, SDK o J2SE. Este paquete incluye
como hemos dicho las clases incluidas ya en java, es decir el API de Java.
También incluye el compilador de Java y lo que permite a Java funcionar en
nuestro ordenador: el JRE (Java Runtime Enviroment).
El JRE incluye los elementos necesarios para hacer funcionar programas java en
nuestro ordenador. Principalmente nos instala la Maquina Virtual de Java y los
plugins necesarios para el/los navegador/es instalados en nuestro sistema. El JRE
también se puede descargar independientemente del entorno de desarrollo, pues
se distribuye en un paquete llamado J2RE.
Un programa compilado con Java no tiene código comprensible por ningún
procesador, ese código solo lo entiende la Máquina virtual de Java y lo traduce a
código que si pueda ser comprensible por el procesador sobre el que funciona y
además lo puede hacer funcionar sobre el sistema operativo sobre el que está
instalada. Por tanto lo único dependiente del Hardware es la máquina virtual, pues
tiene que conocer lo que tiene por debajo para llevar a cabo la traducción, pero los
programas en java siempre pueden funcionar sobre una maquina virtual esté
donde esté instalada.
Hoy en día, se puede encontrar la tecnología Java en redes y dispositivos que
comprenden desde Internet y superordenadores científicos hasta portátiles y
teléfonos móviles; desde simuladores de mercado en Wall Street hasta juegos de
uso doméstico y tarjetas de crédito: Java está en todas partes.
¿Para qué nos puede servir?
Desarrollar software en una plataforma y ejecutarlo en prácticamente
cualquier otra plataforma
Tema 2. Herramientas de diseño grafico para Web 16
18. Desarrollo de Páginas Web
Crear programas para que funcionen en un navegador Web y en servicios
Web
Desarrollar aplicaciones para servidores como foros en línea, tiendas,
encuestas, procesamiento de formularios HTML, etc.
Combinar aplicaciones o servicios basados en la tecnología Java para crear
servicios o aplicaciones totalmente personalizados
Desarrollar potentes y eficientes aplicaciones para teléfonos móviles,
procesadores remotos, productos de consumo de bajo coste y prácticamente
cualquier dispositivo digital
2.3 Applets y Servlets
Applet: Una aplicación especial que se ejecuta en el navegador del cliente.
El software de Java le permite ejecutar aplicaciones como las que se han descrito
utilizando el lenguaje de programación de Java y que reciben el nombre de
"applets". Los applets le permiten jugar en línea, participar en sesiones de chat
con internautas de todo el mundo, calcular los intereses de una hipoteca y ver
imágenes en tres dimensiones. En las empresas también se utilizan los applets en
aplicaciones de la intranet y soluciones de comercio electrónico.
Servlet: Una aplicación especial sin Interfaz que se ejecuta en servidor. Es similar
a los scripts CGI, salvo que ofrecen independencia de la plataforma.
Requisitos
El servidor debe tener una máquina virtual Java.
El servidor debe soportar la API de los servlets Java.
JavaServer Web Development Kit (JSWDK).
http://java.sun.com/products/servlet/
Servidores capaces de ejecutar servlets:
• Java Web Server
• Netscape Fast Track y Enterprise
Tema 2. Herramientas de diseño grafico para Web 17
19. Desarrollo de Páginas Web
• O’Reilly WebSite Professional
• Lotus Domino Go WebServer
• Novel IntraNetWare
• IBM Internet Connection Server
Ejecución de un servlet
Formas de iniciar la ejecución:
• Introducir la dirección URL del servlet en un navegador web.
• Llamar al servlet desde una página web.
• Ejecutar un servlet llamándolo desde otro servlet.
2.4 Javascript
JavaScript es un lenguaje de scripts desarrollado por Netscape para incrementar
las funcionalidades del lenguaje HTML. Sus características más importantes son:
JavaScript es un lenguaje interpretado, es decir, no requiere compilación. El
navegador del usuario se encarga de interpretar las sentencias JavaScript
contenidas en una página HTML y ejecutarlas adecuadamente.
JavaScript es un lenguaje orientado a eventos. Cuando un usuario presiona un
enlace o mueve el puntero sobre una imagen se produce un evento. Mediante
JavaScript se pueden desarrollar scripts que ejecuten acciones en respuesta a
estos eventos.
JavaScript es un lenguaje orientado a objetos. El modelo de objetos de
JavaScript está reducido y simplificado, pero incluye los elementos necesarios
para que los scripts puedan acceder a la información de una página y puedan
actuar sobre la interfaz del navegador.
Tema 2. Herramientas de diseño grafico para Web 18
20. Desarrollo de Páginas Web
Tema 3. Programación en Internet
Subtemas
3.1 Vínculo Javascript con HTML
3.2 Código del lado del cliente – Código del lado del servidor
3.3 Generación de dinámica de páginas
3.3.1 Conceptos ASP
3.3.2 Conceptos PhP
3.3.3 Conceptos CGL
3.3.4 Conceptos Perl
3.4 Base de Datos
3.5 Seguridad
3.6 Estructuración de lenguaje estructurado
Objetivo de Aprendizaje
Al término del tema el estudiante conocerá los principios básicos para la
programación de páginas dinámicas del lado del servidor y sus diversas
aplicaciones, en diferentes lenguajes como lo son ASP, PHP, PERL.
Introducción
Existen dos modalidades en el que se pueden aplicar los lenguajes: Los lenguajes
de lado servidor que son aquellos lenguajes que son reconocidos, ejecutados e
interpretados por el propio servidor y que se envían al cliente en un formato
comprensible para él, ejemplo PHP, ASP o PERL.
Los lenguajes de lado cliente (entre los cuales no sólo se encuentra el HTML sino
también el Java y el JavaScript los cuales son simplemente incluidos en el código
HTML) son aquellos que pueden ser directamente decodificados por el navegador.
Los lenguajes que se ejecutan del lado del servidor tienen una estructura similar
en cuanto a variables, operadores y funciones, cada uno de los lenguajes
presentan sus ventajas y desventajas como las que veremos posteriormente y
cubren necesidades distintas dependiendo del proyecto que se esté desarrollando.
Por ejemplo: El ASP (Active Server Pages) es un lenguaje derivado del Visual
Basic desarrollado por Microsoft. Evidentemente su empleo se realiza sobre
plataformas funcionando bajo sistema Windows NT.
El PHP podría ser considerado como el lenguaje análogo al ASP utilizado en
Tema 3. Programación en Internet 19
21. Desarrollo de Páginas Web
plataformas Unix y Linux.
El PERL es un lenguaje más rápido y potente que requiere obviamente un
aprendizaje más largo y resulta más reservado para personas ya familiarizadas
con la verdadera programación.
3.1 Vínculo JavaScript con HTML
Básicamente existen dos formas de introducir un script de JavaScript en una
página HTML:
Los scripts que queramos utilizar en una página suelen escribirse en la misma,
normalmente entre las etiquetas <head> y </head>. Determinados scripts pueden
aparecer entre las etiquetas <body> y </body> (por ejemplo, gestores de eventos,
o scripts que escriben código on-line), pero lo normal es que la mayoría de las
funciones estén en la cabecera de la página.
El siguiente código muestra un ejemplo de código JavaScript introducido en el
código HTML de una página. Como se observa, el código JavaScript se encuentra
entre las marcas de comentario HTML <!-- y -->, para que los navegadores
antiguos (que no soportan las etiquetas script) no muestren el código fuente en la
página. Además, delante de la marca de cierre de comentario HTML se insertan
los caracteres //, que en JavaScript significan ignorar el resto de la línea, para que
el intérprete JavaScript no dé error por la línea --> de comentario HTML.
<HTML>
<HEAD>
<TITLE>Introducción a JavaScript</TITLE>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function saludo() {
window.alert('¡Bienvenido a JavaScript!')
}
//-->
</SCRIPT>
</HEAD>
<BODY onLoad="saludo()">
</BODY>
</HTML>
La otra forma de vincular el Javascript con el HTML es la siguiente: como archivo
*.js se carga con la página HTML. Para ello, debe indicarse en las etiquetas
Tema 3. Programación en Internet 20
22. Desarrollo de Páginas Web
anteriores el nombre y ubicación del archivo *.js que contiene el script JavaScript,
como en este ejemplo:
<HTML>
<HEAD>
<TITLE>Tutorial de JavaScript</TITLE>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript" SRC="codigo.js"></SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
3.2 Código del lado del cliente – Código del lado del servidor
El navegador es una aplicación capaz de interpretar las órdenes recibidas en
forma de código HTML fundamentalmente y convertirlas en las páginas que son el
resultado de dicha orden.
Cuando nosotros hacemos click sobre un enlace hipertexto, en realidad lo que
pasa es que establecemos una petición de un archivo HTML residente en el
servidor (un ordenador que se encuentra continuamente conectado a la red) el
cual es enviado e interpretado por nuestro navegador (el cliente).
Los lenguajes de lado servidor que son aquellos lenguajes que son reconocidos,
ejecutados e interpretados por el propio servidor y que se envían al cliente en un
formato comprensible para él.
Los lenguajes de lado cliente (entre los cuales no sólo se encuentra el HTML sino
también el Java y el JavaScript los cuales son simplemente incluidos en el código
HTML) son aquellos que pueden ser directamente decodificados por el navegador.
Cada uno de estos tipos tiene por supuesto sus ventajas y sus desventajas. Por
ejemplo, un lenguaje de lado cliente es totalmente independiente del servidor, lo
cual permite que la página pueda ser albergada en cualquier sitio sin necesidad de
pagar más, debido a que por regla general, los servidores que aceptan páginas
con scripts de lado servidor son en su mayoría son de pago o sus prestaciones
son muy limitadas.
El lenguaje de lado servidor es independiente del cliente por lo que es mucho
menos rígido respecto al cambio de un navegador a otro o respecto a las
versiones del mismo. Por otra parte, los scripts son almacenados en el servidor
que los ejecuta y traduce a HTML por lo que permanecen ocultos para el cliente.
En el dominio de la red, los lenguajes de lado servidor más ampliamente utilizados
para el desarrollo de páginas dinámicas son el ASP, PHP y PERL.
Tema 3. Programación en Internet 21
23. Desarrollo de Páginas Web
El ASP (Active Server Pages) es un lenguaje derivado del Visual Basic
desarrollado por Microsoft. Evidentemente su empleo se realiza sobre plataformas
funcionando bajo sistema Windows NT.
El PHP podría ser considerado como el lenguaje análogo al ASP utilizado en
plataformas Unix y Linux.
Estos dos lenguajes resultan bastante útiles para la explotación de bases de datos
y su aprendizaje resulta accesible. Cualquiera de ellos resultaría la opción ideal a
la hora de hacer evolucionar un sitio Web realizado en HTML.
Por otra parte, el PERL es un lenguaje más rápido y potente que requiere
obviamente un aprendizaje más largo y resulta más reservado para personas ya
familiarizadas con la verdadera programación.
3.3 Generación dinámica de páginas
Se puede escribir una página dinámica del mismo modo que si lo hacemos en
HTML. El código está constituido exclusivamente de texto y lo único que tenemos
que hacer por lo tanto es guardar el archivo texto con una extensión que pueda
ser reconocida posteriormente por el servidor. Así, por ejemplo, las páginas de
ASP son reconocidas por su extensión "asp" del mismo modo que las de PHP lo
son a partir de extensiones "php" u otras en las que se especifica la versión
utilizada ("php3" o "php4"). En muchos casos el servidor nos permite seleccionar
qué tipo de extensión debe ser reconocida para un determinado lenguaje por lo
que estas extensiones no están totalmente generalizadas aunque son sin duda las
más utilizadas.
Dado que se trata únicamente de archivos texto, es posible crear páginas
dinámicas a partir del Bloc de Notas o cualquier otro procesador de texto plano.
También podemos utilizar los editores clásicos empleados para el HTML aunque
en este caso, estamos obligados a trabajar en modo editar y no en modo gráfico.
Esta última posibilidad resulta tanto menos aconsejable cuanto que la mayoría de
estos editores no están preparados para la programación en estos lenguajes y
algunos de ellos como Frontpage en sus versiones anteriores a la 2000 tiende a
borrar aquellos textos que no es capaz de interpretar.
Existen sin embargo algunos editores de HTML que si ofrecen ventajas al editar
scripts.
Tal es el caso del Homesite que muestra colaboraciones diferentes en función de
la sintaxis del programa lo cual permite una lectura más fácil. Además, hay otra
Tema 3. Programación en Internet 22
24. Desarrollo de Páginas Web
serie de editores más pensados para páginas dinámicas en general o para algún
lenguaje en particular.
Una vez el programa es desarrollado, el paso inmediato es el de ejecutarlo.
Como ya ha sido explicado, los lenguajes de lado servidor ejecutan los scripts en
el propio servidor y envían el resultado en forma de código HTML al cliente
(navegador). Resulta obvio que para probar entonces el programa es necesario
colgar por FTP los archivos que lo componen en el servidor y hacer la petición
desde el navegador. En principio, por lo tanto no es posible trabajar offline a partir
de archivos alojados en el disco duro, esto en realidad no es completamente cierto
ya que existe la posibilidad de convertir nuestro propio ordenador en servidor Web
personal de manera que podemos trabajar en local sin necesidad de estar
conectados continuamente.
Como puede verse, la forma de operar resulta casi análoga a lo que hacíamos
para nuestro sitio estático y no presenta ninguna complicación aparente. Cabe
destacar que, como ya se ha dicho anteriormente, para poder servirse de estos
lenguajes de lado servidor, es imprescindible que el servidor esté preparado para
leer las páginas programadas en un lenguaje no comprendido por el navegador.
Dichos servidores son en su gran mayoría de pago lo cual añade ciertas
limitaciones económicas al proyecto.
Conceptos básicos de programación
Antes de abordar en detalle las particularidades de estos lenguajes, es importante
tener en cuenta una serie de nociones básicas comunes como las que veremos a
continuación:
Variable: Una variable consiste en un elemento al cual le damos un nombre y le
atribuimos un determinado tipo de información. Las variables pueden ser
consideradas como la base de la programación.
Ej.
a="hola"
b="cómo estás?"
La variable que nosotros llamamos "a" posee un elemento de información de tipo
texto que es "hola". Asimismo, la variable "b" contiene el valor " cómo estás?".
Podríamos de la misma forma trabajar con variables que contuviesen números y
construir nuestro programa:
a=3
b=4
Tema 3. Programación en Internet 23
25. Desarrollo de Páginas Web
c=a+b
imprimir(c)
El resultado de la impresión del programa sería: 7
Funciones y procedimientos
La función podría ser definida como un conjunto de instrucciones que permiten
procesar las variables para obtener un resultado.
Ejemplo:
Queremos calcular el valor total de un pedido a partir de la simple suma de los
precios de cada uno de los artículos. Podríamos definir una función suma en
nuestro lenguaje ficticio:
definir function suma(art1,art2,art3)
suma=art1+art2+art3
imprimir(suma)
fin function
Este supuesto programa nos permitiría calcular la suma de tres elementos e
imprimir el resultado en pantalla. Lo interesante de utilizar este tipo de funciones
es que ellas nos permiten su utilización sistemática tantas veces como queramos
sin necesidad de escribir las instrucciones tantas veces como veces queremos
utilizarla. Por supuesto, podemos prescindir de esta declaración de función e
introducir una línea del siguiente tipo:
imprimir(art1+art2+art3)
Evidentemente, cuanto más complicada sea la función y más a menudo la
utilicemos en nuestros scripts más útil resulta definirlas.
Esta función suma podría ser utilizada en cualquier lugar de nuestro script
haciendo una llamada del siguiente tipo:
ejecuta suma(4,6,9)
Cuyo resultado sería: 19
Tema 3. Programación en Internet 24
26. Desarrollo de Páginas Web
Del mismo modo, los procedimientos son parecidos a las funciones. La diferencia
consiste tan solo en que en estos últimos el interés no radica en el resultado
obtenido sino más bien en las operaciones realizadas al ejecutarla (creación de un
archivo, reenvío a otra página, etc.). En lenguajes como el PHP las funciones y los
procedimientos son considerados como la misma cosa y para definirlos se hace
usando los mismos comandos.
Tanto las variables como las funciones y los procedimientos deben ser nombradas
sin servirse de acentos, espacios ni caracteres especiales para no correr riesgos
de error.
Estos conceptos son básicos para una comprensión de la programación dinámica
de páginas en cualquiera de los lenguajes utilizados comúnmente.
3.3.1 Conceptos ASP
ASP
Definición La tecnología ASP (Active Page Server – Página Activa en el
Servidor) no es en sí mismo un lenguaje de programación, si no más
bien un marco sobre el que se construyen aplicaciones basadas en
Internet, apoyándose para ello en el lenguaje HTML, en lenguajes de
script conocidos (generalmente VBScript, pero también JavaScript –
Jscript para Microsoft-, Perl, etc.), en motores de bases de datos y en
el lenguaje de consulta SQL. Debido a esta conjunción de
tecnologías diferentes es más acertado considerar una aplicación
ASP en su conjunto que una serie de páginas web aisladas.
Características • Viene implementada por defecto en los servidores web PWS
(Windows 95-98-Millenium) e IIS (Windows NT-2000-XP). Además
también es posible implementarla en otros servidores, aunque
hace falta la instalación de las extensiones adecuadas.
• Se puede mezclar código ASP con código HTML y código de
script en cliente, sin tener que compilarlos por separado. Esto
facilita la construcción de páginas ASP, siendo posible escribirlas
en un simple editor de textos (Notepad, Word, etc.).
• El código ASP se ejecuta en el servidor web, produciendo como
Tema 3. Programación en Internet 25
27. Desarrollo de Páginas Web
salida HTML puro (junto con código de script en el cliente, si así
se precisa). Por este motivo, su resultado es interpretado
correctamente por cualquier navegador web estándar, aunque se
utilice VBScript, compatible tan sólo con Internet Explorer y los
navegadores en él basados (aunque es posible ejecutar código
VBScript en Nestcape Navigator usando el plug-in ScriptActive, de
la casa NetCompass).
• Permite usar componentes escritos en otros lenguajes de
programación, como Visual Basic, Delphi, etc., que pueden ser
llamados desde los propios guiones ASP.
• Se ha portado a la plataforma Java, lo que hace que pueda ser
utilizado en casi cualquier sistema operativo.
• Permite acceder a las bases de datos de una forma rápida y
sencilla, siendo éste uno de sus principales usos.
• También permite el uso de componentes OLE, acceso a ficheros,
a login del sistema, enviar correo, etc.
• Tiene persistencia de variables en memoria entre distintas
visualizaciones de página, permitiendo con ello manejar sesiones
de usuario, con lo que se resuelve uno de los mayores problemas
de la programación web, derivado de la no orientación a conexión
del protocolo HTTP.
Estructura <%@ Language="VBScript"%>
<html>
<head>
<title>Estructura de página ASP</title>
<%
Dim nombre
Nombre=”Karla”
%>
</head>
<body>
Tema 3. Programación en Internet 26
28. Desarrollo de Páginas Web
<p>Hola, <%=nombre%>. ¿Cómo estás?.</p>
</body>
</html>
Tipos de datos VBscript sólo considera en su forma general un único tipo de datos,
denominado VARIANT. Es esta una clase especial de datos, que
puede contener diferentes tipos de información. Así, se comporta
como un número cuando se utiliza en un contexto numérico, y como
una cadena cuando se usa en este tipo de contextos. No obstante,
podemos forzar a los números a comportarse como cadenas
poniéndolos entre comillas ("54").
Aunque pueda parecer una fuerte limitación el hecho de que sólo
exista un tipo general de datos, nada más lejos de la realidad, ya que
el tipo VARIANT se subdivide en una serie de subtipos que cubren
todas nuestras necesidades.
Subtipo Descripción
Empty La Variant no está inicializado. El valor es 0 para
variables numéricas o una cadena de longitud cero ("")
para variables de cadena.
Null La Variant, de manera intencionada, no contiene ningún
dato válido.
Boolean Contiene True o False.
Byte Contiene un número entero entre 0 y 255.
Integer Contiene un número entero entre -32.768 y 32.767.
Currency De -922.337.203.685.477,5808 a
922.337.203.685.477,5807.
Long Contiene un número entero entre -2.147.483.648 y
2.147.483.647.
Single Contiene un número de punto flotante de precisión
simple comprendido entre -3,402823E38 y -1,401298E-
Tema 3. Programación en Internet 27
29. Desarrollo de Páginas Web
45 para valores negativos y entre 1,401298E-45 y
3,402823E38 para valores positivos.
Double Contiene un número de punto flotante de precisión
doble comprendido entre -1,79769313486232E308 y -
4,94065645841247E-324 para valores negativos y entre
4,94065645841247E-324 y 1,79769313486232E308
para valores positivos.
Date Contiene un número que representa una fecha entre el
(Time) 1 de enero del año 100 y el 31 de diciembre del año
9999.
String Contiene una cadena de longitud variable que puede
ser de hasta aproximadamente 2 mil millones de
caracteres.
Object Contiene un objeto.
Error Contiene un número de error.
Variables Se puede definir una variable como un dato que cambia o puede
cambiar a lo largo de la ejecución de un programa. Para poder
referirnos a ese dato cambiante hace falta un nombre que lo
identifique, que va a ser el nombre que le demos a la variable que lo
contiene. Es decir, una variable es como un contenedor de datos con
nombre asignado. En realidad un puntero a una posición de la
memoria donde un programa (el script) puede almacenar, leer y
modificar valores durante su ejecución.
Tipos de 1) aritméticos: ^ , - (negación) , * , / , , Mod , + , - , &
operadores
2) de comparación: = , <> , < , > , <= , >= , Is
3) lógicos: Not , And , Or , Xor , Eqv , Imp , &
Código Se ejecuta del lado del servidor
Tema 3. Programación en Internet 28
30. Desarrollo de Páginas Web
Sistema Windows NT 4.x o mayor de preferencia.
Operativo
Servidor Internet Information Server IIS. En caso del uso de un servidor Linux,
Chilisoft ha desarrollado el Chilisoft ASP que también permite el uso
de esta tecnología. Otra opción es InstantAsp también para correr
ASP en servidores que no sean el IIS.
Bases de Access principalmente.
Datos
3.3.2 Conceptos Php
PHP
Definición PHP (acrónimo de "PHP: Hypertext Preprocessor") traducido como
Lenguaje de programación de Hipertexto Portable, es un lenguaje de
"código abierto" interpretado, de alto nivel, embebido en páginas
HTML y ejecutado en el servidor.
Características • Se puede integrar PHP en el HTML o se puede utilizar para
generar todo el contenido HTML.
• Conectividad con bases de datos.
• Generación de gráficos sobre la marcha.
• Funciones matemáticas.
• Archivos PDF y películas Flash (usando libswf y Ming).
• También puede presentar otros resultados, como XHTM y
archivos XML. PHP puede auto generar estos archivos y
almacenarlos en el sistema de archivos en vez de presentarlos en
la pantalla.
• La característica más potente y destacable de PHP es su soporte
para una gran cantidad de bases de datos. Escribir un interfaz vía
web para una base de datos es una tarea simple con PHP.
Tema 3. Programación en Internet 29
31. Desarrollo de Páginas Web
Estructura <?php
$cadena = 'Hola mundo';
echo $cadena;
?>
Tipos de datos Booleanos: Este es el tipo más simple. Un boolean expresa un valor
de verdad. Puede ser TRUE or FALSE. Para especificar un literal
booleano, use alguna de las palabras clave TRUE o FALSE. Ambas
son insensibles a mayúsculas y minúsculas.
<?php
$foo = True; // asignar el valor TRUE a $foo
?>
Enteros: Un integer es un número del conjunto Z = {..., -2, -1, 0, 1,
2...). Los enteros pueden ser especificados en notación decimal
(base-10), hexadecimal (base-16) u octal (base-8), opcionalmente
precedidos por un signo (- o +).
Si usa la notación octal, debe preceder el número con un 0 (cero),
para usar la notación hexadecimal, preceda el número con 0x.
Ejemplo 11-1. Literales tipo entero
<?php
$a = 1234; // numero decimal
$a = -123; // un numero negativo
$a = 0123; // numero octal (equivalente al 83 decimal)
$a = 0x1A; // numero hexadecimal (equivalente al 26 decimal)
?>
Números de punto flotante: Los números de punto flotante
(también conocidos como "flotantes", "dobles" o "números reales")
pueden ser especificados usando cualquiera de las siguientes
Tema 3. Programación en Internet 30
32. Desarrollo de Páginas Web
sintaxis:
<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>
Cadenas: Un valor string es una serie de caracteres. En PHP, un
carácter es lo mismo que un byte, es decir, hay exactamente 256
tipos de caracteres diferentes.
Matrices: Una matriz en PHP es en realidad un mapa ordenado. Un
mapa es un tipo de datos que asocia valores con claves. Este tipo es
optimizado en varias formas, de modo que puede usarlo como una
matriz real, o una lista (vector), tabla asociativa (caso particular de
implementación de un mapa), diccionario, colección, pila, cola y
probablemente más. Ya que puede tener otra matriz PHP como
valor, es realmente fácil simular árboles. Un array puede ser creado
por la construcción de lenguaje array(). Ésta toma un cierto número
de parejas clave => valor separadas con coma.
array( [clave =>] valor
, ...
)
// clave puede ser un integer o string
// valor puede ser cualquier valor
Tipos de PHP proporciona una gran cantidad de variables predefinidas a
variables cualquier script que se ejecute. Para obtener una lista de estas
variables se puede consultar la sección Variables predefinidas
reservadas, en el siguiente link:
Tema 3. Programación en Internet 31
33. Desarrollo de Páginas Web
http://www.php.net/manual/es/reserved.variables.php
A partir de PHP 4.1.0, PHP ofrece un conjunto adicional de matrices
predefinidas, conteniendo variables del servidor Web, el entorno y
entradas del usuario. Estas nuevas matrices son un poco especiales
porque son automáticamente globales. Por esta razón, son
conocidas a menudo como "autoglobales" ó "superglobales".
PHP superglobales
$GLOBALS: Contiene una referencia a cada variable disponible en
el espectro de las variables del script. Las llaves de esta matriz son
los nombres de las variables globales. $GLOBALS existe desde PHP
3.
$_SERVER: Variables definidas por el servidor web ó directamente
relacionadas con el entorno en don el script se esta ejecutando.
Análoga a la antigua matriz $HTTP_SERVER_VARS (la cual está
todavía disponible, aunque no se use).
$_GET: Variables proporcionadas al script por medio de HTTP GET.
Análoga a la antigua matriz $HTTP_GET_VARS (la cual está todavía
disponible, aunque no se use).
$_POST: Variables proporcionadas al script por medio de HTTP
POST. Análoga a la antigua matriz $HTTP_POST_VARS (la cual
está todavía disponible, aunque no se use).
$_COOKIE: Variables proporcionadas al script por medio de HTTP
cookies. Análoga a la antigua matriz $HTTP_COOKIE_VARS (la cual
está todavía disponible, aunque no se use).
$_FILES: Variables proporcionadas al script por medio de la subida
de ficheros vía HTTP. Análoga a la antigua matriz
$HTTP_POST_FILES (la cual está todavía disponible, aunque no se
use). Vea también Subiendo ficheros por método POST para más
información.
Tema 3. Programación en Internet 32
34. Desarrollo de Páginas Web
$_ENV: Variables proporcionadas al script por medio del entorno.
Análoga a la antigua matriz $HTTP_ENV_VARS (la cual está todavía
disponible, aunque no se use).
$_REQUEST: Variables proporcionadas al script por medio de
cualquier mecanismo de entrada del usuario y por lo tanto no se
puede confiar en ellas.
La presencia y el orden en que aparecen las variables en esta matriz
es definido por la directiva de configuración variables_order. Esta
matriz no tiene un análogo en versiones anteriores a PHP 4.1.0. Vea
también import_request_variables().
Nota: Cuando se utiliza la línea de comandos, argv y argc no son
incluidas aquí; estas variables se podrán encontrar en la matriz
$_SESSION: Variables registradas en la sesión del script. Análoga a
la antigua matriz $HTTP_SESSION_VARS (la cual está todavía
disponible, aunque no se use).
Tipos de Un operador es algo a lo que se le entrega uno o más valores y
operadores produce otro valor (de modo que la construcción misma se convierte
en una expresión). Así que puede pensar sobre las funciones o
construcciones que devuelven un valor (como print) como
operadores.
Existen tres tipos de operadores. En primer lugar se encuentra el
operador unario, el cual opera sobre un único valor, por ejemplo (el
operador de negación) o ++ (el operador de incremento).
El segundo grupo se conoce como operadores binarios; éste grupo
contiene la mayoría de operadores que soporta PHP, y una lista se
encuentra disponible más adelante en la sección Precedencia de
Operadores.
El tercer grupo consiste del operador ternario: Éste debe ser usado
para seleccionar entre dos expresiones, en base a una tercera, en
Tema 3. Programación en Internet 33
35. Desarrollo de Páginas Web
lugar de seleccionar dos sentencias o rutas de ejecución. Rodear las
expresiones ternarias con paréntesis es una muy buena idea. Para
una intromisión más profunda en los operadores de PHP revisar el
siguiente link:
http://www.php.net/manual/es/language.operators.php
Código Se ejecuta del lado del servidor
Sistema PHP puede ser utilizado en cualquiera de los principales sistemas
Operativo operativos del mercado, incluyendo Linux, muchas variantes Unix
(incluyendo HP-UX, Solaris y OpenBSD), Microsoft Windows, Mac
OS X, RISC OS.
Servidor PHP soporta la mayoría de servidores web de hoy en día, incluyendo
Apache, Microsoft Internet Information Server, Personal Web Server,
Netscape e iPlanet, Oreilly Website Pro server, Caudium, Xitami,
OmniHTTPd y muchos otros. PHP tiene módulos disponibles para la
mayoría de los servidores, para aquellos otros que soporten el
estándar CGI, PHP puede usarse como procesador CGI.
Bases de Adabas D, Ingres, Oracle (OCI7 and OCI8), dBase, InterBase,
Datos Ovrimos, Empress, FrontBase, PostgreSQL,FilePro (read-only),
mSQL, Solid, Hyperwave, Direct MS-SQL, Sybase, IBM, DB2,
MySQL, Velocis, Informix, ODBC, Unix dbm.
3.3.3 Conceptos CGI
CGI (Common Gateway Interface). Su significado en español es Interfaz común
de pasarela común. CGI es un conjunto de convenios, variables y reglas mediante
las cuales interacciona el navegador y el servidor.
Para poder escribir CGI es necesario tener un servidor, por la razón vista
anteriormente y seguir ciertos criterios como los que veremos a continuación:
Tema 3. Programación en Internet 34
36. Desarrollo de Páginas Web
a) CGI es una especificación sobre transferencia de datos, no un lenguaje de
programación.
b) Un script CGI es un programa ejecutable que decodifica la especificación
CGI.
c) Los Scripts CGI pueden ser escritos en cualquier lenguaje de programación,
aunque por lo regular están escritos en PERL debido a que operan sobre
UNIX, también se pueden realizar en Java o C++.
Estructura de un CGI
Un programa CGI tiene tres funciones básicas de entrada/salida:
1. Recabar la entrada del servidor, en forma de variables estandarizadas, datos
de formularios y datos de consulta.
2. Proporcionar los datos de salida al cliente (Navegador web)
3. Proporcionar información de negociación del contenido (encabezado MIME)
para el servidor y el cliente.
Las especificaciones completas de CGI se pueden encontrar en:
http://hoohoo.ncsa.uiuc.edu/cgi/
#!/usr/local/bin/perl
#
# hello_s.pl-- simple "hello, world" programa para demostrar básicamente la salida CGI
# imprime el encabezado CGI, requerido para las salidas HTML
# Noten el extra n, para enviar una línea en blanco
print "Content-type: text/htmlnn" ;
# imprime la respuesta HTML a STDOUT
print “<html><head><title>CGI Hello</title></head>n”;
# imprime el cuerpo
print “<body><h1>Hello, world.</h1></body></html>”;
exit ;
La primera línea debe especificar en dónde encontrar el intérprete PERL, en la
mayoría de los sistemas será “/usr/bin/perl”, el cual se ha convertido un lugar
estándar.
Tema 3. Programación en Internet 35
37. Desarrollo de Páginas Web
Por lo general, los Scripts CGI toman su entrada de las variables de ambiente y
envían su salida al flujo de salida estándar. Conocido comúnmente como salida
estándar(stdout). Se llama flujo a esta salida, debido a que se transmite al usuario
como un flujo de bytes o caracteres. La salida del programa requiere estar en un
formato que el navegador pueda desplegar, por lo regular es en HTML. Sin
embargo, el script debe decirle primero al navegador de qué tipo de datos se trata.
Esto se hace con la siguiente directiva:
Content-type: <MIME - type>
Esto especifíca el tipo MIME del flujo que se va a enviar al usuario, en su mayoría
será “text/html” y “text/plain” para documentos informativos. El encabezado MIME
siempre deberá estar separado del cuerpo del documento por una línea en blanco.
Los tipos MIME son cadenas de caracteres estándar de caso sensitivo que
identifican el tipo de datos usado a través de Internet para muchos propósitos.
Comienzan con el tipo general de datos (como text, image, o audio), seguido por
un slash, y terminando con el tipo específico de datos (como html, gif, or jpeg). Los
archivos HTML se identifican con text/html, y los GIFs y JPEGs se identifican con
image/gif y image/jpeg.
PERL utiliza el comando print para enviar texto a la salida estándar. El texto está
cerrado entre comillas y no hay líneas nuevas predeterminadas, por lo que se
deben enviar explícitamente.
Variables de entorno
CGI define una serie de variables de entorno que sirven para pasar la información,
dicha información está compuesta por el nombre del servidor, nombre del usuario
autenticado y la dirección IP del cliente que está accediendo al servidor. Estas
variables de entorno se pasan a cada programa CGI que invoca el servidor.
Algunas variables son necesarias y otras opcionales. El servidor y el navegador
web pueden generar variables de entorno y pasarlas al programa CGI.Para
encontrar más información sobre las variables de entorno:
http://hoohoo.ncsa.uiuc.edu/cgi/env.html
Tema 3. Programación en Internet 36
38. Desarrollo de Páginas Web
3.3.4 Conceptos Perl
PERL
Definición El lenguaje Perl toma su nombre de Practical Extraction and Report
Language y fue ideado por Larry Wall. La primera versión sale en el
año de 1987. Originalmente Larry Wall lo describe como un
excelente lenguaje optimizado para leer archivos de texto, extraer
información de esos archivos y crear reportes basados en esa
información, combinando lo mejor de C.
Perl se considera un lenguaje interpretado, es decir, no es necesaria
una previa compilación para poder ejecutarse, lo único que se
necesita es darle al interprete, perl, el código que queremos que
ejecute.
Características • Perl es gratuito, su código es abierto y totalmente gratuito,
cualquiera puede descargar el código fuente C que constituye
un intérprete Perl. Además el usuario tiene la capacidad de
ampliar la funcionalidad básica de Perl dentro del ámbito del
lenguaje interpretado y modificando el código fuente Perl.
• Es fácil de aprender y leer. El lenguaje de Perl es similar a la de
C y la de script de shell, pero su formato es menos restrictivo.
Es fácil de leer puesto que el código se puede escribir en un
formato claro y conciso que es prácticamente igual a una frase
en inglés.
• Dispone de tipos de datos flexibles. El usuario puede crear
variables sencillas que contengan texto o números y Perl, trata
los datos de las variables de forma adecuada en el momento en
el que se utilice.
• Está orientado a objetos. Perl incluye todas las características
de la orientación a objetos (herencia, polimorfismo y
encapsulación). No existen restricciones sobre cuándo y dónde
se pueden utilizar esas características.
Tema 3. Programación en Internet 37
39. Desarrollo de Páginas Web
• Permite el trabajo en equipo. Existe una red inmensa de
programadores de Perl en todo el mundo. La mayor parte de
ellos proporcionan y utilizan los módulos y los scripts que se
ofrecen a través de CPAN (Comprehensive Perl Archive
network). Se trata de un depósito de los mejores módulos y
scripts disponibles. El hecho de utilizar un módulo existente que
se haya escrito previamente puede ahorrar muchas horas de
trabajo.
Estructura #!/usr/local/bin/perl
#
# Programa para hacer lo evidente
#
print 'Hola mundo.'; # Imprimir un mensaje
La primera línea
Todo programa en Perl comienza con esto como su primera línea:
#!/usr/local/bin/perl, aunque esto podría variar de un sistema o otro.
Esta línea indica a la maquina que hacer con el fichero cuando este
es ejecutado (es decir, le indica que ejecute el fichero a través de
Perl).
Comentarios y sentencias
Los comentarios pueden ser insertados en un programa con el
símbolo #, y cualquier cosa desde la # hasta el final de la línea es
ignorada (con la excepción de la primera línea). La única forma de
alargar los comentarios sobre varias líneas es usar # en cada línea.
Todo lo demás es una sentencia en Perl la cual debe terminar con
un punto y coma, como la última línea de arriba.
Tema 3. Programación en Internet 38
40. Desarrollo de Páginas Web
Impresión simple
La función print muestra al exterior alguna información. En el
ejemplo anterior, imprime literalmente la cadena Hola mundo y por
supuesto la sentencia termina en un punto y coma.
Tipos de datos Numéricos (reales y enteros): Los valores numéricos espresados
literalmente se presentan en forma de valores reales codificados en
doble precisión. Este formato interno se utiliza para todas las
operaciones aritméticas. Por ejemplo:
$x = 0.897; # un real
$y = 6.23e-24; # un real
$n = 567; # un entero
$i = -234; # un entero
Cadenas de caracteres: Las cadenas de caracteres se especifican
literalmente por medio de un sucesión de caracteres delimitada por
comillas ("..") o apóstrofes ('..'). Estas dos representaciones se
distinguen por la interpretación hecha por Perl de las cadenas de
caracteres. Cuando van delimitadas por comillas (".."), toda variable
referenciada en el interior de la cadena se evalúa y se reemplaza
por su valor. Por ejemplo, las instruciones siguientes:
$wld = "mundo";
$str = "¡Hola $wld!";
Booleano: El tipo booleano existe, al igual que en C, de modo
implícito, es decir, un número es falso si es igual a cero y verdadero
en cualquier otro caso. Como el cero está asociado a la ristra vacía
(""), ésta también equivale al valor falso.
Variables Escalares ($variable): En Perl la variable básica es la escalar. Ésta
variable puede contener cualquier tipo de información ya sean
Tema 3. Programación en Internet 39
41. Desarrollo de Páginas Web
números, letras, cadenas de texto, signos, código ASCII, etc.
Para definir una variable escalar todo lo que tenemos que hacer es:
$variable
Arrays (@array): Los arrays o arreglos como se les llama
comúnmente en español no son exactamente vectores, más que
nada se les puede definir como una lista de cosas, éstas cosas
pueden ser números, letras, palabras o hasta variables. El array se
define de la siguiente manera:
my @array; Vemos que debemos de usar el símbolo @ para definir
nuestros arrays. Como los arrays son listas de cosas, es diferente la
manera en que los inicializamos:
my @array = ('Perro','Gato','Gallina','Pez');
Hashes (%hash): La variable hash o arreglo asociativo es un tipo de
variable sumamente especial en Perl, ya que pocos lenguajes
cuentan con variables de este tipo. El hash es un tipo de lista por
medio de la cual podemos llamar a sus valores con el uso de llaves.
Así dependiendo de la llave que se llame será el valor que se
retorne.
my %Animales = (
'Perro' => 'Dog',
'Gato' => 'Cat',
'Gallina' => 'Chicken',
'Pez' => 'Fish'
);
FILEHANDLES: Con este tipo de variable podemos hacer llamadas
a archivos desde Perl.
DIRHANDLES: Ésta variable se usa cuando hacemos lectura de un
Tema 3. Programación en Internet 40
42. Desarrollo de Páginas Web
directorio.
Typeglobs: Un typeglob es una entrada a la tabla de símbolos de
Perl, por lo que con un typeglob podemos llamar a todos los tipos de
variables de Perl.
Tipos de Los operadores son instrucciones que se le da a la computadora
operadores para efectuar sobre operandos. Los operandos pueden ser desde
números hasta palabras.
Operadores Aritméticos: Son los operadores más comúnes e
incluyen suma, resta, multiplicación, exponenciación, división y
módulo.
Operadores Aritméticos Unitarios: Los operadores unitarios
actúan sobre un solo operando y básicamente se usan para cambiar
el signo de un valor, incrementar el valor o disminuir el valor.
Operadores Lógicos: Los operadores lógicos normalmente los
vamos a usar siempre que queramos controlar el flujo de nuestro
programa, dicho programa, va a realizar una decisión en base a dos
operandos cuya condición puede retornar verdadero o falso.
Operador Ternario: El operador ternario es sumamente útil en Perl
y realmente es una secuencia de operadores, su sintaxis es como
sigue:
CONDICION ? PARTE-VERDADERA : PARTE-FALSA
Lo que te permite el operador es evaluar la CONDICION y
dependiendo de si es verdadera o falsa se regresará la parte que
corresponda. Esto se podrá comprender más con un ejemplo:
my $num = 10;
my $var1 = ($num > 5) ? "Mayor" : "Menor";
Lo que estamos haciendo es realizando una asignación a la variable
$var1 dependiendo de la condición. En este caso la condición es
($num > 5), si esto resulta verdadero, la palabra Mayor se asignará
Tema 3. Programación en Internet 41
43. Desarrollo de Páginas Web
a la variable, de lo contrario será la palabra Menor.
Operador de Concatenación: Muchas veces no queremos sumar ni
restar, o realizar ninguna operación entre dos operandos, sino que
queremos "pegarlos''. Para eso tenemos el operador de
concatenación. Este operador es un simple punto . y funciona de la
siguiente manera:
my $saludo = "Hola me llamo ";
my $nombre = "Uriel";
my $frase = $saludo . $nombre;
Como resultado nuestra variable $frase tendrá el valor "Hola me
llamo Uriel".
Operador de Repetición: Este operador lo usamos para duplicar
una cadena n número de veces. El operador se define con una x,
por ejemplo:
my $var = "A" x 6;
Esto genera el valor AAAAAA.
Código
Sistema Unix, Windows, MacOS. Siempre que una de las funciones de Perl
Operativo esté implementaa por una o más funciones de sistema operativo
subyacente, no existe motivo alguno por el que un script en Perl no
deba funcionar.
Servidor PERL puede acceder a los principales servidores a través de una
serie de extensiones proporcionada por CPAN (Comprehensive Perl
Archive Network).
Bases de PERL puede acceder a los principales sistemas de bases de datos a
Datos través de una serie de extensiones proporcionada por el conjunto de
herramientas DBI, un módulo disponible a través de CPAN
(Comprehensive Perl Archive Network), hay interfaces disponibles
Tema 3. Programación en Internet 42
44. Desarrollo de Páginas Web
para el acceso a bases de datos como Oracle, Sybase, Msql,
PostgreSQL y OBDC.
3.4 Base de Datos
Las bases de datos y su tecnología están teniendo un gran impacto sobre el uso
creciente de las computadoras. No es exagerado el decir que las bases de datos
desempeñan un papel crucial en casi todas las áreas aplicación de computadoras,
como los negocios, la ingeniería, educación, etc. Es por ello su gran relevancia en
el ámbito de la programación de sitios Web.
Una base de datos es un conjunto de datos relacionados entre sí. Los datos son
hechos conocidos que pueden registrarse y que tienen un significado implícito. Por
ejemplo podrían ser nombre, números telefónicos, direcciones, etc. Todos ellos
son un conjunto de datos relacionados entre sí, de modo que son una base de
datos. Una base de datos tiene las siguientes propiedades implícitas:
• Una base de datos representa un aspecto del mundo real, las modificaciones
de este mundo se reflejan en la base de datos.
• Una base de datos es un conjunto de datos lógicamente coherente, con cierto
significado inherente. Una colección aleatoria de datos no puede considerarse
una base de datos
• Toda base de datos se diseña, construye con datos para un propósito
específico. Está dirigida a un grupo de usuarios y tiene ciertas aplicaciones
preconcebidas que interesan a dichos usuarios.
Las bases de datos pueden ser de cualquier tamaño y tener diversos grados de
complejidad. La generación y el mantenimiento de dichas bases de datos pueden
ser manuales o mecánicos. El catálogo en tarjetas de una biblioteca es un ejemplo
de bases de datos manual. Las bases de datos computarizadas se pueden crear y
mantener con un grupo de programas de aplicación escritos específicamente para
esa tarea o bien mediante un sistema de gestión de bases de datos.
Un sistema de gestión de bases de datos, es un conjunto de programas que
permite a los usuarios crear y mantener, definir, construir y manipular bases de
datos para diversas aplicaciones. Para definir una base de datos hay que
especificar los tipos de datos, las estructuras y las restricciones de los datos que
se almacenarán en ella. Construir una base de datos es el proceso de guardar los
datos mismos en algún medio de almacenamiento controlado por el sistema de
gestión de bases de datos. En la manipulación de la base de datos intervienen
Tema 3. Programación en Internet 43
45. Desarrollo de Páginas Web
funciones como consultar la base de datos, actualizarla y generar informes en
base a esa información.
Características del enfoque de bases de datos.
Hay varias características que distinguen el enfoque de bases de datos del
enfoque tradicional de programación de archivos, entre ellas se encuentran las
siguientes:
a) Naturaleza autodescriptiva de los sistemas de bases de datos: Una
característica fundamental del enfoque de bases de datos es que el sistema no
sólo contiene la base de datos misma, sino también una definición o
descripción completa de la base de datos. Esta definición se almacena en el
catálogo del sistema que contiene información y diversas restricciones que se
aplican a los datos. A la información almacenada en el catálogo se le denomina
metadatos y estos describen la estructura de la base de datos primaria.
b) Separación entre los programas y los datos, y abstracción de los datos:
Los programas de acceso del sistema de gestión de bases de datos se
escriben de modo que sean independientes de cualquier archivo específico. La
estructura de los archivos de datos se almacenan en el catálogo del SGBD
aparte de los programas de acceso. Avances recientes en las bases de datos
orientadas a objetos y en los lenguajes de programación permiten a los
usuarios definir operaciones sobre los datos como parte de la definición de las
bases de datos. Una operación también llamada función se especifica en dos
partes; la interfaz de la operación contiene su nombre y los tipos de datos de
sus argumentos o parámetros, la otra parte es la implementación o método de
la operación que se especifica aparte y se puede modificar sin alterar la
interfaz. Los programas de aplicación de los usuarios pueden operar sobre los
datos invocando estas operaciones a través de sus nombres y argumentos,
sea cual sea la forma en que se hayan implementado. A esto suele llamarse
independencia con respecto a los programas y operaciones.
c) Manejo de múltiples vistas de los datos: Una base de datos suele tener
muchos usuarios, cada uno de los cuales puede requerir una vista diferente de
la mencionada en la base de datos. Una vista puede ser un subconjunto de la
base de datos o contener datos virtuales que se deriven de los archivos de la
base de datos, pero que no estén almacenados explícitamente. Un sistema de
gestión de bases de datos multiusuario debe proporcionar mecanismos para
definir muchas vistas.
d) Compartimiento de datos y procesamiento de transacciones
multiusuario: Todo SGBD multiusuario debe permitir a varios usuarios tener
acceso simultaneo a la base de datos. Esto es indispensable para que los
datos de múltiples aplicaciones se integren y mantengan en una sola base de
Tema 3. Programación en Internet 44
46. Desarrollo de Páginas Web
datos. El SGBD debe incluir software de control de concurrencia para asegurar
que cuando varios usuarios intenten actualizar los mismos datos lo hagan de
manera controlada para que el resultado de las actualizaciones sea correcto.
Implicaciones del enfoque de bases de datos
Existen implicaciones en el empleo de bases de datos que pueden resultar
benéficas para las organizaciones como podrían ser las siguientes:
a) Potencial para imponer normas: Se pueden definir e imponer normas a los
usuarios de las bases de datos en una organización grande. Esto facilita la
comunicación y cooperación entre diversos departamentos, proyectos y
usuarios de la organización.
b) Menor tiempo de creación de aplicaciones: La creación de una aplicación
así como, la obtención de cierta información de la base de datos para imprimir
un nuevo informe requiere de muy poco tiempo. Diseñar e implementar una
nueva base de datos desde cero, puede tardar más que escribir una sola
aplicación de archivos especializada.
c) Flexibilidad: En ocasiones es necesario modificar la estructura de una BD
cuando cambian los requerimientos. Algunos SGBD permiten efectuar estas
modificaciones en la estructura de la BD sin afectar los datos almacenados y
los programas de aplicación ya existentes.
d) Disponibilidad de información actualizada: Los SGBD ponen la BD a
disposición de todos los usuarios. En el momento en el que un usuario
actualiza la BD, todos los demás usuarios pueden ver de inmediato dicha
actualización. Esta disponibilidad de información es indispensable en muchas
aplicaciones de procesamiento de transacciones, como por ejemplo los
sistemas de reservaciones.
e) Economías a escala: El enfoque de SGBD permite consolidar los datos y las
aplicaciones, reduciéndose así el desperdicio por traslapo entre las actividades
del personal de procesamiento de datos en los diferentes proyectos o
departamentos. Esto permite que la organización completa invierta en
procesadores más potentes, dispositivos de almacenamiento o equipo de
comunicación, en vez de que cada departamento tenga que adquirir por
separado su propio equipo. Esto reduce los costos totales de operación y
control.
Tema 3. Programación en Internet 45
47. Desarrollo de Páginas Web
Cuándo no usar un SGBD
A pesar de todas las ventajas, hay situaciones en el que el empleo de un SGBD
puede generar costos adicionales innecesarios que se evitarían con el proceso de
archivos tradicional. Hay varias causas de estos costos adicionales por utilizar un
SGBD, entre ellas:
• Una fuerte inversión inicial en el equipo, software y capacitación.
• La generalidad que ofrece el SGBD para definir y procesar los datos.
• Los costos que implica ofrecer las funciones de seguridad, control de
concurrencia, recuperación e integridad.
Pueden surgir problemas adicionales si los diseñadores de la BD y el
administrador de la misma no producen un diseño adecuado o si la
implementación de las aplicaciones de sistema de BD no es correcta. En vista de
los costos adicionales de emplear un SGBD y de los problemas potenciales de
una administración inadecuada, podría ser más conveniente utilizar archivos
ordinarios en las siguientes circunstancias:
• La BD y aplicaciones son simples, están bien definidas y no se espera que
cambien.
• Algunos programas tienen requerimientos estrictos de tiempo real que no
podrían cumplirse por el costo extra del SGBD.
• No se requiere acceso multiusuario a los datos.
3.5 Seguridad
Protección de los archivos del servidor Web
Casi toda la web se basa en documentos almacenados en un servidor Web, por
consecuencia en el caso de que se modifiquen o dañen dichos archivos se ve
reflejado automáticamente en el sitio y es por esta razón la necesidad de proteger
dichos archivos almacenados en el servidor.
La mayoría de los archivos que controlan el funcionamiento del servidor se
encuentran en el árbol del directorio ServerRoot. Existen excepciones, pero estos
sólo afectan a los aspectos secundarios del comportamiento del servidor.
El servidor por regla general no debería tener la capacidad de modificar ninguno
de sus archivos de control. Las excepciones más obvias son el registro de errores
y los archivos de registro de acceso, que necesita el servidor para grabar
información a medida que se van produciendo los eventos. El que el servidor
Tema 3. Programación en Internet 46
48. Desarrollo de Páginas Web
tenga la capacidad de modificarlos, abre la posibilidad de que una mala
configuración permita que un intruso en la web arruine el servidor. Por lo tanto si
se desean evitar problemas posteriores, los permisos y propiedades de archivo no
deberán permitir que el servidor pueda modificarlos.
Acceso obligatorio y discrecional
Los mecanismos de control obligatorio, a veces llamados controles no
discrecionales, limitan el acceso basado en atributos sobre los cuales el que
intenta acceder no tiene control. Los controles discrecionales dependen de la
información proporcionada por el usuario.
La teoría de la seguridad define tres tipos de atributos utilizados en el control de
acceso:
• Lo que se tiene
• Lo que se conoce
• Quién es usted
Los dos primeros atributos son variaciones sobre el mismo tema y la tangibilidad y
la cantidad de los aspectos que los distinguen. Estos tipos de atributos se suelen
utilizar de forma combinada.
Los controles de acceso discrecionales suelen utilizar el atributo “lo que se sabe”.
Los controles obligatorios tienden a utilizar los atributos del otro lado, por ejemplo
además de la contraseña un acceso restringido de IP.
Para poder realizar negocios en línea es necesario que la empresa y el usuario
estén seguros de poder realizar transacciones electrónicas. Los certificados
electrónicos proveen de dicha seguridad, su efectividad depende del sistema legal
y de la llave pública encriptada.
Identificación: Grandes organizaciones utilizan credenciales para ayudar a los
guardias a determinar quién puede o no entrar al edificio. Entre países se utilizan
los pasaportes o visas controlar el paso entre las fronteras. En las computadoras
existen varios sistemas para determinar la identidad de los usuarios para que
puedan acceder a la información y servicios.Los clientes y empresas necesitan
determinar la identidad cuando ellos adquieren un compromiso de alguna
transacción financiera.
Tema 3. Programación en Internet 47
49. Desarrollo de Páginas Web
Técnicas computarizadas de identificación
• Sistemas basados en contraseñas: A cada usuario se le asigna un nombre
de usuario y una contraseña, para poder tener acceso es necesario
introducirlas. Para que el usuario se le brinde una contraseña es necesario que
brinde información como podría ser su domicilio, número telefónico, nombre
completo, correo electrónico, etc. Para tener una forma simple de localizar,
aunque no puede ser completamente seguro debido a que pueden dar
información falsa los usuarios que no es el caso cuando se realizan ventas en
línea y que el usuario tiene que brindar su número de tarjeta de crédito. Estos
registros son guardados por las empresas para facilitar y agilizar el tiempo de
venta en alguna compra posterior.
• Sistemas basados en credenciales físicas: Otra forma de proveer la
identidad actualmente es con objetos físicos que proveen una clave, por lo que
identifican al usuario y garantizan el acceso. En este caso podemos encontrar
algunos bancos que brindan un pequeño aparato que genera claves aleatorias
y al introducirlas en el sistema es posible realizar las transacciones bancarias
con el fin de evitar fraudes.
• Biométrica: Otra forma es determinando la identidad de la persona mediante
una medición física y compararla con la que tiene guardada, como podría ser
una huella digital, este tipo de identificación la podemos encontrar en algunos
teléfonos celulares que sólo permiten su uso al dueño a través del
reconocimiento de su huella digital.
Usando firmas digitales para la identificación.
Algunas de las técnicas descritas anteriormente pueden ser mejoradas con el uso
de firmas digitales en donde cada usuario de un sistema de firma digital crea un
par de claves:
• Una clave privada: Usada para firmar un bloque de información cono podría
ser un documento HTML, un correo electrónico o una fotografía.
• Una clave pública: Usada para verificar la firma después de haber sido
creada.
3.6 Estructuración del lenguaje estructurado SQL
SQL (Structured Query Language)
Traducido al español como Lenguaje de consultas estructurado, es un grupo de
palabras especiales usadas exclusivamente para interactuar con bases de datos.
SQL fue creado poco tiempo después de que E.F. Codd saliera a la luz con la
Tema 3. Programación en Internet 48