SlideShare una empresa de Scribd logo
1 de 113
Descargar para leer sin conexión
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web
Desarrollo de Páginas Web

Más contenido relacionado

Destacado (9)

Alojamiento de páginas web
Alojamiento de páginas webAlojamiento de páginas web
Alojamiento de páginas web
 
Sistemas Basados en Casos IUT
Sistemas Basados en Casos IUTSistemas Basados en Casos IUT
Sistemas Basados en Casos IUT
 
Estandarización de paginas web
Estandarización de paginas webEstandarización de paginas web
Estandarización de paginas web
 
Sistemas basados en casos
Sistemas basados en casosSistemas basados en casos
Sistemas basados en casos
 
Reglas y hechos IA
Reglas y hechos IAReglas y hechos IA
Reglas y hechos IA
 
Horario laboratorio1oct2011 ene2012
Horario laboratorio1oct2011 ene2012Horario laboratorio1oct2011 ene2012
Horario laboratorio1oct2011 ene2012
 
Formato control asistencia sevicio comunitario
Formato control asistencia sevicio comunitarioFormato control asistencia sevicio comunitario
Formato control asistencia sevicio comunitario
 
CARACTERISTICAS DE LA WEB 2.0
CARACTERISTICAS DE LA WEB 2.0CARACTERISTICAS DE LA WEB 2.0
CARACTERISTICAS DE LA WEB 2.0
 
Web 2 - Arquitectura de Participacion
Web 2 - Arquitectura de ParticipacionWeb 2 - Arquitectura de Participacion
Web 2 - Arquitectura de Participacion
 

Similar a Desarrollo de Páginas Web

Diseño y edición de páginas web 1
Diseño y edición de páginas web 1Diseño y edición de páginas web 1
Diseño y edición de páginas web 1
mpgandreu
 
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Ianpierr Miranda
 
LA EVOLUCION DE LA WEB
LA  EVOLUCION DE LA WEBLA  EVOLUCION DE LA WEB
LA EVOLUCION DE LA WEB
anthonyber
 
[MP] AEW_Semana_01 - Teoría.pptx
[MP] AEW_Semana_01 - Teoría.pptx[MP] AEW_Semana_01 - Teoría.pptx
[MP] AEW_Semana_01 - Teoría.pptx
Daniel Noriega
 

Similar a Desarrollo de Páginas Web (20)

Bases pag web 4
Bases pag web 4Bases pag web 4
Bases pag web 4
 
Diseño y edición de páginas web 1
Diseño y edición de páginas web 1Diseño y edición de páginas web 1
Diseño y edición de páginas web 1
 
Prototipado Web
Prototipado WebPrototipado Web
Prototipado Web
 
Mile activida 6
Mile activida 6Mile activida 6
Mile activida 6
 
Alany01
Alany01Alany01
Alany01
 
Paginaweb
PaginawebPaginaweb
Paginaweb
 
200405 - Aplicaciones Web
200405 - Aplicaciones Web200405 - Aplicaciones Web
200405 - Aplicaciones Web
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Tercera evaluacion
Tercera evaluacionTercera evaluacion
Tercera evaluacion
 
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
 
Metodología de campaña y técnicas de optimización seo
Metodología de campaña y técnicas de optimización seoMetodología de campaña y técnicas de optimización seo
Metodología de campaña y técnicas de optimización seo
 
LA EVOLUCION DE LA WEB
LA  EVOLUCION DE LA WEBLA  EVOLUCION DE LA WEB
LA EVOLUCION DE LA WEB
 
Html basico
Html basicoHtml basico
Html basico
 
Manual html
Manual htmlManual html
Manual html
 
Manualhtml
ManualhtmlManualhtml
Manualhtml
 
Manual html
Manual htmlManual html
Manual html
 
[MP] AEW_Semana_01 - Teoría.pptx
[MP] AEW_Semana_01 - Teoría.pptx[MP] AEW_Semana_01 - Teoría.pptx
[MP] AEW_Semana_01 - Teoría.pptx
 
Comp2 guia2
Comp2 guia2Comp2 guia2
Comp2 guia2
 
Trabajo final informatica
Trabajo final informaticaTrabajo final informatica
Trabajo final informatica
 
Evoluciondelawebdc
EvoluciondelawebdcEvoluciondelawebdc
Evoluciondelawebdc
 

Último

PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
lupitavic
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
MiNeyi1
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 

Último (20)

Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 

Desarrollo de Páginas Web

  • 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