100% encontró este documento útil (1 voto)
262 vistas215 páginas

Manual Curso Redes

Cargado por

Otro Correo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
262 vistas215 páginas

Manual Curso Redes

Cargado por

Otro Correo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Í N DI CE

Internet Avanzado 4

Redes
Introducción 25
Topología 26
Direccionamiento IP 27

Crear un Sítio Web


Planificación 30
Desarrollo I 33
Edición HTML 73
Desarrollo II 83
Promoción 89
Programación (Introducción JavaScript)

Manual JavaScript 93
Tutorial PHP 125
Tutorial ASP 134
Programación CGI 145

APÉNDICES
Instalación de un servidor “Web” Personal (IIS) 157

Win NT
La Consola de Recuperación 167
Los Servicios de Win XP 184
Guía Básica de Seguridad en Win NT 200

Varios
Conector RJ-45 208
Códigos ASCII 210

Curso de Administración de Redes e Internet, 2007

FES-BIERZO

Calle Isaac Peral, Nº 1. Ponferrada

2
I N T ERN ET
AV AN Z ADO

3
I N T ERN ET AV AN Z ADO

OBJETI VOS
• Comprender la filosofía de funciona-

• Conocer los principales recursos dis-


miento de Internet.

• Aprender a manejar las herramientas


ponibles en Internet.

más comunes para la búsqueda de


información electrónica.

CONTENIDOS
Después de la telefonía móvil, el fenómeno de Internet es el En esta Unidad nos proponemos el estudio de los
que mayor crecimiento y expectación ha suscitado desde la métodos de acceso a esta documentación electrónica, así
aparición del microprocesador. La posibilidad de obtener como los servicios relacionados con ella. Aunque existen
grandes cantidades de información, con independencia de su múltiples redes de distribución de datos, Internet acapara
ubicación geográfica, ha revolucionado el mundo de la excepcionalmente la atención pública, de ahí que nos
documentación electrónica, del ocio y de las actividades centremos especialmente en esta red de redes.
comerciales en general.

Pr ev i o s
Internet no es propiamente una red de ordenadores, sino una construidas de acuerdo con la filosofía cliente/servidor, lo
red extensa que interconecta las redes de área local de que proporciona un fácil medio de acceso a bases de datos y
multitud de organizaciones extendidas por todo el mundo, una forma sencilla de construcción de aplicaciones
sirviéndose para ello de la estructura de protocolos de la interactivas entre el ordenador del cliente y el servidor de
familia TCP/IP. Internet.
Las especificaciones de Internet son mínimas, con Aunque profundamente jerárquica en su arquitectura,
objeto de permitir la máxima flexibilidad en las comuni- Internet es una red anárquica en cuanto a su gobierno,p uesto
caciones y en los servicios. De hecho, la mayor parte de los que cada parte de la red pertenece a un propietario distinto.
estándares utilizados en Internet son estándares cle fácto, que Esto ha generado algunos problemas de titularidad, sobre
se han impuesto por la utilización masiva de los usuarios de todo a la hora de imponer una legislación que controle la
la red. Gran parte de las aplicaciones de Internet están red.

4
1.1.1. Evolución histórica de En España, Internet es una red mucho más joven. La
Internet RedIris del CSIC (Consejo Superior de Investigaciones
Científicas) se ha encargado tradicionalmente del registro
Los orígenes de Internet se remontan a los años sesenta. de dominios españoles identificados por la secuencia «.es».
Todo el desarrollo tecnológico comenzó, como ha ocurrido En el año 2000 se ha creado una entidad pública que
en otras ocasiones, por razones militares. El Pentágono retomará estas funciones de la Redlris.
estadounidense creó la Agencia de Proyectos de
Investigación Avanzada del Departamento de Defensa
(DARPA), para competir con la tecnología espacial rusa en 1.1.2. Las autopistas
plena guerra fría entre los Estados Unidos y la extinta Unión
Soviética.
de la información
El objetivo inicial fue el desarrollo de técnicas que
permitieran intercambiar información de una forma sencilla Una autopista de la información es un sistema de distri-
y segura. Esto suponía que el sistema de comunicaciones no bución de información digital y de intercambio de datos, con
dependiera de un único punto estratégico, y que los mensajes acceso internacional y de alta velocidad. El crecimiento de los
pudieran llegar a su destino por diversos caminos, frente a sistemas multimedia, la necesidad de acceso a grandes bases
la eventualidad de un ataque militar que destruyera parte de de datos públicas o la transferencia de grandes ficheros a
la red de comunicaciones. cualquier parte del planeta, son algunos de los ejemplos en
Así empezó a trabajar en la red de la familia ARPA o los que se aprecia con claridad el interés en este tipo de
ARPAnet, de la que ya hemos hablado anteriormente al redes.
referirnos al TCP/IP y que permite el acceso de un punto a Internet no es propiamente una autopista de la información,
otro de la red por caminos diversos. Posteriormente, se ya que el requisito de soportar grandes velocidades es irreal en
hizo partícipe de la red al ámbito universitario y de inves- la actualidad. Los accesos de usuarios suelen ser de bajo
tigación en general. Actualmente está extendida por casi rendimiento, típicamente de módems V.90 o conexiones
todo el mundo (Figura 1.1). ADSL.
En los años ochenta aparecen muchas otras redes, en las El medio de transporte de una gran autopista de la in-
que no nos detendremos, como BITNET, para fines formación debería ser la fibra óptica, ya que permite el ancho
educativos; CSNET, para científicos americanos sin acceso a de banda necesario para la gran velocidad requerida. La fibra
DARPA; EUNET y EARN, con fines educativos en Europa; óptica puede transmitir unas 150.000 veces más información
FIDONET; JANET; etc. que los cables de pares usados en la RTC.
Otra característica será la integración del ordenador,
televisión y teléfono. En alguna medida, la RDSI, y más las
tecnologías del cable, permite una integración de estos
servicios en una sola línea de comunicación, aunque aún
se queda escasa en su acceso básico. Las esperanzas están
puestas en su acceso primario de 2 Mbps, al menos en la
comunicación entre nodos Internet.

1.1.3. El ciberespacio
y las autopistas de
la información
No es fácil definir el ciberespacio, entre otras razones,
porque no se trata de un espacio, sino de su difuminación.
Figura 1.1. Extensión geográfica de Internet (Fuente: Internet Hay quien ha dicho que el ciberespacio es ese lugar en
Society). donde uno se encuentra cuando habla por teléfono. El
ciberespacio no es más que una red, caracterizada por
los servicios prestados a sus usuarios, los cibernautas. El
Propiamente, Internet comenzó en el año 1969 tras co- ciberespacio de Internet está determinado por una serie de
nectarse los ordenadores de cuatro universidades de los terminales, normalmente PC (Personal Computer) o
Estados Unidos. En 1971 el número de nodos era 15, clientes más ligeros, que actúan de receptores o emisores
100 en 1985, 500 en 1989 y 25.000 en 1994. Esta cifra de la información que les brindan los distintos servidores
continúa subiendo a un ritmo que nadie ha podido prever'. de ese ciberespacio.

' En el momento de escribir esta obra, la estimación de páginas web


accesibles a través de Internet superaba el billón. El número de dominios
registrados rondaba los 35 millones.

5
1.1.4. Direccionamiento en El registro de nombres
Internet Existen en Internet un conjunto de dominios de primer
nivel o TLD (Top Level Domain), también llamados «ge-
La ubicación de cada punto de servicio en Internet se re- néricos», de cuyo mantenimiento se encargan ciertas or-
ferencia a través de un URL (Uniform Resource Locator). El ganizaciones que después veremos. Estos dominios son «
URL actúa como una dirección dentro de la red, que .edu» (educación), « .com» (comercial), «.gov» (gobierno
identifica a un documento, un servidor o un servicio de EEUU), «.mil» (militar). «.org» (organizaciones sin ánimo
modo unívoco, así como su protocolo de acceso. Por ejemplo, de lucro) y «.net» (organizaciones de la red); aunque está en
el URL de acceso a una página web (que estudiaremos más estudio la aparición de algunos otros por saturación de los
adelante) tiene un primer campo que contiene el valor http primeros, especialmente del dominio «.com», entre ellos se
(HyperText Transfer Protocol), que no es más que el encuentran « .firm» , « .shop» , « .web» , « .arts» , «.info» o
nombre del protocolo de comunicaciones de la familia «.nom» 1. La Unión Europea ha propuesto también la
TCP/IP, que se utiliza para realizar la lectura de las creación de un dominio «.en» para registros dentro de su
páginas. ámbito geográfico. En la Tabla 1.1 se exponen los nombres
Cada URL consta de una serie de campos acompañados de dominio para algunos países.
de una serie de parámetros. Los campos fundamentales son:

• Protocolo. Especifica el protocolo o el servicio al


Tabla 1.1. Nombres de dominios para algunos países
que se refiere el URL. Por ejemplo, http indica una
referencia a una página HTML, ftp se refiere a un Dominio País Dominio País

servicio FTP, News se refiere a un servicio de noticias,


ar Argentina fo Islas Faroe

• Nombre del servidor. Especifica la dirección DNS


gopher a un servicio gopher, etc.
at Austria fr Francia

(Domain Name System) o dirección TCP/IP del ser- au Australia uk Gran Bretaña

• Puerto. Cada recurso tiene asociado un número de


vidor que provee el servicio solicitado.
be Bélgica bg Bulgaria
gr
Grecia se Suecia
puerto por defecto que se relaciona con el número
de socket TCP/IP o UDP/IP por el que se imple- hu Hungría br Brasil
menta el servicio. Si aparece el número de puerto en ie Irlanda ca Canadá
el URL se utiliza ese número; en cambio, si se
in India ch Suiza
omite, se toma un número por defecto que se asocia de
manera distinta para cada tipo de servicio. Por Italia el Chile
ejemplo, al servicio de páginas we b (http) se le aso- jp Japón de Alemania

• Camino. Codifica la ubicación del documento soli-


cia el puerto 80.
ki Kiribati dk Dinamarca

citado en el servidor especificado en el URL. mx Mé x i c o es España

nl Holanda fi Finlandia
Por ejemplo, el URL « [Link]
moviles/[Link]» hace referencia a una página HTML
denominada « [Link]» , que se encuentra en el directorio Además, existen otros dominios TLD cuya organiza-
«/listas/moviles» del servidor we b «[Link]. es» , a la ción está delegada a organizaciones nacionales. Estos
que se accede vía http por el puerto número 80. dominios, llamados «nacionales» o «territoriales», rigen los
nombres de dominios de hosts nacionales; por ejemplo, en
España se registran los subdominios bajo el dominio
1.1.5. El sistema de nombres de territorial como «.es». Dicha nomenclatura está tomada de los
dominio nombres utilizados en la norma ISO-3166.
Cada dominio TLD, sea genérico o territorial, sigue sus
propias normas de registro, es decir, cada uno tiene
Cada ordenador en Internet viene definido por su nombre
independencia para exigir a quien quiera registrar un dominio
DNS o su dirección IP. No es estrictamente indispensable
las condiciones que considere necesarias. La InterNIC
que cada h o s t en Internet tenga una referencia en un
(Internet Network lnformation Center) mantiene la principal
servidor DNS, no olvidemos que DNS no es más que un
base de datos que recoge los dominios registrados de manera
sistema de nombres, un directorio. Para acceder a un host
oficial en todo el mundo. La gestión de InterNIC está
TCP/IP, como todos los que están en Internet, es necesario
delegada a la empresa norteamericana Network Solutions
una dirección IP, sin embargo, por comodidad se le suelen
Incorporated (NSI).
asignar nombres mnemotécnicos, que son los que sí se
registran en los servidores DNS.

2 En el momento de escribir esta obra, estaba aún pendiente la decisión

final sobre la creación de estos nuevos dominios.

6
Además, hay otra organización sin ánimo de lucro, la cuales dependen a su vez de otras, cada una con sus fun-
ICANN (Internet Corporation for Assigned Names and ciones y responsabilidades. Nos proponemos ahora estruc-
Numbers), que se encarga de gestionar las asignaciones de turar el conocimiento de «quién es quién» en Internet.
direcciones IP. Como se puede obsevar, los nombres de Como veíamos anteriormente, existen unas entidades
dominio DNS y las direcciones IP que les corresponden gestoras en Internet que agrupan la gestión de una serie
van por caminos distintos. Precisamente se relacionan en los de dominios genéricos y territoriales: son los llamados
servidores DNS. Centros de Información de Red (NIC, Network Information
En los primeros años del 2000, la ICANN previó que Centers). Los principales organismos internacionales de este
NSI continuara con su función, pero que hubiera otras tipo son:

• Internic ([Link]). Es el registro encargado


organizaciones que pudieran gestionar dominios, de modo
que se favoreciera la competencia y bajaran los precios del
registro. En España hay dos empresas que gestionan del control de los dominios «.com»,«.edu», «.net» y
dominios y que son Interdomain ([Link]) y «.org». Está gestionado por la empresa nor-
Nominalia ([Link]). teamericana Network Solutions Inc., formando una
El registro de nombres de dominio territoriales de asociación con el Gobierno de los Estados Unidos. Es
segundo nivel- en España se llama ES-NIC y está de- el organismo más conocido y utilizado de Internet
legado desde 1994 al Centro de Comunicaciones del Consejo debido a que los dominios que gestiona son los de
Superior de Investigaciones Científicas, RedIris. mayor popularidad y a que impone un mínimo

• NIC del Gobierno Federal de los Estados Unidos


Actualmente RedIris no asigna direcciones IP. De esto se control sobre la identidad de los registrantes.
encarga el proveedor de servicios telemáticos (ISP,
Internet Services Provider). En Europa, una organización ([Link]). Es el registro encargado
llamada RIPE NNC (Réseaux IP Européens) es la que se de los dominios «.gov», utilizados exclusivamente por
encarga del reparto de grupos de direcciones entre los las agencias civiles del Gobierno Federal de los

• NIC del Departamento de Defensa de los Estados


ISP que lo solicitan. En la página web del ES-NIC Estados Unidos.
([Link]/whois) se puede encontrar información
sobre todos los proveedores registrados en España, así Unidos ([Link]). Es semejante al registro de
como sobre los dominios de nombres. «.gov», pero para dominios «.mil», propios de las

• IANA (Internet Assigned Numbers Authority,


El registro de una empresa corresponde a un nombre de agencias militares estadounidenses.
segundo nivel, por ejemplo, una empresa llamada
MOBLISA, podría registrar un dominio de segundo nivel [Link]). Se encarga de la gestión del do-
en España, denominado «[Link]». A partir de este minio nacional estadounidense «.us», además de
subdominio, la empresa podría crear otros subdominios, tener otras funciones en la asignación de números en
tantos como crea conveniente, sin necesidad de dar ex- Internet, especialmente de direcciones IP, como
plicaciones al registro de dominios.
• APNIC (Asia Pacific Network Information Center,
veremos más adelante.
ES-NIC establece unas normas concretas para registrar un
dominio, que se han actualizado recientemente. Antiguamente [Link]). Gestiona los dominios de países
sólo podían registrarse organizaciones con entidad jurídica,
• CORE (Council ofRegistrars, [Link]). Es el
asiáticos y del Pacífico.
sólo un registro por compañía, y con un nombre que tuviera
alguna relación con la sociedad que pretendía registrarse. En
organismo internacional, no asociado al Gobierno
la actualidad, es posible el registro de personas físicas y, bajo
ciertas condiciones, también es posible tener más de un estadounidense al que se le ha encargado el estudio de
nombre de dominio por entidad. También hay una serie de nuevos dominios de primer nivel.
restricciones sobre el nombre de registro, cuya longitud debe
estar entre tres y 64 caracteres, si bien no se recomiendan Por otra parte, la asignación de direcciones IP se basa en
más de diez. Se pueden emplear caracteres alfabéticos y la existencia de otros registros llamados RIR (Regional
numéricos, además del guión. Tampoco se pueden Internet Registries) que se ocupan de esta asignación y que
registrar dominios que tengan que ver con la tecnología están repartidos en extensas regiones mundiales. Los RIR
Internet, ni nombres que hagan relación a otras empresas delegan su administración en otros registros más pequeños y
o marcas comerciales, ni términos malsonantes. localizados geográficamente, llamados LIR (Local
Se ha creado una gran polémica en tomo a los cybers- Internet Registries). Por encima de todos estos registros
quatting, que son personas que ilegalmente registran nombres está la IANA, que opera como el registro de direcciones
de dominio relacionados con empresas o marcas comerciales, IP de mayor nivel. Existen tres RIR en el mundo que son:

• RIPE NCC (Réseaux IP Européens Network Coor-


que no les pertenecen y que luego intentan vender por altos
precios a las auténticas empresas propietarias.
dination Center, [Link]). Es el RIR que so-
Organizaciones relacionadas con Internet porta toda Europa y sus áreas próximas. RIPE tiene
delegada su administración de direcciones IP en más
Internet es tan grande que tiene que ser gobernada y con- de mil LIR.
sensuada por multitud de organizaciones, muchas de las

7
• ARIN (American Registry for Internet Numbers, tatutos persigue «promover sin ánimo de lucro el uso
[Link]). Se encarga de repartir direcciones de las Autopistas de la Información en general, de
IP en el continente americano y el África sub- las redes de telecomunicaciones nacionales e
internacionales y, en especial, de Internet, fomentando
• APNIC (Asia Pacific Network Information Center,
sahariana.
su utilización en los ámbitos profesional y doméstico
[Link]). Es el RIR que se encarga de las de forma ordenada, dar a conocer el estado de la
regiones asiáticas y del Pacífico. tecnología y el derecho relativo a las mismas, así
como proteger los intereses de los usuarios de las

• ASIMELEC (Asociación Multisectorial de Empresas


mismas».
Tan importante en Internet como los nombres de
dominio o las direcciones IP son los estándares de las
Españolas de Electrónica, [Link]).
tecnologías utilizadas. También hay una serie de orga-
Mantiene un grupo de trabajo en el que están repre-
nizaciones que se encargan de elaborar y aprobar estos
sentados la mayoría de los ISP nacionales.
estándares. La organización de mayor nivel vuelve a ser la
IANA, a la que ya nos hemos referido abundantemente, y
que se encarga de coordinar todos los estándares válidos,
así como sus parámetros y protocolos; sin embargo, hay 1.1.6. El acceso a Internet
muchas otras:

• IETF (Internet Engineering T as k Force,


El acceso a Internet puede realizarse de varios modos,
dependiendo de las necesidades de las organizaciones y de
[Link]). Su labor se lleva a cabo como un conjunto los costes que se esté dispuesto a soportar. Bási-
de grupos de trabajo organizados que publican unos camente hay tres modos de presencia en Internet
documentos denominados Internet Drafts listos para su (Figura 1.2):

• Acceso por proveedor telemático. El usuario se


discusión. Cuando un Internet Draft es discutido y
aprobado, se convierte en un RFC (Request For
Comments) en el que se especifican las características conecta a través de la RDSI o por módem a través de
finales de un protocolo, norma o tecnología, la RTC al sistema de un proveedor telemático de

• ISOC (Internet Society, [Link]). Es el orga-


convirtiéndose de este modo en estándar. servicios de Internet, de modo que se convierte
temporalmente -mientras la conexión permanece
nismo que coordina la operación global en Internet, abierta- en un nodo Internet. El nodo del
proveedor pertenece permanentemente a Internet y,
• W3C (World Wide Web Consortium, [Link]).
proporcionando soporte a la IETF.
a través de él, se obtiene el acceso al resto de la red.
Lidera todas las actividades en torno a la estandari- El proveedor, por su parte, factura el servicio a los
usuarios que se conectan a su host. El coste para el
zación de protocolos para la web. usuario tiene dos partidas: lo que le cobra el
proveedor de servicios Internet y lo que le cuesta la
Además, hay organizaciones que funcionan a modo de llamada telefónica de acceso al proveedor. En la
asociaciones de usuarios o proveedores de Internet. actualidad es frecuente que se contraten tarifas planas
Por ejemplo, la EFF (Electronic Frontier Foundation, tanto con el proveedor como con el operador
[Link]) o la IPSC (Internet Service Providers Con- telefónico, es decir, se paga una cuota mensual o
sortium, [Link]). anual que nos da derecho al uso de la red de modo
En España, los organismos más importantes de ámbito ilimitado en el tiempo. También se pueden utilizar
nacional encargados de algunas de estas funciones tarifas blandas, que funcionan como tarifas planas
de control y gestión en Internet son los siguientes: pero restringen su servicio a un horario,

• Integración de toda la LAN en Internet. En este


normalmente nocturno o de fin de semana.
• ES-NIC (Network Information Center Español,
[Link]), al que nos hemos referido anteriormente segundo caso toda la organización se conecta a In-
ternet a través de un router. Cualquier nodo de la red
• CMT (Comisión del Mercado de las Telecomunica-
con frecuencia.
de área local, que posea el software apropiado, podrá
ciones, [Link]). Se encarga por ley de «salva- acceder a los recursos de Internet. La conexión del
guardar, en beneficio de los ciudadanos, las condi- router a Internet debe estar permanentemente abierta a
ciones de competencia efectiva en el mercado de las través de líneas rápidas, al menos un acceso RDSI
telecomunicaciones y de los servicios audiovisuales, de 64 kbps o una línea Frame Relay de 64 kbps con
telemáticos e interactivos, velar por la correcta CIR (Committed Information Rate) de 16 kbps como
formación de los precios y ejercer de órgano arbitral mínimo. Los usuarios del servicio no tienen que pagar
en los conflictos que surjan en el sector». Está en ninguna tarifa por la conexión, puesto que la conexión
estudio que el registro ES-NIC pase a formar parte de la es de su propiedad y permanente, aunque la
organización
• AUI (Asociación de Usuarios de Internet,
CMT.

[Link]). Es una asociación que según sus es

8
debe costear las conexiones RDSI, Frame Relay o paralela que se han denominado Internet2 o 12 con objeto de

• Acceso de la LAN a Internet a través de un nodo.


fibra óptica al resto de la red. comunicar organismos educativos y de investigación
utilizando redes de muy alta velocidad, auténticamente
Es el caso que estudiábamos en la Unidad 9 de que autopistas de información.
toda una red pueda acceder a Internet a través de un En el caso de 12 la capacidad y velocidad de transmisión
servidor p r o x y o las técnicas de enmascaramiento en las columnas vertebrales de la red -backbones- es
IP. En la Figura 1.2, este modo de acceso es seme- igual a la de cualquiera de sus segmentos. En principio, no
jante a la configuración vía router, sustituyendo a está previsto que 12 sustituya a Internet ya que su objetivo es
éste por otro nodo en red. el mundo académico, investigador y científico, dejando de
lado las aplicaciones comerciales o lúdicas, aunque es
Las compañías telefónicas han puesto en marcha redes de difícil predecir si se mantendrá o no este objetivo con el
acceso a proveedores de servicios telemáticos de transcurso del tiempo.
distribución de datos. A estas redes se conectan los pro- En general se habla no ya de 12 sino de NGI (Next
veedores que han contratado este servicio y que ofrecen sus Generation Internet) para referirse a la Internet de próxima
datos a cuantos clientes los requieren, normalmente con generación. 12 no sería más que una red dentro de NGI. En NGI
tarifa de llamada local. participan entidades como la NASA, el Departamento de
Defensa estadounidense o la National Science Foundation.
Algunas aplicaciones previstas para NGI tienen relación con
el trabajo colaborativo, librerías digitales, computación
distribuida, simulación y operaciones remotas, educación o
manufactura.
En 12 hay tres tipos de miembros. Los miembros «re-
gulares» están constituidos por universidades y otros centros
de educación especializados, los miembros «afiliados»,
como la NCSA e instituciones semejantes, y los miembros
«corporativos», que son grandes empresas (AT&T, Nokia,
Apple, IBM, etc.), que aportan su tecnología.
Las aplicaciones 12 serán distintas de las que cono-
cemos hoy en Internet, tendrán que ser absolutamente nuevas
para adaptarse a la diferente tecnología utilizada en 12; por
ejemplo, tendrán que ser capaces de gestionar el ancho de
banda. Los puntos de conexión de la tecnología 12 se llaman
GigaPops (Gigabit Capacity Point of Presence) y se
encargan del intercambio de tráfico en la red. Un GigaPop
puede, además, proporcionar servicios de conexión a la
Internet tradicional. En Internet las conexiones a las
troncales no suelen superar los 155 Mbps, mientras que en
12 o NGI estarán por encima de los 600 Mbps. Como es
Figura 1.2. Ejemplos de tipos de acceso a Internet: arriba, lógico, 12 integra el protocolo IPv6, en vez del IPv4
acceso por integración de la LAN en Internet utilizando un utilizado actualmente por Internet. 12 se plasma actualmente
router, abajo, acceso a través de un proveedor telemático vía en lo que se conoce como «Proyecto Abilene». Se puede
módem. conseguir más información sobre la implantación de 12 en
[Link]/abilene.
También hay otros proyectos como Oxigen, de ámbito
1.1.7. El futuro de Internet privado y destinado a crear una red multimedia para
negocios. En Europa también existe una red de alta
Cualquiera que haya navegado por Internet se ha dado velocidad, se trata de la Trans-European Network TEN-
cuenta de algo: Internet, siendo la red que puede interco- 34 ([Link]/ten-34.htm1), que interconecta redes
municar cualesquiera redes IP, puede hacerse insufrible- académicas y de investigación. TEN-34 ha tenido ya
mente lenta. La explosión comercial que se produjo en algunos descendientes entre los cuales están TEN-155
Internet en la segunda mitad de los años noventa, hizo ([Link]/[Link]) y el proyecto Quantum
que sus vías de comunicación se saturaran con frecuencia, (Quality Network Technology for UserOriented
todo ello con independencia de los recursos que las grandes Multimedia, [Link]/[Link]) en el que se
compañías de comunicaciones han dedicado a paliar este integra, entre otros, la española RedIris del CSIC;
problema: la demanda ha sido mayor que las posibilidades Quantum proporciona accesos IP de 155 Mbps incluyendo
de crecimiento en ancho de banda. reservas de ancho de banda y posibilidad de soportar redes
En esta situación, algunas entidades, sobre todo insti- privadas, por ejemplo, entre grupos de investigación.
tuciones universitarias y compañías dedicadas a la tecno-
logía estadounidenses, han empezado a construir una red

9
1.2. SERVICIOS INFORMATIVOS
BÁSICOS EN INTERNET
Nos fijaremos a partir de aquí en Internet, no como una Existen muchos nodos en Internet que permiten el acceso
red de transmisión que interconecta a otras redes, sino público a través de Telnet, aunque su número está des-
como una fuente de información útil para los internautas. cendiendo rápidamente en beneficio de los servicios web.
Describiremos, por tanto, algunos de los servicios más Ahora muchos dispositivos de red se gestionan a través de la
comunes que podemos encontrar en los servidores repartidos misma red utilizando servidores web que los mismos dis-
por Internet. positivos incorporan para su gestión remota. La descripción
de algunos de los servidores Telnet, con los nombres de
usuarios y contraseñas, se encuentran recogidos en una
aplicación denominada HYTELNET. Se puede acceder a esta
1.2.1. Servicio de presentación aplicación por varias vías. Una de ellas consiste en acceder
remota Telnet vía Telnet al nodo «[Link]» con el nombre de usuario
«hytelnet».
Como ya hemos estudiado en la Unidad 6, Telnet es una
utilidad originaria de los sistemas Unix que permite la
conexión interactiva a un host que soporte este servicio,
convirtiendo al cliente en un terminal remoto. No todos los
hosts pueden aceptar sesiones Telnet, es necesario que estén
preparados convenientemente. Para ello, además de ejecutar
la pila de protocolos TCP/IP, es necesario que sea una
máquina con soporte para múltiples usuarios o, al menos,
varias sesiones simultáneas.
Para realizar una conexión vía Telnet es necesario conocer
la dirección IP del ordenador hacia el que deseamos
conectamos. Si no se conoce esta dirección, se puede sus-
tituir por el nombre DNS del ordenador, siempre que ten-
gamos acceso a un servidor DNS que resuelva el nombre.
Además hay que conocer el nombre de usuario y la contra-
seña de una cuenta en el sistema anfitrión. Algunos hosts Figura 1.3. Conexión Telnet a un servidor Unix SunOS, que
permiten realizar conexiones Telnet sin necesidad de poseer pregunta por el nombre del usuario que se quiere presentar, en
una cuenta en el sistema. Para ello se realiza una conexión este caso como invitado (guest).
escribiendo «invitado» (guest) cuando el host nos pregunte por
el nombre de usuario. La contraseña se omite o, si no fuera
posible, es costumbre proporcionar como contraseña la 1.2.2. Correo electrónico en
propia dirección de correo electrónico. Internet
Telnet proporciona una emulación de terminal por soft-
ware para la simulación de un terminal remoto (Figura El correo electrónico en Internet es semejante al correo en
1.3). Es necesario adaptar la emulación a nuestras nece- una red de área local, aunque pierde algunas de sus
sidades definiendo correctamente el tipo de terminal que funcionalidades debido a la gran cantidad de tecnologías
deseamos emular. Las emulaciones más habituales son la del diferentes que tiene que compatibilizar, pues cada usuario de
terminal VT100 de DEC y la 3270 de IBM. Windows 2000 la red posee sus propios equipos y programas de acceso.
incorpora un servidor Telnet que emula una sesión DOS en el
servidor, y a la que se puede acceder desde el cliente Características generales
Telnet: esto es muy útil para facilitar la administración
El estándar más extendido para el servicio mail de Internet es
remota.
SMTP, al que ya nos hemos referido en la Unidad 8. Los
A través de Telnet no sólo realizamos conexiones remotas
mensajes electrónicos confeccionados según las normas de
interactivas, sino que nos posibilita para acceder a todos los SMTP sólo pueden contener caracteres ASCII de 7 bits, es
servicios del host en el que hayamos realizado la conexión
decir, ni siquiera se permiten caracteres acentuados o
y a los que nuestra cuenta nos dé derecho, sabiendo que
especiales. Tampoco se permite la transferencia de ficheros
los recursos gráficos de los que dispondremos serán muy
binarios, por lo que este sistema de correo electrónico está
limitados, pues la sesión que se crea es de tipo alfanumérica.
muy limitado. Para salvar estas limitaciones

10
se incorporó a SMTP la codificación UUENCODE que • Rapidez y fiabilidad. Una vez cedido el mensaje
permite salvar estos inconvenientes. electrónico a la red, el servidor Internet de correo
Otro estándar muy utilizado, que está desplazando a los electrónico es capaz de entregarlo a su destinatario en
demás, es MIME (Multipurpose Internet Mail Extension), pocos minutos. Además, si el destinatario es des-
que permite incluir en el mensaje de correo cualquier conocido o sencillamente el correo electrónico no ha
información binaria: voz, vídeo, imagen, etc. podido ser entregado, se generará un aviso, ad-

• Confirmación de entrega y lectura. La mayor parte de


Para poder acceder al servicio de correo electrónico de virtiendo de ello al emisor del mensaje.
Internet debemos tener, además del cliente de correo (Figura
1.4), un buzón en el servidor de algún proveedor de correo los sistemas de correo permiten la inclusión de
Internet. Éste suele ser un servicio básico cuando se marcas especiales en sus correos. Entre las marcas
contrata una cuenta de acceso a Internet, incluso, aunque sea más utilizadas se encuentran la de entrega y la de lectura,
gratuita. que avisan al emisor de que el correo electrónico
fue entregado en su destino o de que además fue leído
por el destinatario. Estas marcas pueden, no obstante,
ser deshabilitadas por el servidor de correo
destinatario con objeto de privatizar aún más la in-

• Economía. En general, la comunicación por correo


formación sobre los usuarios que leen en sus buzones.

electrónico es más barata que por cualquier otro sis-


tema. Obviamente, los costes dependerán del tipo de

• Comodidad. Los programas gestores de correo elec-


conexión a la red que se posea.

trónico permiten una serie de operaciones sobre los


mensajes recibidos: imprimirlos, editarlos, clasificarlos,
contestarlos, etc. Todo esto hace que, además, se ahorre
mucho tiempo. Es un paso más hacia lo que se ha
venido en llamar la «oficina sin papel» o, más
recientemente, la «empresa digital».

a
1.2.3. Búsqueda de usuarios en la
Figura 1.4. Cliente de correo electrónico para Internet y red
confección de un nuevo mensaje con Outlook Express.
Como estudiaremos más adelante, en Internet está relati-
vamente resuelta la búsqueda de recursos de la red a través
La tendencia actual en los sistemas operativos de red de unos servidores especiales encargados de ello. Sin
evoluciona hacia la integración del correo electrónico embargo, la búsqueda de usuarios de la red no es tan fácil.
externo de Internet con el correo electrónico interno de la Exponemos aquí algunas utilidades que facilitan estas
propia red de área local. El sistema operativo discrimina qué búsquedas.
correo viene de qué red, o qué mensajes deben ser transferidos
por qué vía para que alcancen su destino. Utilidad Finger
Los campos a rellenar en el formulario que se utiliza
para el envío de un mensaje electrónico en Internet se re- Finger es una utilidad que procede del mundo Unix y
ducen a la dirección del destinatario, las direcciones de los que permite conocer si un usuario de la red se encuentra
usuarios a los que se enviará una copia del mensaje, el campo presente en algún nodo de la misma al que interrogamos.
de asunto o subject, la dirección del remitente y el cuerpo Es posible preguntar al host remoto por un usuario
del mensaje o body. Algunos sistemas de correo permiten la concreto o por una lista de todos los usuarios
adhesión de ficheros asociados al mensaje, que también se presentados en ese momento (Figura 1.5). El incremento
pueden especificar como campos del formulario o como de las actividades ilegales en Internet ha hecho que los
parte del mensaje. administradores de red de muchos equipos hayan
deshabilitado esta opción para garantizar la
Ventajas aportadas por el correo electrónico confidencialidad de los datos de los usuarios que a ellos se
conectan.
El tratamiento electrónico de información a través del Aunque lo normal es que la respuesta al comando Finger
correo electrónico tiene las siguientes ventajas: sea una lista de los usuarios presentes en el host, el
administrador puede suministrar cualquier otro tipo de
información si configura Finger adecuadamente, por lo que
este servicio se puede utilizar para proveer cualquier otro
tipo de información.

11
Figura 1.5. Ejemplo de utilización de la utilidad Finger.

Utilidad Whois
Whois es una utilidad que permite consultas sobre una base de
Figura 1.6. Acceso mediante Telnet a un servicio Whois.
datos que contiene información sobre los usuarios de la red
que pertenecen a una organización específica, de modo
similar a unas páginas amarillas de guía telefónica.
en alguna corporación. Para corregir estos problemas se creó el
Los dos principales servidores Whois que se consideran
servicio X.500, que permite obtener información de los
como oficiales en Internet para todo lo que tiene que ver
usuarios de la red mediante un sistema jerárquico de servi-
con su administración se pueden localizar en
dores a escala mundial, y que utiliza un sistema equivalente al
[Link] y [Link] para los Estados Unidos
DNS para la resolución de nombres TCP/IP.
y Europa respectivamente.
El primer nivel de jerarquía del servicio X.500 está
El acceso a un servidor Whois se realiza a través del
compuesto por los distintos países, el segundo nivel in-
cliente Whois adecuado, aunque también es posible el
cluye las organizaciones de cada país, y así sucesivamente
acceso desde otros recursos de la red como Telnet, gopher
hasta llegar a los usuarios concretos. 11

o web. Para el acceso vía Telnet se suele emplear el puerto


El acceso al servicio X.500 se puede realizar de muchas
43. Por ejemplo, un acceso posible sería «telnet
formas, aunque las más comunes son Telnet y web (Figura
[Link] 43» (Figura 1.6).
1.7). A partir de aquí se navega por un sistema de
preguntas y respuestas hasta hallar la información buscada.
El servicio X.500
X.500 permite la creación de listas de usuarios que cumplan
Cuando la búsqueda de usuarios por la red se extiende des- unos requisitos determinados, por ejemplo, que tengan un
de una organización concreta a la globalidad de la red, el apellido concreto, que residan en cierta ciudad y pertenezcan
servicio Whois es insuficiente, puesto que sólo proporciona a una organización concreta.
información sobre usuarios perfectamente localizados

Figura 1.7. Ejemplo de búsqueda guiada en el servicio de directorio X.500 de la Red


Iris a través de la web. Como se puede observar, es posible localizar la información
pública de las personas integrantes de la organización.

12
En Internet, también se han creado lo que se viene en rios a los que la cuenta de presentación nos dé acceso,
llamar «páginas blancas», que no son sino una versión para transfiriendo ficheros de servidor a cliente (comandos get y
correos electrónicos de las páginas amarillas para números de mget), o de cliente a servidor (comandos put y mput).
teléfonos. Sin embargo, el alta en una página blanca no es Algunos servidores FTP permiten conexiones anónimas
automática, debemos registramos nosotros mismos. para el acceso a todo o a parte del servidor. Para realizar una
conexión anónima se utiliza el nombre anonymous como
nombre de usuario, y la dirección de correo electrónico
1.2.4. Transferencias de ficheros como contraseña.
Hay que tener en cuenta si los ficheros a transferir son
Este servicio de Internet tampoco es nuevo para nosotros: ya textos ASCII o ficheros binarios, con objeto de especifi-
habíamos estudiado cómo FTP (File Transfer Protocol) cárselo al cliente FTP, y que realice las conversiones ade-
permitía la transferencia de ficheros entre ordenadores que cuadas en los formatos de los registros de los ficheros a
ejecutan el protocolo TCP/IP en la Unidad 6. A un copiar. Esto se especifica normalmente con los comandos
ordenador que soporta conexiones externas vía FTP se le binary y ASCII del FTP, aunque puede variar de unas
denomina «servidor FTP». máquinas a otras. Lo más prudente es consultar el manual de
Los servidores FTP pueden almacenar grandes cantidades usuario de la aplicación concreta o interrogar al sistema de
de información recogida en multitud de ficheros, sin ayudas del comando FTP.
embargo, no toda la información está al alcance de todos los Originariamente FTP se implementaba en los clientes
usuarios. Los servidores FTP distinguen la información como un programa que interactuaba con el usuario en modo
pública de lo que es información reservada para usuarios línea. Actualmente la mayor parte de los programas clientes
que realicen una conexión con derechos de acceso suficientes FTP son gráficos (Figura 1.8), permitiendo la navegación
para ello. Habitualmente, en servidores FTP implementados con ratón por todo el servidor, sin necesidad de
sobre máquinas Unix, la información pública se encuentra proporcionar comandos.
situada en subdirectorios del directorio «/pub».
Para realizar la conexión FTP, debemos conocer el
nombre de una cuenta de usuario y su contraseña asociada. A
partir de aquí, podremos navegar por los directo

-_ ~. ,. ! '.. ..

Figura 1.8. Acceso a un servidor FTP y descarga de un fichero desde el servidor FTP de la Rediris. Obsérvese, en
este cliente, el extraordinario parecido con el explorador de Windows.

13
Con objeto de disminuir los tiempos de transferencia, ta universidades y centros de investigación y desarrollo. Fue
los ficheros residentes en los servidores FTP suelen estar utilizado originalmente por la comunidad científica para el
comprimidos. Los formatos de compresión más utilizados intercambio ágil de información. En cierto modo se parece
son ZIP (tanto gzip de UNIX como pkzip de DOS), TAR de al correo electrónico, pero mientras que éste especifica
UNIX, LHA y ARJ de DOS, Z de Unix, JPEG y GIF para concretamente quién o quiénes son los destinatarios del
compresión fotográfica, AVI, MPEG y MOV para formato mensaje, el servicio de News deja libre el destinatario,
vídeo, etc. Además se distribuyen documentos en formatos porque el mensaje puede ser recibido por todos aquellos a
estándares aceptados por el mercado como PostScript y PDF quienes interese el contenido.
de Adobe. Para tener acceso a News es necesaria la conexión a un
Especial interés ha cobrado en Internet un lector de fi- servidor News. Los mensajes o noticias de News se estructuran
cheros PDF propio de Adobe y que se llama «Acrobat Rea- de acuerdo con una serie de grupos temáticos. Actualmente hay
der». Es gratuito y descargable desde la sede web de Adobe decenas de miles de grupos en funcionamiento. Los usuarios se
([Link]). Gran parte de los documentos técnicos suscriben a los grupos de su interés, recibiendo
que circulan por Internet están disponibles en este formato. automáticamente todos los mensajes que se generen en los
foros a los que se han suscrito. Cada grupo tiene un nombre
que lo identifica unívocamente. Este nombre consta de una
1.2.5. Servicios de noticias serie de palabras separadas por puntos. La palabra que se
escribe en primer lugar especifica la temática general del grupo.
Son conferencias multitudinarias y públicas sobre los temas Por ejemplo, «comp.» especifica un grupo de noticias sobre
más dispares que se puedan imaginar. Funcionan a modo ordenadores, «biz.» sobre negocios, «sci.» sobre ciencia, «bio.»
de tablón de anuncios en donde cada usuario deposita su sobre biología, etc.; el grupo «[Link].» contiene mensajes
mensaje para que pueda ser leído y contestado por quien lo sobre imágenes médicas.
desee (Figura 1.9). Si el grupo de News al que se suscriben es multitudinario,
El servicio News procede de la red Usenet que conec es posible que el número de mensajes generados sea tan
grande que se colapsen las comunicaciones con Internet,
especialmente si las líneas de transmisión utilizadas son de

Figura 1.9. Servicio de noticias: lectura de un mensaje y de un fichero Word vinculado al mensaje.

14
baja velocidad, por lo que conviene suscribirse sólo a los 1.2.6. Listas de distribución o
grupos en los que se tenga un especial interés. mailing lists
Los mensajes de News son enviados de un servidor a
otro utilizando un protocolo de la familia TCP/IP deno-
Permiten el acceso a parte de la información de Internet
minado NNTP (Network News Transfer Protocol), que se
utilizando pasivamente el correo electrónico como herramienta.
estructura de modo parecido a un correo electrónico en el
Aunque el sistema de acceso varía de unos servidores a otros,
que se omiten algunos de sus campos. Por ejemplo, se
todos siguen la misma filosofia que consiste en suscribirse a
sustituye el campo del destinatario por el nombre del grupo
una lista enviando un mensaje de correo electrónico al servidor
de noticias en el que se incluirá el mensaje.
de listas de distribución adecuado, y rellenando adecuadamente
USENET, la red que une entre sí a los distintos servi-
los campos del correo electrónico. Este mensaje debe ser
dores de noticias, se sirve de una serie de servicios de ré-
enviado a una dirección especial de correo electrónico que
plicas que incorporan los mismos servidores para realizar
suele coincidir con «nombre servidor@dirección_servidor»,
copias ordenadas de los mensajes que se producen en cada
donde «nombre servidor» es el nombre del servidor de listas de
uno de los foros. Los servidores de noticias incorporan soft-
distribución y «dirección servidor» es la dirección DNS o IP del
ware de gestión para realizar las réplicas automáticamente.
servidor, aunque esto puede variar de unos servidores a
Además, los foros de noticias pueden ser tutelados, es
otros. Por ejemplo, para suscribirse se empleará el comando
decir, un moderador se encarga de recibir todos los mensajes
«suscribe nombre lista nombre usuario» como valor para el
que se envían al foro, les da el visto bueno y sólo después
cuerpo del correo electrónico, donde «nombre lista» es el
son puestos en el foro para su consulta pública. Esto impide
nombre de la lista a la que deseamos suscribirnos y
que haya mensajes no deseados en el grupo de noticias,
«nombre usuario» es el nombre y apellidos del suscriptor. Para
aunque si el foro está muy animado, genera una gran
darse de baja en una suscripción se utiliza el comando
cantidad de trabajo para el moderador.
Los foros de noticias constituyen en la actualidad una de «unsuscribe nombre lista».
las mejores vías de resolución de problemas técnicos. Cuando Cuando un usuario se suscribe a una lista mediante el
el administrador de red tiene un problema que no puede mensaje adecuado, recibirá automáticamente en su buzón de
solucionar, puede intentar exponerlo públicamente en el foro correo electrónico cualquier mensaje que se genere en la
adecuando con la esperanza de que alguien le oriente en la lista a la que se ha suscrito (Figura 1.10).
resolución del problema. Para poner un mensaje en la lista que será distribuido a
todos sus suscriptores, hay que dirigir un correo

Figura 1.10. Suscripción a una lista de distribución sobre televisión educativa y lectura del
primer mensaje recibido procedente de la lista confirmando la suscripción.

15
electrónico a una dirección que puede o no coincidir con la mente con todos los ficheros alcanzables a través de los
dirección en la que realizamos la suscripción. Nor- servidores FTP. El cliente Archie interroga al servidor
malmente cada lista tiene asociada una dirección de co- devolviendo al usuario información sobre dónde encontrar el
rreo electrónico única, que se compone del nombre de la fichero que busca.
lista y el nombre del servidor. Por ejemplo, la lista «atm- Si no se posee un cliente Archie, se puede realizar una
es@[Link]» es la dirección electrónica de una conexión Telnet hacia un host que posea el cliente Archie. Por
lista sobre la tecnología ATM, llamada «atm-es» y que ejemplo, la Redlris del CSIC (Consejo Superior de In-
reside en el servidor «[Link]». vestigaciones Científicas) tiene un servicio Archie localizado
Como en el caso de las News, hay que tener cuidado en la dirección «[Link]», al que se puede acceder vía
con las listas de distribución y sólo suscribirse a aquellas Telnet escribiendo archie como nombre de usuario. Una vez
que realmente sean de nuestro interés; de lo contrario, es presentados, tecleando «prog nombre fichero» obtendremos
posible bloquear las comunicaciones con Internet por el una lista de servidores FTP en los que poder obtener el
intenso tráfico generado. fichero solicitado (Figura 1.11).
En ocasiones, también es posible obtener datos pro-
cedentes de un servidor Archie a través de correo electrónico,
1.2.7. Buscadores sin necesidad de utilizar Telnet. Para ello se puede enviar un
de información correo electrónico a archie@[Link], escribiendo help
en el cuerpo del mensaje y dejando en blanco el campo de
La gran cantidad de información a la que es posible acceder asunto (subject). Al poco tiempo, recibiremos un mensaje de
desde Internet produce grandes pérdidas de tiempo gastado correo electrónico con la lista de servidores Archie
en realizar búsquedas entre ingentes bloques de información. accesibles por correo electrónico con las instrucciones de
Para paliar este problema se han definido unos servicios de uso.
búsqueda que ayudan a los usuarios a encontrar la
información que precisan. Servidores gopher
Gopher es un servicio Internet que utiliza la tecnología
Servidores Archie
cliente/servidor capaz de dirigir a un cliente del servicio
Buscar un fichero concreto por la red de servidores FTP hacia el recurso de red solicitado, interpretando el método
constituye una labor abrumadora. Para facilitar este tipo de de acceso necesario para acceder a este recurso. Por
operaciones se crearon los servidores Archie. Un servidor ejemplo, un gopher puede direccionar hacia otro gopher,
Archie genera un índice que se actualiza periódica hacia un Telnet, hacia un FTP, apuntar a un fichero o a un
directorio, etc., a través de un conjunto de pasarelas que le
comunican con estos servicios de Internet.

Figura 1.11. Búsqueda de un fichero en un servidor Archie.

16
Los sistemas gopher se presentan a los usuarios como El acceso a WAIS se puede realizar mediante el cliente
un sistema jerárquico de menús cuyas opciones apuntan a apropiado, o a través de Telnet, hacia un host que tenga el
otros recursos, de modo que el usuario puede cambiar de cliente WAIS.
servidor sin advertirlo, navegando a través de los recursos Buscadores web
de la red hasta alcanzar el punto solicitado. Gopher se
La mayor parte de los documentos accesibles por Internet en
encargará de disparar el cliente adecuado para tener el la actualidad son páginas web. Las distintas empresas que
acceso apropiado. Es, pues, una aplicación de red algo proporcionan servicios en Internet han ideado sistemas de
más inteligente. búsquedas especializadas en este tipo de documentos. Estos
El acceso a gopher se puede realizar a través de un buscadores de páginas (Figura 1.13) utilizan distintos
cliente gopher, o a través de una conexión Telnet hacia un sistemas de búsqueda para la localización de las páginas,
host que posea el cliente gopher. aunque los más comunes son:

• Buscadores jerárquicos. Utilizan un sistema guiado


La gran cantidad de recursos que podemos encontrar
en Internet hace difícil encontrar uno concreto que sea de
nuestra conveniencia. Para resolver este problema de de menús por el que conducen al usuario hacia la
masificación de la información se han creado índices de página buscada. Se puede acceder a un ejemplo de este

• Buscadores sintácticos. El usuario debe propor-


recursos gopher de modo similar a los índices Archie tipo de buscador en el URL «[Link]».
para los ficheros accesibles vía FTP. A este índice de
recursos gopher se le denomina VERÓNICA (Very cionar una o más palabras relacionadas mediante
Easy Rodent-Oriented Net-wide Index to Computerized operadores lógicos, y el buscador devuelve las re-
Archives). ferencias hacia los documentos que cumplen con
El acceso a VERÓNICA (Figura 1.12) se realiza desde mayor probabilidad las condiciones de búsqueda. Un
una opción apropiada para ello en el menú de algunos ejemplo de este buscador se puede encontrar en
servidores gopher. VERÓNICA solicita al usuario que «[Link]».
teclee algunas palabras que expresen los conceptos de
búsqueda, pudiéndose realizar conectivas lógicas booleanas
entre estas palabras; entonces VERÓNICA responderá con
una lista de referencias gopher en las que aparece la palabra
o palabras indicadas.

Figura 1.13. Imagen de uno de los buscadores de páginas en


Internet más populares, accesible desde un servicio web.
Figura 1.12. Directorio de un gopher accedido desde
VERÓNICA a través del explorador de Internet. La mayor parte de los buscadores web en Internet están
agregados a Portales. De hecho, los primeros portales
nacieron en torno a los principales servicios de búsqueda
Servidores WAIS debido a la gran cantidad de internautas que estos
buscadores atraían. Esto generó inicialmente la confusión
Es un servicio que permite la búsqueda de documentos entre buscador y portal, si bien, sus funciones son
que se encuentran indexados en grandes bases de datos. El totalmente distintas como se estudiará más adelante.
usuario proporciona una o varias palabras que describen lo
que busca y el servidor WAIS le proporcionará una lista
con los documentos en los que aparecen estas palabras o
conceptos relacionados con ellas, proporcionando a cada 1.2.8. Servidores web
elemento de la lista una puntuación que indica el grado de
proximidad del documento con las especificaciones de la Éste es el servicio que, junto con el correo electrónico,
búsqueda. más ha popularizado a Internet.

17
La web (www, World Wide Web) nació en el CERN (Centro servidor IIS (Internet Information Server) de Microsoft, in-
Europeo de Investigación Nuclear) como un método de tegrado en Windows NT y Windows 2000 y Apache, servidor
3

intercambio de documentación textual y gráfica entre los gratuito para la plataforma Linux.
componentes de la comunidad científica a través de
Internet.
La transformación más importante que se ha operado en
esta tecnología reside en el concepto de «documento», y,
en concreto, en el de «documento electrónico».
Tradicionalmente se han considerado los documentos
como escritos en soporte papel. Esto desaparece cuando se
utilizan las nuevas tecnologías de la información y de la
comunicación.
Además se están produciendo transformaciones a
otros niveles como consecuencia de esto. Nadie duda de la
importancia que tuvo la invención de la imprenta en la
difusión de la cultura. En el medio impreso, primero se
imprime la documentación y luego se produce la dis-
tribución. En la era electrónica ocurre al revés, primero se
produce la distribución para luego, en una fase posterior,
y sólo si el destinatario lo desea, producir la impresión del
documento.
Figura 1.14. Ejemplo de página web, explorada desde un
El documento electrónico puede estar constituido por navegador.
multitud de elementos distintos, pero con una única
característica común: todos deben ser digitales. Su inte-
gración en un documento se llama hipertexto o en un El navegador
estadio más avanzado hipermedia, combinación de los
términos hipertexto y multimedia. Aquí nace el concepto de El acceso al servicio web, como ya veíamos, se realiza a
navegación a través de los distintos componentes de los través de un cliente especializado denominado «navegador»,
documentos o, incluso, entre documentos diversos «visualizador» o «explorador». La tendencia actual en estos
situados en el mismo o en distintos ordenadores de la navegadores se dirige a conseguir que los accesos a
misma o distinta red. cualquier servicio de Internet se centralicen en el
Cada uno de estos elementos es tratado por la herra- navegador, es decir, a convertir al navegador en la herra-
mienta informática adecuada para ello: si se trata de un mienta universal de acceso del usuario a los recursos de la
texto, un procesador de textos puede ser la solución; si se red, sea Internet o la propia red de área local, integrando
trata de una secuencia de vídeo, necesitaremos un programa todas las aplicaciones de usuario y el modo de visualización
reproductor; etc. de los documentos, siendo cualquiera la procedencia de los
El documento electrónico obvia la naturaleza de la mismos.
información, en ellos el mundo es digital. Los ordenadores De modo semejante a lo que explicamos en el servi cio
son las herramientas apropiadas para su tratamiento. Sólo en gopher, los servidores web tienen pasarelas para el acceso
ocasiones aparecen problemas con el inmenso volumen de desde las páginas HTML a otros recursos de la red como
información con el que hay que trabajar, especialmente en gopher, FTP, correo electrónico, etc. El navegador disparará
el caso del sonido y del vídeo. Al lector de documentos automáticamente los módulos de software apropiados para el
web se le llama navegador o browser. acceso a cada uno de los recursos de modo selectivo,
Los documentos web se denominan «páginas» y siguen permitiéndonos la navegación a través de todos los
un estándar concreto para la descripción de los diferentes documentos y servicios de la red de modo absolutamente
elementos de las páginas denominado HTML (HyperText transparente.
Markup Language), que es un subconjunto de otro En la actualidad, la competencia de las firmas comer-
estándar denominado SGML (Standard Generalized ciales por implantar su navegador es muy agresiva. Des-
Markup Language). Más adelante se profundizará en el tacamos Navigator, el navegador de Netscape; Internet
lenguaje descriptor de páginas HTML, por el momento Explorer, el de Microsoft; y otro independiente, Opera,
sólo nos interesa conocer que HTML permite la que está cobrando mucho auge debido a los pocos recursos
integración de textos, gráficos, vídeo, sonido e incluso que consume.
aplicaciones de usuario dentro de la página. Incluso es
posible la interacción entre elementos de la página y los
datos almacenados en una base de datos ligada a la web.
Son muchos los fabricantes que proporcionan servidores ' Existe una versión del servidor web de Microsoft para Windows 95 y
Windows 98 denominado Personal Web Server (PWS), semejante a IIS
web para diversas plataformas de sistemas operativos.
pero con algunas limitaciones impuestas por el sistema operativo sobre el
Destacamos aquí los servidores web de Netscape, ampliamente que corre.
utilizados en plataformas de comercio electrónico, el

18
Los navegadores más avanzados son capaces de in- Lenguaje HTML
terpretar los datos que recogen de la red en muy diversos
formatos, tanto de textos como de gráficos, de imagen Las páginas de los servidores web están construidas y di-
como de sonido, vídeo y animación. señadas mediante un lenguaje que describe los distintos
Una página de texto puede ser muy aburrida. Una objetos y elementos de la página, que serán representados en
buena parte del éxito de las páginas web reside en que pantalla, mediante marcas y códigos.
permiten la incorporación de elementos multimedia que El estándar establecido para este tipo de documentos es
llaman más la atención de los usuarios que las leen, HTML (HyperText Markup Language, lenguaje de marcas
ofreciendo más interés que el documento equivalente en de hipertexto), que es un lenguaje descriptor de páginas
papel. Tradicionalmente, las páginas web han podido en formato texto y que, por tanto, permite confeccionar
interactuar con aplicaciones escritas en C o en lenguaje sus documentos con cualquier editor de textos ASCII. No
P E R L a través de un interface de programación hay que confundirlo con un lenguaje de programación o
denominado CGI (Common Gateway Interface). Sin con un protocolo de comunicaciones. El protocolo utilizado
embargo, la dificultad y poca flexibilidad de este inter- para transferir elementos HTML es http, al que ya nos
face ha producido la migración hacia herramientas de hemos referido anteriormente.
mayor rendimiento como Java, que estudiaremos más Los formatos gráficos utilizados (GIF, JPG y PNG) son
adelante. formatos comprimidos, de este modo se consigue que las
Algunas extensiones utilizadas por los navegadores páginas web tengan un tamaño moderado y aseguramos que las
implementan el estándar VRML (Virtual Reality Markup imágenes no cargarán excesivamente las líneas de co-
Language) para la visualización de documentos municación. Además, como la resolución de los monitores
multimedia de realidad virtual en 3D. Otras extensiones gráficos no es muy elevada, no es necesario que las foto-
proporcionan soporte para componentes programados, que grafías estén escaneadas a resoluciones altas, basta con una
se pueden descargar automáticamente desde Internet y que resolución de 72 puntos por pulgada.
no son más que objetos contra los que se puede interactuar El navegador se encarga de interpretar los comandos
a través de la red. Estos componentes pueden generar HTML y representarlos en la pantalla, permitiendo la na-
problemas de inseguridad, ya que no dejan de ser códigos vegación por los hipertextos que contiene la página e, in-
ejecutables que vienen del exterior. Para ello, algunas cluso, la salida a otras páginas residentes en otros servidores.
compañías como Microsoft han añadido a su software HTML es muy parecido al lenguaje de comandos uti-
certificados digitales, firmando digitalmente de este modo lizado por los antiguos procesadores de texto. No hay que
todos sus componentes, de tal manera que se sepa con olvidar que proviene de SGML, estándar creado en la
garantía el lugar de procedencia de cada módulo. década de los sesenta. HTML permite la incorporación de
También es posible que los navegadores lancen pro- «hojas de estilo en cascada» o CSS (Cascade Style Sheet,
gramas que son descargados automáticamente a través de la hojas de estilo en cascada), que son un caso particular de
red, y que están incrustados en las páginas proporcionando las hojas de estilo ampliamente utilizadas en los programas
a éstas un valor añadido en forma de aplicación de diseño gráfico o de autoedición. Las hojas de estilo en
informática. Algunas de estas aplicaciones están progra- cascada simplifican la edición de documentos
madas en un lenguaje de scripts, cuyas sentencias son in- estructurándolos de una manera mucho más ordenada.
terpretadas en el navegador cliente, habiendo sido des- En Internet se pueden conseguir con facilidad tanto
cargadas previamente desde un servidor. Lenguajes de editores especializados en HTML como manuales de con-
script típicos son JavaScript o Visual Basic Script. fección de páginas web, aunque bastaría con cualquier
Especial relevancia tiene el lenguaje de programación editor ASCII. Gran parte de los programas de edición de
Java de Sun Microsystems, que se ha convertido en un textos o gráficos incorporan extensiones para la generación
estándar aceptado por todas las plataformas informáticas automática de páginas web, lo que evita la necesidad de
como lenguaje universal de aplicaciones para Internet. La conocer el lenguaje HTML, que se hace absolutamente
aplicación Java, que no es más que un programa (applet) transparente al usuario.
construido en lenguaje Java, es interpretada por una A modo de ejemplo, exponemos en la Tabla 1.2 algu-
máquina virtual (máquina virtual Java) que se nas de las marcas propias de HTML.
Un ejemplo de página HTML, utilizando algunos de
implementa para cada plataforma de hardware y para cada
los comandos especificados en la Tabla 1.2, se representa
sistema operativo, de modo que el mismo código Java es
en la Figura 1.15.
ejecutable en todos los ordenadores. La práctica totalidad
de los navegadores actuales incorporan Java entre sus
utilidades. XML
La complejidad extraordinaria de los navegadores HTML es un lenguaje que describe cómo dibujar la infor-
unida a las imposiciones de los intereses comerciales de mación en un navegador, pero esta función es relativa-
los principales fabricantes han derivado en la incompati- mente pobre cuando se pretenden construir aplicaciones
bilidad de unos navegadores con otros. Así, páginas que más complejas. Para resolver en parte este problema se
son bien reproducidas por unos navegadores tienen defi-
ciencias en otros.

19
Tabla 1.2. Algunos códigos de marcas propios del estándar HTML

Marca Significado

<A HREF> Incluye un enlace (hyperlink) a otra página web especificada como argumento.
<ALIGN> Especifica el código de alineación del texto de un párrafo.
<B> Cambio a fuente negrita.
<BODY> Contiene el cuerpo de la página, es decir, es el recipiente en donde se contienen
los elementos gráficos de la página.

<FONTSIZE> Especifica el tamaño de la fuente de letras a utilizar.


<HEAD> Es la marca que indica que comienza una página.
<I> Cambio a fuente itálica (o cursiva).
<IMG SRC> Inserta una imagen en la página.
<P> Comienzo de párrafo.

DTD o Definición de Tipo de Documento. El objetivo está


ahora en definir una serie de DTD que sean estándares y
aceptados por todos los interlocutores.
Al igual que a HTML se le pueden incorporar hojas de
estilo en cascada, el equivalente a las hojas de estilo CSS
de HTML para XML se denomina XSL (Extensible
Style Language).

WAP
Figura 1.15. A la izquierda, visualización de una páginas web
en un navegador. A la derecha, su código HTML. WAP (Wireless Application Protocol) o protocolo de apli-
caciones inalámbricas es el estándar creado en el año 1997
creó XML (Extensible Markup Language), lenguaje de por el WAP Forum, compuesto por compañías como Ericsson,
marcas también derivado de SGML, como lo es HTML, Motorola, Nokia y [Link] (antes Unwired Planet) con
pero con unas características peculiares que lo hacen ex- objeto de conseguir el acceso a Internet a través e
traordinariamente interesante para la construcción de apli- teléfonos móviles, especialmente para realizar operaciones
caciones en la web. de comercio electrónico, correo y mensajería, vi-
No nos extenderemos mucho en la tecnología XML, deoconferencia, etc. Actualmente apoyan este estándar
que no es el objeto de este libro, y nos ceñiremos a la varios centenares de compañías.
característica esencial que más nos interesa. XML no des- WAP está destinado sobre todo a los teléfonos móviles de
cribe el documento en cuanto a su forma gráfica como tercera generación que ya estudiamos en la Unidad 8,
hacía HTML, sino que describe los datos que contiene. basados en la tecnología UMTS, aunque también se puede
Las marcas en XML no se utilizan como referencias para implantar sobre cualquier teléfono digital celular actual
las operaciones gráficas del navegador, sino para describir como GSM, TDMA, CDMA o DECT. Se trata de poner en el
el contenido del documento. teléfono móvil un micronavegador, capaz de interpretar y
Si pensamos más allá de la web, podemos imaginar representar por la pequeña pantalla del móvil la informa-
XML como un lenguaje que permite la descripción de ción que le envía el proveedor de información desde su
consultas a otros sistemas de información como bases de servidor WAP, semejante a los servidores web. El objetivo es
datos. De hecho, una de las mayores aplicaciones en Internet que las funciones complejas residan mayoritariamente en el
de XML es la de poder acceder desde páginas web a los servidor WAP, dejando al teléfono móvil una mera función
datos contenidos en bases de datos: si la página web de representación de la información, y abaratando así el coste
describe lo que quiere en XML y la base de datos com- de los terminales telefónicos.
prende ese código XML, tendremos el puente perfecto El acceso a Internet desde la red telefónica se realiza a
entre las dos tecnologías. XML es la base fundamental través de una pasarela que convierte las secuencias WAP en
sobre la que se apoya la tecnología ERP (Enterprise Re- HTTP y viceversa (Figura 1.16). El funcionamiento de este
source Planning) de gestión empresarial o el comercio
proceso es el siguiente:

• El usuario utiliza su teléfono móvil WAP para soli


electrónico entre empresas.
La escritura de documentos XML es libre; sin embargo,
• El micronavegador del móvil genera una petición
para que el documento sea legible, deben establecerse unas citar una página.
reglas de escritura que hagan válido el código. La
validación de documentos en XML se hace a través de un que contiene el URL de la página solicitada, y lo

20
1.2.9. Servicios de conversación
A pesar de que el correo electrónico es un medio eficaz de
comunicación remota, que además permite el registro escrito
de los mensajes intercambiados, en ocasiones no es suficiente
porque no proporciona interactividad en tiempo real. Cuando
dos usuarios de la red necesitan esta interactividad en el
intercambio de sus mensajes, Internet proporciona algunos
Figura 1.16. Estructura del acceso a Internet desde un terminal servicios de intercambio de mensajes escritos, voz e imagen
WAP. en tiempo real.

envía a la pasarela WAP-INTERNET a través de la red Servicio TALK

• La pasarela genera una petición http (o https si se


de telefonía móvil. TALK es un comando propio del sistema operativo Unix que
permite el establecimiento de una comunicación escrita,
trata de una conexión segura a través de SSL), y la terminal a terminal e interactiva, entre dos ordenadores que se

• El servidor web contesta a la pasarela con la infor-


pasa al servidor web. comunican mediante TCP/IP, y que tienen el cliente TALK.
Para establecer una comunicación TALK es necesario
mación WML -formato de hipertexto en el que se conocer el nombre de usuario, y la dirección del host en el
codifican las páginas WAP solicitada, donde es que el usuario destinatario está presentado con el fin de
validada y pasada de nuevo a la red móvil para que emitir el comando «talk nombre usuario@nombre host». Si el

• El navegador del teléfono examina la información


alcance su destino en el teléfono móvil solicitante. usuario destinatario de la comunicación está en ese
momento presentado en el sistema, recibirá un mensaje de
recibida y la representa por su pequeña pantalla. llamada que le informa de quién es el usuario que le está
llamando. En este momento el destinatario emite un comando
El lenguaje utilizado por los servidores WAP para la similar con la dirección de quien le llama, estableciendo una
realización de sus páginas, aquí llamadas «cartas» o cards, que comunicación bidireccional. Todo lo que cada uno escriba en
se agrupan en barajas o decks, es WML (Wireless Markup su terminal aparecerá escrito automáticamente en el terminal
Language), que no es sino una versión de HTML especialmente
de otro (Figura 1.18).
adaptada para terminales telefónicos móviles. En WML
también se puede integrar un lenguaje de script, el
equivalente a JavaScript para HTML, que en tecnología WAP
se llama WMLScript. Los accesos a la información se
realizan a través de URL, semejantes a los utilizados en la
web.
La arquitectura de comunicaciones utilizada en WAP está
compuesta por un conjunto de protocolos organizados en
capas según se describe en la Figura 1.17.

Figura 1.18. Utilidad telefónica en Windows NT que simula el


servicio TALK de sistemas Unix.

Servicio IRC

Figura 1.17. Arquitectura de los protocolos WAP comparada con IRC (Internet Relay Chat) es un mecanismo de comunicación
la arquitectura básica en Internet para el acceso a páginas web. semejante a TALK, pero con la diferencia de que, mientras en
TALK la comunicación es exclusiva de

21
dos usuarios, en IRC la comunicación puede establecerse El usuario de un servicio IRC debe ser cuidadoso con la
entre muchos más. seguridad de su equipo. Se ha demostrado que gran parte de las
La arquitectura de comunicaciones de IRC se parece intrusiones en redes provienen de fallos de seguridad que se
más a la comunicación de radioaficionados. Cada comu- ponen de manifiesto cuando se activan los clientes IRC.
nicación se identifica por un número de canal. Cualquier Además, la conversación electrónica puede generar una
usuario que quiera entrar en esa comunicación debe co- cierta adición, además de confusión entre la vida real y la
nectarse a ese canal, dando un pseudónimo como identi- virtual.
ficador (nickname), y, a partir de ese momento, ya es un Entre las redes IRC podemos destacar Undernet,
miembro más de la conversación. IRCnet, DALnet, NewNet y Efnet. En España existen tres
Para acceder a un servicio IRC es necesaria la conexión a grandes redes de IRC que son [Link], accesible
un servidor IRC (Figura 1.19) a través del cliente apropiado desde [Link]; [Link], accesible desde
(Figura 1.20). Los servidores IRC se organizan en grupos [Link]; y Red Latina, a la que se accede
formando redes IRC. Los mensajes se comparten entre todos desde [Link].
los servidores de una red de modo semejante a un servicio de
noticias. Después de realizar la conexión, el servidor nos
mostrará los canales activos en ese momento por si
deseamos participar en alguno de ellos escribiendo
sencillamente «/nombre_canal» donde «nombre carial» es el
nombre del canal. Las operaciones de suscripción al canal,
de liberación de canal o de envío de mensajes se realizan
mediante la emisión de comandos al servidor. Por ejemplo,
«/list» se utiliza para listar los canales existentes, «/whois
nombre usuario» sirve para recibir información sobre la
identidad del usuario que se especifica con el
comando, aunque normalmente se utilizan apodos, y
«/names#canal» genera una lista de los usuarios conectados
al canal que se especifica como parámetro, etc.

Figura 1.20. Cliente de servicio IRC, interactuando sobre la


conexión realizada en el servidor de la Figura 1.19.

Servicio de videoconferencia
Internet permite la transmisión de vídeo de baja calidad.
Figura 1.19. Conexión a un servidor IRC. La velocidad de las líneas y la sobrecarga de tráfico impiden
que el vídeo transmitido tenga el flujo necesario para una
videoconferencia de alta calidad.
Todas las conversaciones entre cualesquiera dos usuarios Para realizar una sesión de videoconferencia son ne-
son públicas, aunque es posible intercambiar mensajes cesarios los siguientes elementos:

• Videocámara, micrófono y altavoces. Como la calidad


privados a través del comando «/msg nombre destinatario
mensaje».
Tanto en los servidores IRC como en los de News y de la imagen será pobre, basta con una videocámara de
en los de listas de distribución, se pueden nombrar su- bajo coste. El micrófono y los altavoces nos servirán

• Tarjeta de captura de vídeo y tarjeta de sonido. En el


pervisores que vigilan el correcto funcionamiento del sis- para el registro y reproducción del sonido.
tema, de modo que los foros o las conversaciones sigan la
temática convenida de antemano para la que se crearon. PC hay que instalar una tarjeta de captura de la imagen de
El supervisor puede expulsar a quien no respete las reglas vídeo que proporcione la videocámara. La tarjeta de
básicas. La espontaneidad con que se realizan las
• Tarjeta RDSI, módem analógico o ADSL. Esto nos
sonido se encargará de procesar la señal acústica.
conversaciones electrónicas a través de IRC, y la im-
posibilidad de expresar los sentimientos de los conver- servirá para realizar la conexión a Internet. Se
sadores con tan pocas palabras ha hecho que se generen recomienda una conexión RDSI para mejorar el
unas secuencias de caracteres que simulan los estados de número de tramas de vídeo que se representarán
ánimos y sentimientos de los interlocutores: son los por segundo, ya que RDSI permite velocidades de
emoticonos.

22
transferencia muy superiores a las aportadas por la ejemplo la herramienta de Microsoft, NetMeeting. Otras

• Software de videoconferencia. Hay algunos pro-


RTC. utilidades, como Messenger, permiten conocer si un usuario
está o no en la red y, si lo está, interactuar con él.
gramas en Internet de libre distribución, aunque
normalmente los proveedores de hardware propor- Webcams
cionan el software adecuado para realizar la vi-
No hay que confundir una videoconferencia con una webcam
• Una conexión a Internet. A través de esta conexión,
deoconferencia.
o cámara web. Aunque el objetivo final sea parecido, brindar
un proveedor de servicios telemáticos nos propor- a la red un servicio de imágenes, ni el modo ni el resultado
cionará acceso al servicio. Si la videoconferencia va a final es el mismo. Una videoconferencia sirve a la red imagen
tener más de dos interlocutores, necesitaremos en movimiento, es decir, vídeo. Una cámara web es una
servidores especializados que realicen estas opera- videocámara situada en algún lugar que genera imágenes
ciones. estáticas cada cierto tiempo -normalmente varios
segundos o minutos- y que vuelca automáticamente en
Tanto el hardware como el software de videoconferencia algún web para que los usuarios puedan verlas a través de las
se ajusta a unos estándares perfectamente definidos por las páginas web.
asociaciones internacionales. Es importante respetar estos En la sede web llamada The Webcam Resource, que tiene
estándares a la hora de adquirir un equipo de videoconferencia si por dirección [Link], se contempla un
queremos aseguramos de poder realizar videoconferencias con buscador de cámaras web. Son situaciones habituales para el
cualquier usuario. empleo de webcams el registro gráfico de paisajes, ciudades,
Debido a que los sistemas operativos modernos, espe- aeropuertos, etc. En la Figura 1.21 podemos ver el ejemplo
cialmente los de escritorio, están muy enfocados a los datos de una webcam.
multimedia, suelen incorporar herramientas estándares para
realizar videoconferencia o audioconferencia. Valga como

Figura 1.21. Imagen procedente de una webcam accedida desde una página web.

23
REDES

24
Redes: Introducción

Hay dos principales tipos de red: punto-a-punto y basada en servidor.

En una red punto a punto cada computadora puede actuar como cliente y como servidor. Las redes punto a punto hacen
que el compartir datos y periféricos sea fácil para un pequeño grupo de gente. En una ambiente punto a punto, la
seguridad es difícil, porque la administración no está centralizada.

Las redes basadas en servidor son mejores para compartir gran cantidad de recursos y datos. Un administrador
supervisa la operación de la red, y asegura que la seguridad sea mantenida. Este tipo de red puede tener unos o mas
servidores, dependiendo del volumen de tráfico, número de periféricos, etc. Por ejemplo, puede haber un servidor de
impresión, un servidor de comunicaciones, y un servidor de base de datos, todos en una misma red.

Hay combinaciones de redes lo cual tiene ambas características: de red punto a punto y basada en servidor . Este tipo de
red es la mas comúnmente usada, pero requiere de un entrenamiento extenso y planeado para su máxima productividad.

Características de los dos principales tipos de red:

Consideraciones Peer to peer Basada en Servidor


Tamaño Buena hasta 10 usuarios. Limitada solo por el servidor y el hardware de red.
Seguridad Establecida por el usuario de cada computadora. Extensa, consistentes recursos, y seguridad para
los usuarios.
Administración Cada usuario es responsable de su Centralizada para control consistente de la red.
administración. No es necesario administrador de Requiere al menos de un administrador con
tiempo completo. conocimientos.

Firewalls, Wrappers y Proxies

Los firewalls, wrappers y proxies ofrecen una buena línea de defensa para los propietarios de servidores Web y
administradores de sistemas.

Los firewalls pueden ser software o hardware que protege los puertos y evita que los piratas penetren al sistema. Los
firewalls permiten que tengan acceso al sistema sólo ciertos nombres de dominio confiables.

Los wrappers se encuentran disponibles en CERT al igual que en otros archivos en Internet. Los wrappers se ejecutan
como una capa de software alrededor de su otro software. Un usuario que se conecta a FTP primero entraría en contacto
con el wrapper, el cual luego habilitaría al FTP. El usuario no sabe que existe el wrapper y no puede detectar ninguna
diferencia en el sistema.

Los wrappers son interesantes porque son flexibles. Pueden actuar como firewalls y en realidad pueden rechazar
usuarios con base en sus nombres de usuarios al igual que en sus nombres de dominios. Además permite crear
callejones sin salida que permiten despistar a los intrusos.

El modo proxy es un método permite ocultar datos por medio de reenrutamiento de las solicitudes. Es útil para usuarios
que están detrás de una firewall. Los usuarios establecen una dirección proxy de su navegador para que apunte hacia su
servidor Web. El servidor Web maneja entonces la dirección real de los datos hacia el mundo exterior. Esto reduce la
dirección que el usuario está tomando cuando deja su sistema, permitiéndole al usuario enrutar los datos los datos a
través de los agujeros en sus propias firewalls. La otra ventaja es que las solicitudes pueden ser filtradas por el software
del servidor. Al filtrar la información, puede restringir el contenido y rastrear el uso al igual que modificar la información en
ese instante.

Los servidores proxy también pueden ser dirigidos a otros servidores proxy, lo cual les permite ocultar datos en forma
efectiva.

Otra ventaja de los servidores proxy es que los servicios como FTP, Telnet, Gopher, etc., pueden ser derivados a
servidores diferentes. Esto le permite distribuir diversas cargas de servidor Web a diferentes servidores físicos. Además
de beneficiarse con el ocultamiento de los datos, ser reduce la carga del servidor.
T OPOLOGÍ A DE RED

T I POS M ÁS COM U N ES DE EST RU CT U RACI ÓN DE U N A RED DE ORDEN ADORES

BU S

AN I LLO

EST RELLA

OT ROS T I POS
CLASES DE DI RECCI ON AM I EN T O I P
La dirección IP de una máquina conectada a una red es
su seña de identidad (es como el DNI).

El formato de direccionamiento IP, en la actualidad, se


conoce como estándar IPv4. Consta de cuatro campos
separados por puntos, cada campo admite numeración
en el rango 0-255, es decir, es un número de cuatro
cifras en base 256.
Cada uno de los campos es un número binario de 8
cifras:
0 es “00000000”, y 255 es “11111111”.
Por eso, se habla de que la dirección IP está codificada
con 32 bits (4 campos de 8 bits).

Este número está dividido en tres secciones:

Identificador de clase
Los primeros bits de la serie.

Identificador de red
Un grupo que pude ser de 7 a 21 bits.

Identificador de host
Los últimos bits de la serie, que definen la máquina
particular a la que se hace referencia.

Una IP nos indica dos cosas, el nombre de la red y el


nombre del host (la máquina). Para saber cual es la
parte de red y cual la del host tenemos la Máscara de
Subred, Indica con “1” la parte de la red y con “0” la
parte del host, por ejemplo:
[Link], o, lo que es lo mismo;
11111111.11111111.11111111.00000000
Referido a esta red ([Link]), nos diría que nuestra
Red se llama [Link], y puedo asignar desde 0 hasta 255 en el último grupo para referirme a un ordenador en particular. Bueno,
realmente sólo podría asignar IPs de 1 a 254, porque en toda red la dirección 0 y la 255 están reservadas.

Vemos, a la izquierda, la diferenciación de clase,


atendiendo a los primeros bits de cada serie.

Clase A
El primer bit es “0”, así la clase A comprende redes cuyo
primer grupo esté entre 0 y 127
(las redes desde [Link] hasta la [Link] son
de uso privado, o sea, para redes internas).

Clase B
Los primeros bits son “10”, así la clase B comprende
redes cuyo primer grupo esté entre 128 y 191
(desde [Link] hasta la [Link] son de uso
privado).

Clase C
Los primeros bits son “110”, así la clase C comprende
redes cuyo primer grupo esté entre 192 y 223
(desde [Link] hasta la [Link] son de uso
privado).
Clase D
Los primeros bits son “1110”, así la clase D comprende redes cuyo primer grupo esté entre 224 y 239 (no tiene reservado ningún
grupo de uso privado). Las redes de clase D están pensadas para multidifusión (“broadcast”).

Clase E
Los primeros bits son “1111”, así la clase E comprende redes cuyo primer grupo esté entre 240 y 255 (tampoco tiene reservado ningún
grupo de uso privado). Las redes de clase E están pensadas para aplicaciones especiales (científicas y desarrollos futuros).

Existen otros rangos de IPs prohibidos, como [Link] que es usado internamente para referirse a la propia máquina.

Los posibles direccionamientos del estándar IPv4 (aunque parezca increíble) se están quedando escasos, por ello se empieza a
implementar un nuevo estándar: IPv6. Con codificación de 128 bits, es decir serán 6 grupos en vez de los 4 actuales.

Para determinar si dos ordenadores pertenecen a la misma red, se realiza la siguiente prueba:
IP1 AND MÁSCARA = RESULTADO1, IP2 AND MÁSCARA = RESULTADO2; RESULTADO1 XOR RESULTADO2 = FINAL
Si FINAL = 0, sí pertenecen a la misma red, si FINAL ≠ 0, pues no. Veamos un ejemplo:

Este tipo de operaciones lógicas son las “cuentas” que de verdad hacen los ordenadores. Principalmente son 3: AND, OR y XOR

AND OR XOR
1100 AND 1010 = 1000 1100 OR 1010 = 1110 1100 XOR 1010 = 0110

Para realizar todos estos cálculos lógicos y las conversiones entre los sistemas decimal, binario u otros, puedes usar la calculadora de
WINDOWS. Está en Inicio / Todos los Programas / Accesorios, o bien, Inicio / Ejecutar, escribes calc, y aceptas.

Cuando la tengas en ejecución, ve al menú Ver y eliges la opción Científica. Ahora podrás hacer todas las operaciones…
CREAR
U N SÍ T I O WEB

29
Planificación: Sitio Web: Objetivos

Antes de diseñar, publicar y publicitar un Sitio en Internet, se debe tener muy en claro cuál va a ser el objetivo del mismo.
Los Sitios pueden cumplir diversas funciones en el ámbito de una empresa. Se pueden usar como presencia institucional,
como un medio para ofrecer información valiosa a nuestros clientes, para la realización de ventas directas o bien como
centro de consultas.

Un buen comienzo implica un Sitio con una actitud clara. Mínimamente debe ser utilizado como presencia institucional,
por lo cual una actitud o un perfil confuso jugaría en contra de los propios intereses.

Ideas claras

Antes de iniciar la creación del Sitio es importante tener las ideas claras. Es recomendable dibujar un boceto de como va
a ser el Sitio y determinar que componentes y que enlaces contendrá. Muchas personas suelen pasar por alto este punto
debido a que tienen una idea general de lo que van a hacer, pero se ahorra tiempo y dinero si se cuenta con un boceto
del Sitio que vamos a crear.

Puntos a tener en cuenta

Contenido: Generar el interés de los usuarios.


Diseño: Crear un Sitio que sea fácil de leer y navegar.
Credibilidad: Ganar la confianza de los visitantes.
Imagen: Respetar las características de la empresa.
Dominio: Elegir el nombre del dominio adecuado.

Planificación: Sitio Web: Contenido

Desarrollar un Sitio no es solamente publicar en la Web los materiales impresos de la compañía. Para atraer visitantes se
debe dar algo más, aprovechando los múltiples recursos que Internet ofrece. Hay que generar el interés de los usuarios
para que de esa manera se conecten al Sitio y tengan información precisa y de interés, y no solamente lo que pueden ver
en un fax o una carpeta de presentación. Internet es una herramienta interactiva, que permite crear un vínculo de ida y
vuelta con los usuarios y/o clientes independientemente de dónde ellos estén. No hay que desaprovechar esta
oportunidad usando el espacio en la Red como un depósito de documentos.

El contenido dependerá directamente de la temática del Web. La gran mayoría de los usuarios que acuden a un Sitio
Web lo hacen en busca de información. Da igual como se presente dicha información (texto, imágenes, vídeo, audio)
pero un Web debe aportar contenido. Es importante tener en cuenta que WWW es un medio de comunicación distinto a
los que hasta ahora conocíamos (televisión, radio, prensa, etc.); el navegante pasa de página en página Web a ritmo de
clic de ratón, y generalmente pasa poco tiempo en una misma página. Por lo tanto no se debe abusar de la información
textual, ya que son muy pocos los visitantes que se leen completamente una página Web. Siempre se ha dicho que una
imagen vale mas que mil palabras, y aunque una página Web no es un programa de televisión, las imágenes siempre
son importantes.

Planificación: Sitio Web: Credibilidad

Para que el Sitio sea más creíble y gane la confianza de las personas que lo visitan, es recomendable incluir el nombre
de la Empresa o de la persona responsable con la dirección física e información acerca de los contactos por otras vías
como número de teléfono y fax. Es algo muy tranquilizador para quienes nos visitan saber que existe detrás de nuestro
Sitio una empresa o una persona real aún cuando se trate de un negocio que solamente funciona en Internet.

Donde más se nota que estos datos son fundamentales es en los Sitios en los cuales se vende a trevés de la Red. Para
dejar los datos personales y en especial el número de tarjeta de crédito, es imprecindible que quienes visiten el Sitio
tengan la absoluta certeza de que la empresa existe y es responsable.

30
¿Alguien compraría productos, ingresando los datos de su tarjeta de crédito, en un Sitio que no posea una referencia
física y real clara, o bien que su dirección de correo fuera una dirección de webmail? Seguramente no. Por eso, salvo los
Sitios que son reconocidos, es muy difícil generar una estrategia sin el referente real de nuestra presencia. No te olvides,
ganar la confianza de quienes nos visitan es el primer paso de un Sitio exitoso.

Imagen del Sitio

Al definir el diseño y el contenido del Sitio, es muy importante respetar todas las características con las cuales se
identifica la empresa. Por ejemplo, si las personas asocian McDonald's con los colores rojo, amarillo y blanco, el Sitio
también debe tener estos [Link] pasaría si el fondo del Sitio de Renault fuese negro? Las personas al entrar se
sentirían un poco desconcertadas ya que el negro es generalmente asociado con cosas malas, como por ejemplo la
muerte.

Planificación: Sitio Web: Competencia

Cualquiera sea el rubro o negocio en el que queramos incursionar, es más factible que en Internet existan diversos Sitios
ubicados en el mismo segmento, es decir, que busquen el mismo público. Ya sea de acá o de cualquier parte del mundo,
es una muy buena práctica visitar y analizar esos Sitios y fundamentalmente estudiar a fondo los más exitosos. Es una
práctica muy recomendable ingresar a un buscador y pedir Sitios que desarrollen actividades similares a las que estamos
realizando nosotros y queremos publicitar en Internet.

En Internet existe un alto grado de compañerismo entre Webmasters lo cual nos permite crear relaciones muy
beneficiosas. Crear un vínculo profesional, una alianza o una comunidad con otros Webmasters puede resultar muy
productivo para nuestro negocio. Los Webmasters son personas que conocen perfectamente el negocio en Internet, por
lo tanto pueden proveernos de valiosa información sobre nuestros potenciales clientes y todo lo relacionado a la actividad
que estemos desarrollando.

No te olvides, en Internet hay mucho material y, seguramente, haciendo una recorrida exhaustiva por Sitios del mismo
rubro, vas a tener una fuente de ideas inagotables para potenciar no sólo tu presencia on-line sino también off-line.

Planificación: Dominio: Nombre

Éste es el primer aspecto técnico que se debe considerar cuando se desea definir un espacio en la Red. Normalmente
para garantizar una asociación mental de los usuarios, se pone al dominio un nombre que coincida con el de la empresa
o el producto que se va a presentar en la Web. Ese simple hecho, por sí solo, garantiza un importante tráfico a la Red. Es
más, en muchas ocasiones, cuando uno intenta acceder al Sitio de una empresa de la cual no conoce exactamente su
dirección en la Web, lo primero que hace intuitivamente es buscar con la dirección [Link].
Existen innumerables ejemplos de esto, las excepciones se dan fundamentalmente cuando el nombre elegido está
siendo utilizado por otra empresa o persona.

Otra de las importantes ventajas de que el dominio tenga el mismo nombre que la empresa, es la presencia y credibilidad
que le da a la misma. No es lo mismo [Link] que [Link]/webmaster.

Recordemos que fundamentalmente los Sitios se publican para vender. No quiere decir esto que se vendan productos
directamente desde el Sitio; acá el término "vender" tiene una acepción más amplia: quiere decir que toda publicidad o
presencia de la empresa tiene como objetivo directo o indirecto la concreción de ventas. Por lo tanto, para ganar el dinero
de nuestros clientes es necesario ganar primero su confianza, y esto no se logra con nombres de dominio que no sean
definitivamente claros y precisos.

Si no fuera posible, porque ese nombre ya existe, es decir, que el dominio está registrado, o porque el nombre de la
empresa es demasiado largo o inconveniente para asignarlo al dominio, es muy importante elegir uno que se identifique y
asocie con lo que se quiere publicar. Estos son algunos de los puntos que se deben tener en cuenta a la hora de elegir el
nombre del dominio:

Debe de ser fácil de asociar e identificar con nuestra empresa, marca o actividad. Ejemplo
[Link] Se identifica fácilmente con la actividad que estamos desarrollando.
Debe ser fácil de recordar, pronunciar y escribir. Ejemplo [Link] Las palabras Web y Tutorial
son de uso frecuente y reconocidas internacionalmente, por lo tanto son fáciles de recordar.

31
Planificación: Dominio: Nivel

ICANN es el organismo internacional que regula los nombres de los dominios. En Argentina, el Ministerio de relaciones
Exteriores, Comercio Internacional y Culto regula los dominios propios de la Argentina.

Los dominios se clasifican en tres niveles:

Primer nivel

Son los que indican la actividad o la zona geográfica a la que pertenecemos o registramos el dominio. Pueden ser
genéricos (com, net, org, gov, edu, mil, int, biz, name, info, pro, coop y aero) o territoriales (ar, es, mk cl, etc).

Segundo nivel

Son las palabras o letras que nosotros registramos, por ejemplo, el nombre de nuestra empresa, producto o actividad.
Ejemplo: [Link]

Tercer nivel

Son los que se crearían cuando el nombre con el que deseamos que se nos identifique estubiera con el de nuestro
proveedor de Internet. Ejemplo: [Link]

Planificación: Dominio: Registro

Los dominios en los Estados unidos son manejados de manera privada por varias empresas y el registro tiene un cargo
de aproximadamente US$ 70 por dos años. En ICANN figuran las empresas autorizadas a registrar dominios en [Link].
En Argentina los dominios son manejados por Cancillería y su registro es gratuito. En el Sitio de Cancillería se puede leer
el tutorial que explica como hacer para registrar un dominio. El proceso de registro de un dominio lleva su tiempo y
generalmente la espera por el registro y la delegación del mismo dura aproximadamente 15 días.

Pasos para registrar un dominio en NIC Argentina

Registrar una entidad

Lo primero que hay que hacer es dirigirnos a [Link]. Cuando se cargue la página principal hacemos click en
formularios web, luego hacemos click en alta de identidad, ingresamos nuestra dirección de email, presionamos el
botón continuar para pasar a la siguiente página, en la cual hay un formulario para llenar con todos los datos que nos
pidan (son todos tus datos personales). Pasamos a una pantalla de confirmación, si los datos son incorrectos
retrocedemos y los corregimos. Luego de esto nos envían un email (en general es casi instantáneo, pero a veces
tarda), el cual tendremos que reenviarlo a la dirección que se nos indica. Cuando [Link] recibe el email que
reenviamos, inicia el trámite, lo cual se nos indicará a través de otro email.

Registrar una persona

Cada persona que registramos tiene que estar asignada a una entidad. Es por eso que el paso previo es crear ésta.
Nos dirigimos nuevamente a [Link], hacemos click en formularios web, luego hacemos click en alta de persona,
ingresamos nuestra dirección de email, presionamos el botón continuar para pasar a la siguiente página, en la cual
hay que llenar un formulario con todos los datos que nos pidan. Ahora debemos asignar nuestra persona a una
entidad. Escribimos en el campo correspondiente el nombre de la entidad. Cuando continuamos va a aparecer entre
las distintas opciones la nuestra. La seleccionamos y presionamos el botón para continuar. Luego confirmamos los
datos, nos preparamos para reenviar el email que nos va a llegar, del mismo modo que el paso anterior. Cuando
[Link] recibe el email que reenviamos, inicia el trámite, lo cual se nos indicará a través de otro email.

Chequear disponibilidad

Antes de registrar nuestro dominio tendremos que ver si nadie lo hizo antes. Para verificar esto vamos a consulta
sobre nombres de dominio registrados en la página principal de [Link]. En la página donde desembocamos
deberemos escribir el nombre de dominio que queramos (ej.: [Link]). Cuando presionemos buscar
aparecerán los resultados.
Una vez que chequeamos la disponibilidad del dominio podremos registrarlo.
32
Registrar y delegar el dominio

Todos los pasos anteriores desembocan en el más importante: registro y delegación del dominio. Nos dirigimos
nuevamente a [Link], hacemos click en formularios web, luego hacemos click en registro de denominación. En la
primera pantalla nos piden el nombre del dominio ([Link]) y nuestra dirección de email, luego
presionamos continuar. El siguiente paso es buscar la entidad a la pertenecerá nuestro sitio. Escribimos en el campo
correspondiente el nombre de la entidad. Cuando continuamos va a aparecer entre las distintas opciones la nuestra.
La seleccionamos y presionamos el botón para continuar. El siguiente paso es elegir la persona, o sea declarar quién
está registrando este dominio. Escribimos en el campo correspondiente el nombre de la persona, buscamos a la
persona que haya aparecido en esta lista, la seleccionamos y presionamos el botón para continuar. En el siguiente
paso necesitamos tener los datos de los servidores de nombre (DNS). Nota: Podemos dejar los demás datos en
blanco. Luego se nos pide la entidad proveedora del servicio de DNS. También nos van a pedir el contacto técnico, lo
más probable es que ya esté ingresado, luego continuamos con el proceso. En el último paso debemos confirmar los
datos que ingresamos. Luego de esto nos envían un email, el cual deberemos reenviar.

Desarrollo: Código HTML: Introducción

El HTML no es un lenguaje de programación como el Basic o el Pascal, sino un lenguaje descriptivo con el cual es
posible codificar un hipertexto de manera tal que los programas navegadores lo entiendan. Esta codificación se lleva a
cabo a través de determinadas etiquetas, más conocidas como tags, que dan forma al documento.

A continuación se explica las funciónes que cumplen los principales tags y las distintas aplicaciones que tienen los
mismos:

El principio esencial del lenguaje HTML es el uso de las etiquetas (tags). Funcionan de la siguiente manera:

<XXX> Este es el inicio de una etiqueta.


</XXX> Este es el cierre de una etiqueta.

Las letras de la etiqueta pueden estar en mayúsculas o minúsculas, indiferentemente. Por claridad, se usarán en los
siguientes ejemplos sólamente las mayúsculas

Lo que haya entre ambas etiquetas estará influenciada por ellas. Por ejemplo, todo el documento HTML debe estar entre
las etiquetas <HTML> y </HTML>

<HTML> [Todo el documento] </HTML>

El documento en sí está dividido en dos zonas principales

El encabezamiento, comprendido entre las etiquetas <HEAD> y </HEAD> El cuerpo, comprendido entre las etiquetas
<BODY> y </BODY>

Dentro del encabezamiento hay información del documento, que no se ve en la pantalla principal, principalmente el título
del documento, comprendido entre las etiquetas <TITLE> y </TITLE>. El título debe ser breve y descriptivo de su
contenido, pues será lo que vean los demás cuando añadan nuestra página a su bookmark (o agenda de direcciones).

Dentro del cuerpo está todo lo que queremos que aparezca en la pantalla principal (texto, imágenes, etc.)

Por tanto, la estructura queda de esta manera:

<HTML>
<HEAD>
<TITLE> Título de la página </TITLE>
</HEAD>
<BODY>
[Aquí van las etiquetas que visualizan la página]
</BODY>
</HTML>

Antes de crear nuestra primera página, unas consideraciones sobre el texto: Cuando escribimos en el documento el texto
que queremos que aparezca en la pantalla, veremos que éste se acomoda a ella, sin que tengamos que pulsar el retorno
del carro. Si queremos separar el texto en distintos párrafos debemos usar la etiqueta <P>, (que no tiene su
correspondiente etiqueta de
cierre </P>)
33
El texto puede tener unas cabeceras, comprendidas entre las etiquetas <H1> y </H1>, <H2> y </H2>, etc. (hasta el
número 6), siendo el número indicativo del tamaño. El tamaño mayor es el correspondiente al número 1. Puedes
experimentar en el ejemplo que sigue, cambiando el número para comprobar el efecto que se logra.

Una etiqueta muy interesante es la de centrado <CENTER> y </CENTER>. Nos centra todo lo que esté dentro de ella, ya
sea texto, imágenes, etc.

También tenemos los separadores (horizontal rules), que se consiguen con la etiqueta <HR> (no existe la
correspondiente de cierre). Con ella se obtiene una raya horizontal tan ancha como la pantalla, y con la apariencia de
estar embutida sobre el fondo, como se puede observar a continuación:

En el procesador de texto copiamos lo siguiente:

<HTML>

<HEAD>
<TITLE> Mi pagina del Web - 1 </TITLE>
</HEAD>

<BODY>
<H1> <CENTER> Primera pagina </CENTER> </H1>
<HR>
Esta es mi primera pagina, aunque todavia es muy sencilla. Como el
lenguaje HTML no es dificil, pronto estare en condiciones de hacer
cosas mas interesantes.
<P> Aqui va un segundo parrafo.
</BODY>

</HTML>

Las líneas en blanco y las indentaciones del texto se han puesto para mayor claridad, pero no son necesarias. De hecho,
podría estar todo en una sola línea. Lo importante es el orden correcto de las etiquetas. Por cierto, una etiqueta puede
estar anidada dentro de otra. Véase en el ejemplo cómo lo está la etiqueta <CENTER> dentro de la etiqueta <H1>. Es
muy importante, en estos casos, que las etiquetas de inicio y de cierre vayan en el orden correcto, pues de lo contrario se
producirían errores.

Desarrollo: Código HTML: Editores HTML

Lo úncio que debemos saber sobre este tema es que las páginas Web están escritas en un lenguaje llamado HTML, que
significa Hyper Text Markup Language. Los HTML son archivos de texto que pueden ser editados libremente con
programas como el Notepad de Windows, aunque para hacerlo de esta manera es necesario conocer la estructura del
lenguaje.

Existen varias empresas como Macromedia y Microsoft que ofrecen programas para editar documentos HTML, que
emplean la filosofía WYSIWYG (What You See Is What You Get, lo que ves es lo que obtienes). De esta manera no es
necesario conocer en profundidad el lenguaje HTML, basta con saber operar estos sencillos programas, cuya función es
traducir a ese formato la página que hacemos en pantalla. El manejo de estos programas no es más complicado que el
de un procesador de textos.

La mayoría de los Webmasters parecen tener claras las herramientas de desarrollo Web: Dreamweaver o FrontPage.

Macromedia Dreamweaver UltraDev


[Link]

Dreamweaver UltraDev es la nueva herramienta de Macromedia con la que se puede desarrollar aplicaciones
fácilmente basadas en los lenguajes Microsoft Active Server Pages (ASP), Sun Microsystems JavaServer Pages
(JSP) y Allaire ColdFusion Markup Language (CFML) de una manera visual. UltraDev se ha convertido en una
herramienta clave para los creadores de aplicaciones de Web debido a su capacidad única para previsualizar
información en vivo dentro de un entorno visual. Esta nueva actualización optimiza la autoría visual y de código, lo
cual da como resultado una mejora revolucionaria en productividad y la posibilidad de desarrollar aplicaciones con
conexión a bases de datos mucho más impactantes. Permite una previsualización de las creaciones y ofrece un
control total sobre el código de las páginas. Su apartado de diseño visual destaca por la posibilidad de poder manejar
capas, insertar imágenes y figuras, manejo de ficheros multimedia (flash, shockwave, etc.) así como de otros
elementos como Active-X. Para los desarrolladores Web sin duda es una herramienta sorprendente. Los creadores
de aplicaciones Web pueden también aprovechar el nuevo Server Behavior Builder integrado para generar código
que igual a sus propios estándares de desarrollo. Además de la capacidad para crear comportamientos de servidor
34
personalizados, UltraDev incluye también una biblioteca de secuencias preestablecidas de comandos (scripts) de
servidor ASP, JSP y CFML comúnmente utilizadas que ofrecen autenticación de usuario y navegación, así como
actualización de bases de datos e inserción de nuevos récords dentro de bases de datos. Manual Dreamweaver

Microsoft FrontPage
[Link]

FrontPage se centra en Sitios poco esquematizados, horizontales, con un buen contenido en formularios o elementos
pre-programados. Una de las características a tener en cuenta de este programa es que nos permite insertar una
gran variedad de componentes externos, como por ejemplo controles Active-X, Webots, marquesinas y videos, los
cuales funcionan únicamente con Microsoft Internet Explorer y por lo tanto no cuadran dentro del estándar HTML.
FrontPage merece todos los honores de un gran producto para los que se inician y para los Webmasters
preocupados por otras tareas que no es el HTML puro. No se enfoca tanto en la programación, no es muy completo,
pero es fácil de manejar. Manual FrontPage

No obstante existen muchas otras alternativas a la hora de elegir un buen editor HTML, entre ellas se encuentra el
reconocido editor HomeSite que distribuye la empresa Allaire:

Allaire HomeSite
[Link]

Una de las principales características de este Editor es que suelen generar código "basura", o código muy complicado
para hacer cosas sencillas. Este programa te ofrece control total sobre el documento HTML, con la posibilidad de
optimizar al máximo el código. HomeSite dispone tanto de las opciones típicas de cualquier buen editor HTML, como
de opciones totalmente originales. Las que son más interesantes son las siguientes: conversión automática de
caracteres especiales, palabras clave que nos permiten introducir código que repitamos mucho, edición de
documentos HTML directamente de servidores FTP, búsqueda y reemplazo en múltiples documentos, editor de hojas
de estilo ("cascade style sheets"), manual completo de HTML integrado, visión jerárquica de las páginas, coloreado
automático de los lenguajes de programación JavaScript, ASP, Perl, PHP, y DHTML (HTML Dinámico), integración de
proyectos con software de gestión de versiones MS SourceSafe y PVCS, interfaz totalmente configurable, integración
con DreamWeaver, y mucho más.

Antes de continuar vamos a introducir un tutorial sobre edición HTML

35
Diseño de Páginas Web - HTML

1. Estructura básica de un documento HTML

2. Dando forma al texto del documento HTML

3. Caracteres especiales

4. Enlaces

5. Imágenes

6. Alineación y dimensionado de imágenes

7. Fondos y colores

8. Tablas

9. Formularios

10. Mapas

11. Frames

12. Sonidos

1. ESTRUCTURA BASICA DE UN DOCUMENTO HTML

El principio esencial del lenguaje HTML es el uso de las etiquetas (tags). Funcionan de la
siguiente manera:

<XXX> Este es el inicio de una etiqueta.


</XXX> Este es el cierre de una etiqueta.

Las letras de la etiqueta pueden estar en mayúsculas o minúsculas, indiferentemente.

Lo que haya entre ambas etiquetas estará influenciada por ellas. Por ejemplo, todo el
documento HTML debe estar entre las etiquetas <HTML> y </HTML>:

<HTML> [Todo el documento] </HTML>

Un documento HTML en sí está dividido en dos zonas principales:

El encabezamiento, comprendido entre las etiquetas <HEAD> y </HEAD>


El cuerpo, comprendido entre las etiquetas <BODY> y </BODY>

36
Dentro del encabezamiento hay información del documento, que no se ve en la pantalla
principal del BROWSER que es utilizado para visualizar el documento HTML, principalmente la
información encontrada en el encabezamiento es el título del documento, comprendido entre las
etiquetas <TITLE> y </TITLE>. El título debe ser breve y descriptivo de su contenido, pues será lo
que vean los demás cuando añadan nuestra página a su bookmark (o agenda de direcciones).

Dentro del cuerpo está todo lo que queremos que aparezca en la pantalla principal (texto,
imágenes, etc.)

Por tanto, la estructura de un documento HTML queda de esta manera:

<HTML>
<HEAD>
<TITLE> Título de la página </TITLE>
</HEAD>
<BODY>
[Aquí van las etiquetas que visualizan la página]
</BODY>
</HTML>

2. DANDO FORMA AL TEXTO DEL DOCUMENTO HTML

Cuando escribimos en el documento el texto que queremos que aparezca en la pantalla,


veremos que éste se acomoda a ella, sin que tengamos que pulsar el retorno del carro. Si
queremos separar el texto en distintos párrafos debemos usar la etiqueta <P>, (que no tiene su
correspondiente etiqueta de cierre </P>)

El texto puede tener unas cabeceras, comprendidas entre las etiquetas <H1> y </H1>,
<H2> y </H2>, etc. (hasta el número 6), siendo el número indicativo del tamaño. El tamaño mayor
es el correspondiente al número 1.

Una etiqueta muy interesante es la de centrado <CENTER> y </CENTER> (no la soportan


todos los navegadores, aunque sí la mayoría de ellos). Nos centra todo lo que esté dentro de ella,
ya sea texto, imágenes, etc.

También tenemos los separadores (horizontal rules), que se consiguen con la etiqueta
<HR> (no existe la correspondiente de cierre). Con ella se obtiene una raya horizontal tan ancha
como la pantalla, y con la apariencia de estar embutida sobre el fondo, como se puede observar a
continuación:

EJEMPLO

<HTML>

<HEAD>
<TITLE> Mi pagina en el Web - 1 </TITLE>
</HEAD>

<BODY>

37
<H1> <CENTER> Primera Pagina </CENTER> </H1>

<HR>
Esta es mi primera pagina, aunque todavía es muy sencilla. Como él
lenguaje HTML no es difícil, pronto estaré en condiciones de hacer
cosas más interesantes.
<P> Aquí va un segundo párrafo, que les parece.

</BODY>

</HTML>

Una etiqueta puede estar anidada dentro de otra. En el ejemplo anterior cómo lo está la
etiqueta <CENTER> dentro de la etiqueta <H1>.

Cuando queremos poner un texto sin ninguna característica especial, lo ponemos


directamente. Unicamente, la separación entre párrafos (dejando una línea en blanco) la
conseguimos con la etiqueta <P>.

Si queremos separar los párrafos, o cualquier otra cosa, pero sin dejar una línea en blanco,
usamos una etiqueta parecida <BR> (break, o romper). Tampoco tiene etiqueta de cierre.

Al escribir el texto, si ponemos más de un espacio en blanco entre dos palabras


observamos que el navegador sólo reconoce uno de ellos. Si queremos forzarle a que lo haga,
debemos poner el código "&nbsp;" (non-breaking space).

Para destacar alguna parte del texto se pueden usar:

<B> y </B> para poner algo en negrita (bold).


<I> y </I> para poner algo en cursiva (italic).

Otra etiqueta interesante es <PRE> y </PRE>. El texto que se encuentre entre ella estará
preformateado, es decir que aparecerá como si hubiera sido escrito con una máquina de escribir,
con una fuente de espaciado fijo (tipo Courier). Además se respetarán los espacios en blanco y
retornos del carro, tal como estaban en nuestro documento HTML. Es muy apropiada para
confeccionar tablas y otros documentos similares.

Con la etiqueta <TT> y </TT> conseguimos también que el texto tenga un tamaño menor y
la apariencia de los caracteres de una máquina de escribir (typewriter). La diferencia con la anterior
es que no preformatea el texto, sino que únicamente cambia su apariencia.

La etiqueta <BLOCKQUOTE> y </BLOCKQUOTE> se utiliza para destacar una cita textual dentro del
texto general. Este párrafo está escrito entre ambas etiquetas. Obsérvese los márgenes a ambos
lados.

En las fórmulas matemáticas puede interesar poder escribir índices y subíndices, que se
consiguen con las etiquetas <SUP> </SUP> y <SUB> </SUB> respectivamente.

A menudo nos interesará presentar las cosas en forma de listas. Podemos escoger entre tres
tipos distintos:

Listas desordenadas (no numeradas)


Listas ordenadas (numeradas)
Listas de definición.

38
Las listas desordenadas (Unordered Lists) sirven para presentar cosas que, por no tener
un orden determinado, no necesitan ir precedidas por un número. Su estructura es la siguiente:

<UL>
<LI> Un elemento
<LI> Otro elemento
<LI> Otro más
<LI> etc.
</UL>

Es decir, toda la lista está dentro de la etiqueta <UL> y </UL>, y luego cada elemento va
precedida de la etiqueta <LI> (list ítem). El resultado de lo anterior es el siguiente:

Se puede anidar una lista dentro de otra. Por ejemplo:

<UL>
<LI> Mamíferos
<LI> Peces
<UL>
<LI> Sardina
<LI> Bacalao
</UL>
<LI> Aves
</UL>

Las listas ordenadas (Ordered Lists) sirven para presentar elementos en un orden
determinado. Su estructura es muy similar a la anterior. La diferencia estriba en que en el resultado
aparecerá automáticamente un número correlativo para cada elemento.

<OL>
<LI> Primer Elemento
<LI> Segundo Elemento
<LI> Tercer Elemento
<LI> etc.
</OL>

Al igual que las listas desordenadas, también se pueden anidar las listas ordenadas.

El tercer tipo lo forman las listas de definición. Como su nombre indica, son apropiadas
para glosarios (o definiciones de términos). Toda la lista debe ir englobada entre las etiquetas
<DL> y </DL>. Y a diferencia de las dos que hemos visto, cada renglón de la lista tiene dos partes:

El nombre de la cosa a definir , que se consigue con la etiqueta <DT> (definition


term).
La definición de dicha cosa, que se consigue con la etiqueta <DD> (definition
definition).

<DL>
<DT> Una cosa a definir
<DD> La definición de esta cosa
<DT> Otra cosa a definir
<DD> La definición de esta otra cosa
</DL>

39
Comentarios no visibles en la pantalla

A veces es muy útil escribir comentarios en el documento HTML sobre el código que
escribimos, que nos pueden servir para recordar posteriormente sobre lo que hicimos, y que no
queremos que se vean en pantalla.

Esto se consigue encerrando dichos comentarios entre estos dos símbolos: <!-- y -->

EJEMPLO

<HTML>
<HEAD>
<TITLE> Mi pagina del Web - 2 </TITLE>
</HEAD>
<BODY>
<CENTER>
<H1> Mis aficiones </H1>
</CENTER>
<HR>
Sin un orden particular, mis <B> aficiones </B> son las siguientes:
<!-- Una lista sin orden alguno -->
<UL>
<LI> El cine
<LI> El deporte
<UL>
<LI> Natacion
<LI> Baloncesto
</UL>
<LI> La musica
</UL>
La musica que más me gusta es <I> (en orden de preferencia): </I>
<!-- Una lista con un orden -->
<OL>
<LI> El rock
<LI> El jazz
<LI> La musica clasica
</OL>
</BODY>
</HTML>

40
3. CARACTERES ESPECIALES

Existen algunas limitaciones para escribir el texto. Una de ellas es debido a que las
etiquetas se forman como un comando escrito entre los símbolos "<" y ">". Por tanto, si se
quisieran escribir estos caracteres como parte normal del texto, daría esto lugar a una
ambigüedad, ya que el programa navegador podría interpretarlos como el comienzo o final de una
etiqueta, en vez de un carácter más del texto.

Para resolver este problema, existen unos códigos para poder escribir estos caracteres y
otros relacionados con las etiquetas.

&lt; para < (less than, menor que)


&gt; para > (greater than, mayor que)
&amp; para & (ampersand)
&quot; para " (double quotation)

Como se ve, estos códigos empiezan siempre con el signo “&” y acaban siempre con “;”

De una manera similar, existen códigos para escribir letras específicas de distintos idiomas.
Hay muchos de ellos, pero, lógicamente, los que más nos interesan son los propios del castellano
(las vocales acentuadas, la “ ñ ” y los signos “ ¿ ” y “ ¡ ” )

Los códigos de las vocales acentuadas se forman comenzando con “ & ”, seguido de la
vocal en cuestión, seguido de la palabra acute (aguda) y terminando con el signo “ ; ”

&aacute; Para la á
&eacute; Para la é
&iacute; Para la í
&oacute; Para la ó
&uacute; Para la ú
&Aacute; Para la Á
&Eacute; Para la É
&Iacute; Para la Í
&Oacute; Para la Ó
&Uacute; Para la Ú
El resto de los códigos son:

&ntilde; Para la ñ
&Ntilde; Para la Ñ
&uuml; Para la ü
&Uuml; Para la Ü
&#191; Para ¿
&#161; Para ¡

Todo esto, que como se ve es muy laborioso, puede parecer inútil ya que si escribimos
nuestro texto sin hacer ningún caso de estas convenciones, escribiendo las letras acentuadas y
demás signos directamente, es muy posible que el resultado lo veamos correctamente en nuestro
navegador, pero nunca podremos, estar seguros que les ocurra lo mismo a todos los que accedan
a nuestras páginas con otros navegadores distintos.

41
4. ENLACES

La característica que más ha influido en el espectacular éxito del WEB ha sido, aparte la de
su carácter multimedia, la posibilidad de unir los distintos documentos repartidos por todo el mundo
por medio de enlaces hipertexto.

En general, los enlaces tienen la siguiente estructura:

<A HREF="XXX"> YYY </A>

Donde XXX es el destino del enlace (Obsérvese las comillas). YYY es el texto indicativo
en la pantalla del enlace (con un color especial y generalmente subrayado)

Tipos de enlaces

1. Enlaces dentro de la misma página


2. Enlaces con otra página nuestra
3. Enlaces con una página fuera de nuestro sistema
4. Enlaces con una dirección de e-mail

1. Enlaces dentro de la misma página

A veces, en el caso de documentos (o páginas) muy extensos, nos puede interesar dar un
salto desde una posición a otra determinada. En este caso, lo que antes hemos llamado XXX, es
decir, el destino del enlace, en este caso el sitio dentro de la página a donde queremos saltar, se
sustituye por #MARCA (la palabra MARCA puede ser cualquier palabra que queramos). Lo que
hemos llamado antes YYY es la palabra (o palabras) que aparecerán en la pantalla en color (en
forma de hipertexto). Su estructura es, entonces:

<A HREF="#MARCA"> YYY </A>

Y en el sitio exacto a donde queremos saltar, debemos poner la siguiente etiqueta:

<A NAME="MARCA"> </A>

2. Enlaces con otra página nuestra

Puede ser que tengamos una sola página. Pero lo más frecuente es que tengamos varias
páginas, una inicial (o principal) y otras conectadas a ella, e incluso entre ellas mismas.

Supongamos que queremos enlazar con la página creada en el ejemplo 2, que la hemos
llamado [Link]. En este caso, simplemente sustituimos lo que hemos llamado XXX (el
destino del enlace) por el nombre del archivo:

<A HREF="[Link]"> Ejemplo de mi segunda pagina </A>

Si queremos que vaya a un sitio concreto de otra página nuestra en vez de ir al principio de
la página, adonde va por defecto, en ese sitio tenemos que colocar una marca (ver la Enlaces
dentro de la misma página), y completar el enlace con la referencia a esa marca.

42
Lo veremos con el siguiente ejemplo: <A NAME="MIMARCA"></A> es la marca que
colocaremos en nuestra pagina, que deseamos accesar desde otra nuestra. Entonces la etiqueta
tiene que ser: <A HREF="[Link]#MIMARCA"> En mi otra pagina </A>.

Una observación importante: Pudiera ocurrir que nuestro sitio del WEB estuviera
organizado con un directorio principal, y otros subdirectorios auxiliares. Si la página a la que
deseamos accesar está, por ejemplo en el subdirectorio misubdir, entonces en la etiqueta tendría
que colocarse "misubdir/[Link]".

Y a la inversa, si quiero saltar desde una página a otra que está en un directorio anterior,
en la etiqueta tendría que haber puesto "../[Link]". Esos dos puntos hace que se dirija al
directorio anterior. Obsérvese que se debe utilizar el símbolo / para indicar los subdirectorios, y no
este otro \, que es propio únicamente de Windows.

Si nos queremos evitar todas estas complicaciones, podemos tener todo junto en un único
directorio, pero esto tiene el inconveniente de que esté todo más desordenado, y sean más difíciles
de hacer las futuras modificaciones.

3. Enlaces con una página fuera de nuestro sistema

Si queremos enlazar con una página que esté fuera de nuestro sistema (es decir, que esté
en un servidor distinto al que soporta nuestra página), es necesario conocer su dirección completa,
o URL (Uniform Resource Locator). El URL podría ser, además de la dirección de una página del
WEB, una dirección de FTP, GOPHER, etc.

Una vez conocida la dirección (o URL), lo colocamos en vez de lo que hemos llamado
anteriormente XXX (el destino del enlace). Si queremos enlazar por ejemplo con la página de
Netscape (cuyo URL es: [Link] la etiqueta sería:

<A HREF="[Link] Página inicial de Netscape </A>

Es muy importante copiar estas direcciones correctamente (respetando las mayúsculas y


minúsculas, pues los servidores UNIX sí las distinguen)

4. Enlaces con una dirección de e-mail

En este caso, sustituimos lo que se ha llamado antes XXX (el destino del enlace) por
mailto: seguido de la dirección de e-mail. La estructura de la etiqueta es:

<A HREF= “mailto: dirección de e-mail”> Texto del enlace </A>

Un ejemplo podría ser:

<A HREF= “mailto: tzambran@[Link]”> Tom Zambrano</A>

Hay algunos navegadores que no subrayan el comentario de este tipo de enlace.

Una manera recomendable y más segura para conocer la dirección e-mail seria poner algo
así como:

Comentarios a Tom Zambrano en <A HREF="mailto: tzambran@[Link]">


tzambran@[Link] </A>

43
Es decir, es conveniente, por la razón dicha anteriormente, poner también en el texto del
enlace la dirección de e-mail.

EJEMPLO

<HTML>
<HEAD>
<TITLE> Mi pagina del Web - 3 </TITLE>
</HEAD>
<BODY>
<CENTER>
<H1> Mis paginas favoritas </H1>
</CENTER>
<HR>
Estas son mis paginas favoritas:

<P><A HREF="[Link] Netscape </A>


<BR> <A HREF="[Link] Microsoft </A>
<BR> <A HREF="[Link] Yahoo! </A>
</BODY>
</HTML>

5. IMÁGENES

La etiqueta que nos sirve para incluir imágenes en nuestras páginas del WEB es muy
similar a la de enlaces a otras páginas, que hemos visto en el capítulo anterior. La única diferencia
es que, en lugar de indicar al programa navegador el nombre y la localización de un documento de
texto HTML para que lo cargue, se le indica el nombre y la localización de un archivo que contiene
una imagen.

La estructura de la etiqueta es:

<IMG SRC="[Link]">

Con el comando IMG SRC (image source, fuente de la imagen) se indica que se quiere
cargar una imagen llamada [Link] (o el nombre que tenga).

Dentro de la etiqueta se pueden añadir otros comandos, tal como ALT

<IMG SRC="[Link]" ALT="descripción">

Con el comando ALT se introduce una descripción (una palabra o una frase breve)
indicativa de la imagen. Este comando, que en principio se puede omitir, es en beneficio de los que
accedan a nuestra página con un programa navegador en forma de texto como el lynx. Ya que no
son capaces de ver la imagen, por lo menos pueden hacerse una idea sobre ella. Pero no es sólo
por esto. Hay casos, como veremos más adelante, en los que se utiliza una imagen como enlace a
otra página. Si se omitiera este comando, los que utilizan dichos navegadores no podrían de
ninguna manera acceder a esas páginas.

Con respecto a la localización del archivo de esa imagen, se puede decir aquí lo mismo
que en el capítulo anterior referente a los enlaces. Si no se indica nada especial, como en el caso
que se ha expuesto, quiere decir que el archivo [Link] está en el mismo directorio que el

44
documento HTML que estamos escribiendo. Si no es así, se siguen los mismos criterios que los
indicados para los enlaces.

Las imágenes deben estar guardadas en un formato de archivo especial llamado GIF. (Hay
también otro formato más avanzado JPG). Este formato GIF almacena las imágenes con un
máximo de 256 colores, en forma comprimida.

Un aspecto muy importante a tener en cuenta es el tamaño de las imágenes, pues una
imagen grande supone un archivo grande, y esto puede resultar en un tiempo excesivo de carga,
con el consiguiente riesgo de que quien esté intentando cargar nuestra página se canse de
esperar, y desista de ello.

Para elegir la posición de la imagen con respecto al texto hay distintas posibilidades. La
más sencilla es colocarla entre dos párrafos, con un titular a un lado. Los navegadores más
actuales (como el Netscape Navigator y el Microsoft Internet Explorer) permiten que el texto pueda
rodear a la imagen.

De momento nos vamos a limitar a escoger la posición del titular con respecto a la imagen.
Se puede poner arriba, en medio o abajo del lado de la imagen. Para ello se añade el comando
ALIGN a la etiqueta, de la siguiente manera:

<IMG SRC="[Link]" ALIGN=TOP> Titular alineado arriba


<IMG SRC="[Link]" ALIGN=MIDDLE> Titular alineado en medio
<IMG SRC="[Link]" ALIGN=BOTTOM> Titular alineado abajo

Otra posibilidad muy interesante es la de utilizar una imagen como enlace a otra página.
Para estos casos se utilizan generalmente imágenes pequeñas (iconos), aunque se puede usar
cualquier tipo de imagen.

Según vimos en el capítulo anterior, la estructura general de un enlace es:

<A HREF="XXX"> YYY </A>

En este caso sustituimos XXX por el nombre del archivo de la página a la que queremos
acceder. Y en lugar de YYY ponemos la etiqueta completa de la imagen (que queda así englobada
dentro de la etiqueta del enlace).

Como por ejemplo ([Link]) para acceder al ejemplo práctico del capítulo 2
([Link]):

<A HREF="[Link]"><IMG SRC="[Link]"></A>

Pulsando la imagen comprobamos cómo efectivamente enlaza con la página deseada.


Obsérvese además que la imagen está rodeada de un rectágulo del color normal en los enlaces. Si
no se desea que aparezca ese rectángulo, hay que incluir dentro de la etiqueta de la imagen el
atributo BORDER=0, es decir:

<A HREF="[Link]"><IMG SRC="[Link]" BORDER=0></A>

Posicionando el cursor sobre esta última imagen, comprobamos que actúa también como
enlace aunque carezca del rectángulo de color. Esto puede resultar más estético, pero se corre el
riesgo de que el usuario no se dé cuenta de que la imagen sirve de enlace.

También podemos utilizar una imagen para enlazar con otra imagen. Supongamos que
queremos enlazar con la imagen [Link] por medio de esta otra imagen [Link]:

45
<A HREF="[Link]"><IMG SRC="[Link]"></A>

Por ultimo, otra posibilidad es la de utilizar un texto para enlazar con una imagen. En este
caso sustituimos XXX (el destino del enlace) con el nombre del archivo de la imagen a la que
queremos acceder e YYY (lo que aparece en pantalla como el enlace) por el texto.

Por ejemplo:

<A HREF="[Link]"> un paraíso tropical </A>

Un tipo de imágenes del que se hace abundante uso y que sirven para mejorar la
presentación de la página son los iconos, botones, barras separadoras, etc. A pesar de su tamaño
o forma, son imágenes como cualquier otra.

6. ALINEACIÓN Y DIMENSIONADO DE IMÁGENES

Alineación de las imágenes

Si se quieren lograr diseños fantasticos y rodear con textos los gráficos exactamente igual
que en las revistas se pueden usar los comando o atributos conjuntamente con la etiqueta <IMG
SRC= “[Link]”>, ALIGN=. Donde quiera que se desee que aparezca una imagen basta con
insertar:

<IMG SRC="/camino/[Link]" ALIGN=LEFT> Alinea la pagina a la izquierda


<IMG SRC="/camino/[Link]" ALIGN=CENTER> Alinea la pagina al centro
<IMG SRC="/camino/[Link]" ALIGN=RIGHT> Alinea la pagina a la derecha

Si se quiere interrumpir el proceso de rellenado del texto a los lados de la imagen, para que
salte hasta debajo de ella, es decir, dejar un espacio en blanco parcialmente, se pueden emplear
las siguientes extensiones de la etiqueta <BR>:

<BR CLEAR=LEFT> Busca el primer margen libre (clear) a la izquierda.


<BR CLEAR=RIGHT> Busca el primer margen libre a la derecha.
<BR CLEAR=ALL> Busca el primer margen libre a ambos lados.

Un ejemplo para aclarar esto:

<IMG SRC="[Link]" ALIGN=LEFT> Este texto esta a un lado de la imagen.


<BR> Este tambien esta a un lado de la imagen, en la linea siguiente.
<BR CLEAR=LEFT> Este otro texto, en cambio, ha buscado el primer margen libre a la izquierda.

Dimensionando la imagen

Los programas navegadores cuando cargan un documento HTML y encuentran una


etiqueta de una imagen, interrumpen el proceso de carga y solicitan al servidor que le envíe dicha
imagen, quedando a la espera hasta que se complete el envío, repitiéndose este proceso con cada
una de las imágenes.

Esto es especialmente molesto cuando, como ocurre frecuentemente, en la cabecera de la


página se encuentra una imagen grande, ya que durante un tiempo relativamente largo no se verá
nada en la pantalla.

46
Para evitar este inconveniente existen unas extensiones de la etiqueta de la imagen <IMG
SRC="[Link]"> que sirven para indicar al navegador cuáles son sus dimensiones en pixels.
(Este dato lo habremos obtenido previamente de algún programa gráfico).

En este caso, el navegador actúa de una forma más favorable, ya que entonces, como
conoce las dimensiones de las imágenes les reserva un espacio en la pantalla y va colocando el
texto de forma apropiada, sin ninguna interrupción, a la vez que va rellenando esos espacios
reservados a las imágenes.

Estos comandos o atributos son WIDTH (ancho) y HEIGHT (alto).

Por ejemplo, para la imagen [Link] situada más arriba:

<IMG SRC="[Link]" WIDTH=120 HEIGHT=94>

Es conveniente hacer esto con todas las imágenes, incluso con las más pequeñas (iconos,
botones, etc), para que no haya ninguna interrupción en el proceso de carga del documento.

Se puede también, si se quiere, dimensionar las imágenes con unos valores distintos a los
que realmente tienen, variando el tamaño, la anchura o la altura. Esto es muy conveniente, por
ejemplo para poner en la página un thumbnail (reproducción en pequeño de una imagen), que
hace de enlace a la imagen en su verdadero tamaño. De esta manera no recargamos demasiado
una página, y el usuario será quien decida qué imágenes desea cargar.

Para hacer que una imagen reducida sea el enlace con la imagen en su tamaño original, lo
conseguimos con:

<A HREF="[Link]"> <IMG SRC="[Link]" WIDTH=150 HEIGHT=75> </A>

También se puede conseguir esto de otra manera, más correcta aunque más laboriosa. Es
la de reducir en un programa gráfico esta imagen a 150x75, guardarla con otro nombre, y luego
hacer que la pequeña sea el enlace de la grande. Es más correcta esta otra solución porque no
todos los navegadores reconocen los comandos WIDTH y HEIGHT, incluso tampoco algunas de
las versiones más antiguas de Netscape.

7. FONDOS Y COLORES

Se puede cambiar el fondo de dos maneras distintas:

[Link] un color uniforme


[Link] una imagen

1. Fondos con un color uniforme

Se consigue añadiendo el comando BGCOLOR a la etiqueta <BODY> (situada al principio


del documento), de la siguiente manera:

<BODY BGCOLOR="#XXYYZZ">

XX Es un número indicativo de la cantidad de color rojo


YY Es un número indicativo de la cantidad de color verde
ZZ Es un número indicativo de la cantidad de color azul

47
Estos números están en numeración hexadecimal. Esta numeración se caracteriza por
tener 16 dígitos (en lugar de los diez de la numeración decimal habitual). Estos dígito son:

0123456789ABCDEF

Es decir, que en nuestro caso, el número menor es el 00 y el mayor el FF. Así, por ejemplo,
el color rojo es el #FF0000, porque tiene el máximo de rojo y cero de los otro dos colores. Los
colores primarios son:

#FF0000 Rojo
#00FF00 Verde
#0000FF Azul

Otros colores son:

#FFFFFF Blanco
#000000 Negro
#FFFF00 Amarillo

Para hacer un color más oscuro, hay que reducir el número de su componente, dejando los
otros dos invariables. Así, el rojo #FF0000 se puede hacer más oscuro con #AA0000, o aún más
oscuro con #550000.

Para hacer que un color tenga un tono más suave (más pastel), se deben variar los otros
dos colores haciéndolos más claros (número más alto), en una cantidad igual. Así, podemos
convertir el rojo en rosa con #FF7070.

Colores del texto y de los enlaces

Si no se variasen los colores habituales del texto y de los enlaces (negro y azul,
respectivamente), podría ocurrir que su lectura contra un fondo oscuro fuese muy dificultosa, o
incluso imposible, si el fondo fuese precisamente negro o azul.

Para evitar esto, se pueden escoger los colores del texto y de los enlaces, añadiendo a la
etiqueta (si se desea) los siguientes comandos:

TEXT color del texto


LINK color de los enlaces
VLINK color de los enlaces visitados
ALINK color de los enlaces activos (el que adquieren en el momento de ser pulsados)

Los códigos de los colores son los mismos que los que se han visto anteriormente.

La etiqueta, con todas sus posibilidades, sería:

<BODY BGCOLOR="#XXYYZZ" TEXT="#XXYYZZ" LINK="#XXYYZZ" VLINK="#XXYYZZ"


ALINK="#XXYYZZ">

El comando TEXT explicado anteriormente (que va englobado dentro de la etiqueta


<BODY>) cambia el color de la totalidad del texto de la página.

Tanto el Netscape Navigator 2, como el Microsoft Explorer soportan una etiqueta de color
de la fuente con la que se puede cambiar sólo una parte del texto:

<FONT COLOR="#XXYYZZ"> Este texto es de color XXYYZZ </FONT>

48
2. Fondos con una imagen

El fondo de una página puede ser también una imagen, ya sea en formato GIF o JPEG.
Esta imagen se repite por toda la página, de una manera análoga al tapiz de Windows. La
estructura de la etiqueta puede ser:

<BODY BACKGROUND="[Link]">
<BODY BACKGROUND="[Link]">

No todos los navegadores soportan este formato.

Se pueden añadir también a esta etiqueta todos los comandos para cambiar los colores del
texto y de los enlaces, vistos anteriormente. Esto es imprescindible a veces para conseguir que el
texto sea legible, en contraste con el fondo.

Hay que prever la posibilidad de que quien acceda a nuestra página haya deshabilitado la
carga automática de imágenes, en cuyo caso tampoco cargaría la imagen que sirve como fondo y
sólo vería el fondo estándar de color gris. Esto podría ser muy perjudicial si hemos escogido unos
colores para el texto y los enlaces que no contrastan bien con ese fondo gris. La solución a este
problema es poner dentro de la etiqueta <BODY> los dos comandos BACKGROUND y BGCOLOR
(en este orden), teniendo cuidado en escoger un color uniforme de fondo parecido al de la imagen.

Por ejemplo, supongamos que queremos poner como fondo la imagen [Link].
Escogemos entonces un color de fondo azul claro, #CCFFFF. La etiqueta quedaría así:

<BODY BACKGROUND="[Link]" BGCOLOR="#CCFFFF">

Esto tiene la ventaja adicional de que, incluso aunque no se deshabilite la carga automática
de imágenes, al cargar la página, lo primero que se ve es ese fondo de color uniforme, que luego
es reemplazado por el de la imagen.

49
8. TABLAS

Las tablas pueden parecer un modo sencillo de disponer el texto en columnas o quizás de
añadir un titular a una ilustración, pero hay modos de sacar un gran partido de una característica
aparentemente sencilla. La etiqueta <TABLE> puede ser una poderosa herramienta de formato. Se
puede hacer por ejemplo, no mostrar el borde de una tabla en absoluto. Tambien se puede hacer
uso de la etiqueta <TABLE> para ubicar texto e imágenes con precisión, en prácticamente casi
cualquier lugar de una página.

Estructura de una tabla

Vamos a ver ordenadamente (de fuera hacia dentro) las etiquetas necesarias para
confeccionar las tablas.

<TABLE> Es la etiqueta general, que engloba a todas


[resto de las etiquetas] las demás.
</TABLE>
<TABLE BORDER=n> Presenta los datos tabulados con un borde,
[resto de las etiquetas] haciendo las tablas más atractivas, y el
</TABLE> grosor es de n pixeles.

<TR> Permite formar cada fila de la tabla. Hay que


[etiquetas de las distintas celdas de la primera repetirla tantas veces como filas queremos
fila] que tenga la tabla.
</TR>
<TD> Permite formar las distintas celdas que
[contenido de cada celda (imágenes, texto, etc.)] contendrá cada fila de la tabla. Hay que
</TD> repetirlas tantas veces como celdas
queramos que tenga la fila.
<TH> Es utilizada para colocar encabezamientos
[encabezamiento de tabla] en negrita sobre las columnas
</TH>

EJEMPLO

<HTML>
<HEAD>
<TITLE> Página de prueba para tablas</TITLE>
</HEAD>
<BODY>
<TABLE BORDER>
<TR>
<TH>Columna 1</TH> <TH> Columna 2</TH> <TH> Columna 3</TH>
<TD>fila1 - c elda1</TD> <TD>fila1 - celda2</TD> <TD>fila1 - celda3</TD>
</TR>
<TR>
<TD>fila2 - celda1</TD> <TD>fila2 - celda2</TD> <TD>fila2 - celda3</TD>
</TR>
</TABLE>
<BR>[Aquí van las etiquetas que visualizan la página]
</BODY>
</HTML>

50
¿Qué pasa si el numero de celdas de una fila es distinto al de otra?

Pues el navegador forma el número de filas y columnas que haga falta, dejando espacios
en blanco en las filas que tengan menos celdas.

Titular de tabla

Se puede añadir un titulo a la tabla, es decir un texto situado encima de la tabla que indica
cuál es su contenido. Se consigue con la etiqueta <CAPTION> y </CAPTION>. Por ejemplo:

<CAPTION> Esta es mi primera tabla </CAPTION>

<CAPTION ALIGN=TOP>TITULO</CAPTION> Coloca él titulo sobre la tabla.


<CAPTION ALIGN=BOTTOM>TITULO</CAPTION> Coloca él titulo bajo la tabla.

Contenido de las celdas

Solo se ha puesto hasta ahora en el ejemplo, texto normal dentro de las distintas celdas.
Pero se puede poner en ellas cualquier otro elemento de los que van en un documento HTML,
como imágenes, enlaces, etc. No hay más que poner dentro de la etiqueta de la celda la etiqueta
correspondiente a una imagen, un enlace, etc.

EJEMPLOS

Con una imagen


<TABLE BORDER>
<TR><
TD> <IMG SRC="[Link]"> </TD>
</TR>
</TABLE>

Con un enlace
<TABLE BORDER>
<TR>
<TD><A HREF="[Link]"> Mi página principal </A></TD>
</TR>
</TABLE>

Posicionamiento del contenido dentro de la celda

Normalmente, el contenido de una celda está alineado a la izquierda. Pero se puede


cambiar esto añadiendo dentro de la etiqueta de la celda los siguientes atributos:

<TD ALIGN=CENTER> Al centro </TD>


<TD ALIGN=RIGHT> A la derecha </TD>
<TH ALIGN=LEFT> Cabecera a la izquierda </TH>

El alineamiento por defecto en el sentido vertical es en el medio. También se puede


cambiar, añadiendo dentro de la etiqueta de la celda los siguientes atributos:

51
<TD VALIGN=TOP> Arriba </TD>
<TD VALIGN=BOTTOM> Abajo </TD>

Variando las dimensiones de la tabla

El navegador se encarga normalmente de dimensionar el tamaño total de la tabla de


acuerdo con el número de filas, de columnas, por el contenido de las celdas, espesor de los
bordes, etc.

A veces nos puede convenir forzarle para que la tabla tenga unas dimensiones totales
mayores que las que le corresponden, tanto en anchura como en longitud. Esto se consigue
añadiendo dentro de la etiqueta de la tabla los atributos WIDTH y HEIGHT igual a un porcentaje de
la dimensión de la pantalla, o a una cifra que equivale al número de pixels.

Por ejemplo, si colocamos:

<TABLE WIDTH=60%>

O, por ejemplo ponemos:

<TABLE HEIGHT=200>

Celdas que abarcan a otras varias

A veces puede interesarnos que una celda se extienda sobre otras varias. Esto se
consigue añadiendo dentro de la etiqueta de la celda los atributos COLSPAN=número para
extenderse sobre un número determinado de columnas, o ROWSPAN=número para extenderse
verticalmente sobre un número determinado de filas.

Por ejemplo, en la primera tabla del ejemplo anterior vamos a añadir una fila con una sola
celda, que abarca a dos columnas:

<TR> <TD COLSPAN=2> Celda sobre 2 columnas </TD> <TR>

O, en la misma tabla, vamos a añadir una celda en la primera fila, pero que abarque
también a la siguiente:

<TD ROWSPAN=2> Celda junto a 2 filas </TD>

Color de fondo en las tablas

Podemos conseguir que las tablas tengan un color de fondo, siguiendo un procedimiento
totalmente análogo al empleado para que una página tenga un color de fondo uniforme (según
vimos en el capítulo 7). Para ello debemos utilizar el atributo BGCOLOR="#XXYYZZ", visto en
dicho capítulo.

Se puede conseguir:

<TABLE BORDER BGCOLOR=”#XXYYZZ”> La totalidad de la tabla tendrá un color


[resto de las etiquetas] de fondo.
</TABLE>

52
<TD BGCOLOR=”#XXYYZZ”> Solamente una celda determinada
[contenido de la celda] tendrá un color de fondo, distinto al del
</TD> resto de la tabla.

Imágenes de fondo en las tablas

El Explorer de Microsoft soporta la colocación de imágenes de fondo en el interior de las


tablas, de una manera análoga a como se hace en una página (según vimos en el capítulo 7). Para
ello debemos, utilizar el atributo BACKGROUND="[Link]" o BACKGROUND="[Link]",
visto en dicho capítulo.

Si se utiliza dentro de la etiqueta <TABLE> la imagen en cuestión se multiplicará detrás de


todas las celdas.

(Con el Netscape no se verá ninguna imagen de fondo, sólo con el Explorer)

Si, por el contrario, sólo se pone este atributo dentro de la etiqueta de una celda concreta (<TD> o
<TH>), entonces la imagen de fondo se verá sólo en esa celda.

Separación entre las celdas de una tabla

Por defecto, la separación entre las distintas celdas de una tabla es de dos pixels. Pero se
puede variar esto con el atributo CELLSPACING, que se pone dentro de la etiqueta TABLE.

Por ejemplo, para obtener una separación de 20 pixels entre celdas ponemos:

<TABLE BORDER CELLSPACING=20>

A primera vista parece como si esto fuera lo mismo que si hubiéramos aumentado el
espesor de los bordes. Pero para comprobar que no es así, hagamos que en el caso anterior,
tenga además unos bordes de 5 de espesor:

<TABLE BORDER=5 CELLSPACING=20>

Separación entre el borde y el contenido dentro de las celdas

Por defecto, la separación entre el borde y el contenido dentro de las celdas es de un pixel.
Se puede cambiar esto con el atributo CELLPADDING, que se pone dentro de la etiqueta TABLE.
Por ejemplo, para obtener una separación de 20 pixels entre el contenido y los bordes,
dentro de cada celda:

<TABLE BORDER CELLPADDING=20>

Se puede combinar este atributo con CELLSPACING (visto en el apartado anterior).

Por ejemplo, una tabla con bordes de 5 de espesor, separación entre celdas de 15 y separación
del contenido con respecto a los bordes de las celdas de 20, lo obtendríamos con:

<TABLE BORDER=5 CELLSPACING=15 CELLPADDING=20>

53
9. FORMULARIOS

La manera general para que los lectores de nuestra página se puedan comunicar con
nosotros es por medio de un enlace a nuestra dirección de e-mail, con lo que recibiríamos un e-
mail convencional.

Pero puede ser que lo que necesitemos sea solamente una respuesta concreta a unas
opciones que presentaremos nosotros mismos, o un comentario del usuario, para lo que le
suministraremos un espacio en donde introducirlo.

Se puede, hacer todo esto, además de otras cosas, utilizando los formularios, con los que
se pueden confeccionar páginas que contengan los elementos necesarios para ello, tal como
botones de radio, listas de selección, cajetines de introducción de texto y de control, etc., como
vamos a ver.

Los formularios permiten que los demás nos envíen la información directamente a nosotros
o bien a nuestro servidor, en donde hemos instalado un programa que procese esta información.
Por ejemplo, vamos a suponer que queremos crear una lista de correo. Los usuarios pueden
introducir sus nombres y direcciones de e-mail y pulsar un botón de envío.

Esos datos los podemos recibir "en bruto" en nuestro correo, con los que
confeccionaríamos manualmente dicha lista de correo, sin necesitar ningún programa para ello.
Este proceso es el que vamos a comentar en este capítulo.

La otra posibilidad, de la que únicamente se va a hacer esta mención, es que hubiéramos


instalado en nuestro servidor un programa especial para procesar esos datos y añadirlos a la lista
de correo, y que incluso pudiera devolver automáticamente al usuario algún tipo de información.
Para conseguir esto, los formularios necesitan ejecutar programas o scripts por medio del CGI
(Common Gateway Interface). El CGI permite a los formularios ser procesados por programas
escritos en cualquier lenguaje, aunque los más usados en Internet son el Perl y el C.

El tipo de formulario que se describe a continuación podrá ser utilizado por la mayoría de
los navegadores, con la notable excepción del Explorer (incluso la versión 3.0), por lo que es
conveniente suministrar al final del formulario, como una alternativa para estos casos, un enlace de
e-mail ordinario (ver el Capítulo 4)

54
Estructura de un formulario

La estructura general de un formulario es:

[Link] de inicio:
<FORM ACTION="[Link] METHOD="POST"
ENCTYPE="TEXT/PLAIN">
[Link] del formulario
(Elementos para introducir los datos).
[Link] de envío y de borrado.
[Link] de cierre </FORM>

[Link] de inicio

El atributo ACTION indica la acción que se debe efectuar y que es que los datos sean
enviados por e-mail a la dirección indicada. (Si hiciéramos uso del CGI, sería precisamente aquí
donde indicaríamos su localización en el servidor, que habitualmente es el directorio cgi-bin, para
que procese los datos).

El atributo METHOD=POST indica que los datos sean inmediatamente enviados por correo
a la dirección de e-mail, nada más púlsar el usuario el botón de envío.

Con el atributo ENCTYPE="TEXT/PLAIN" se consigue que las respuestas las recibamos


como un archivo de texto, perfectamente legible y sin codificar.

[Link] del Formulario (Elementos para introducir los datos)

Los vamos a dividir en tres clases:

[Link]ón por medio de texto


[Link]ón por medio de menús
[Link]ón por medio de botones

La introducción de los datos se consigue por medio de la etiqueta:

<INPUT TYPE= “XXX” NAME=“YYY” VALUE= “ZZZ”>

En donde:

XXX Es la palabra que indica el tipo de datos a introduccir.


YYY Es el nombre que le asignamos nosotros a la variable de introducción del dato.
ZZZ Es la palabra asociada a un elemento.

Todo esto, que de momento parece muy confuso, se aclarará al ir viendo los distintos
casos.
Introducción por medio de texto

Introducción por medio de texto (una línea)

En este caso es XXX=TEXT, es decir, INPUT TYPE=“TEXT”. El atributo VALUE no


procede en este caso. Vamos a poner un ejemplo.

solicitamos el apellido del usuario:


<FORM ACTION=[Link] METHOD=“POST” ENCTYPE=“TEXT/PLAIN”>

55
Escribe tu apellido:
<BR><INPUT TYPE=“TEXT” NAME="Apellido">

</FORM>

Si el usuario introduce su apellido, p. ej. Ruiz, y pulsa el botón de envío (que veremos más
adelante), recibiremos, un e-mail suyo con el siguiente texto:
Apellido=Ruiz

La longitud de este formulario es por defecto de 20 caracteres. Se puede variar incluyendo


en la etiqueta el atributo SIZE="número". Por otra parte, sea cual sea la longitud del formulario, si
no se indica nada, el usuario puede introducir el número de caracteres que quiera. Se puede limitar
esto, incluyendo en la etiqueta el atributo MAXLENGTH="número".

En el caso que hemos visto, si hubiéramos cambiado la etiqueta correspondiente por:

<INPUT TYPE="text" NAME="Apellido" SIZE="10" MAXLENGTH="12">

(Se puede comprobar cómo no se pueden introducir más de 12 caracteres).

También se puede hacer que el texto introducido no sea reconocible, es decir que todos los
caracteres se representen por asteriscos. Basta con cambiar en la etiqueta INPUT TYPE=“TEXT”
por INPUT TYPE=“PASSWORD”. En el último ejemplo, si cambiamos la etiqueta correspondiente
por:

<INPUT TYPE="PASSWORD" NAME="Apellido" SIZE="10" MAXLENGTH="12">

(Se puede comprobar cómo los caracteres introducidos se representan por asteriscos)

Introducción por medio de texto (múltiples líneas)

Cuando el texto a introducir puede alcanzar una gran longitud, por ejemplo un comentario,
es conveniente utilizar un formulario de texto de múltiples líneas.

Esto se consigue con la etiqueta de inicio:

<TEXTAREA NAME=“YYY” ROWS="número" COLS="número">

(en donde no se utiliza INPUT TYPE y donde ROWS representa el número de filas, y COLS el de
columnas).

y la de cierre: </TEXTAREA>

Ejemplo: un formulario solicitando los comentarios del usuario:


<FORM ACTION=“[Link] METHOD="POST" ENCTYPE="TEXT/PLAIN">

Introduce tus comentarios:


<BR><TEXTAREA NAME="Comentarios" ROWS="6" COLS="40">
</TEXTAREA>
</FORM>

(El salto de línea del texto introducido no se efectúa automáticamente).

56
Una vez que el usuario haya escrito sus comentarios dentro del formulario, y haya pulsado
el botón de envío, recibiremos un e-mail suyo con el siguiente texto:
Comentarios = mensaje escrito por el usuario

Introducción por medio de menús

Si queremos que el usuario, en vez de introducir un texto, como hemos visto en los casos
anteriores, escoja entre varias opciones que le presentamos nosotros, haremos uso de un
formulario en forma de menú.

Se consigue con la etiqueta de inicio <SELECT NAME= “YYY”> y la de cierre </SELECT>.

Las distintas opciones a escoger se consiguen con la etiqueta <OPTION>.


Ejemplo: Pedimos al usuario que elija su color preferido:

<FORM ACTION=“[Link] METHOD= “POST” ENCTYPE=“TEXT/PLAIN”>

<BR>¿Cuál es tu color preferido?


<BR><SELECT NAME="ColorPreferido">
<OPTION SELECTED>
<OPTION>Rojo
<OPTION>Verde
<OPTION>Azul
<OPTION>Amarillo
</SELECT >
</FORM>

Si el usuario ha escogido, p. ej. Azul y ha pulsado el botón de envío, recibiremos un e-mail


suyo con el texto: ColorPreferido=Azul.

En el ejemplo anterior, sólo es visible en el formulario una opción. Si queremos que sean
visibles múltiples opciones a la vez, añadimos en la etiqueta los atributos MULTIPLE
SIZE="número", donde especificamos el número de opciones visibles.

Si cambiamos en el ejemplo anterior la etiqueta correspondiente por:

<SELECT NAME="ColorPreferido" MULTIPLE SIZE="2">

Introducción por medio de botones

Caja de confirmación (checkbox)

Si queremos que el usuario confirme una opción determinada, podemos hacer uso de un formulario
de confirmación, o checkbox, que se consigue con la etiqueta:

<INPUT TYPE=“CHECKBOX” NAME=“YYY”>

Ejemplo: Solicitamos al usuario que confirme su inclusión en una lista de correo:

<FORM ACTION= “[Link] METHOD=“POST” ENCTYPE=“TEXT/PLAIN”>

<INPUT TYPE="checkbox" NAME="Lista">


Sí, deseo ser incluido en la lista de correo.

57
</FORM>

Si el usuario marca este formulario y pulsa el botón de envío, recibiremos un e-mail suyo
con el texto: Lista=On.

Si queremos que el formulario aparezca inicialmente como marcado (el usuario no


necesitará hacerlo), basta con añadir el atributo CHECKED dentro de la etiqueta. En el ejemplo
anterior si sustituimos la etiqueta equivalente por:

<INPUT TYPE=“CHECKBOX” NAME=“Lista” CHECKED>

Botones de radio

Cuando queremos que el usuario elija una única opción entre varias, podemos hace uso de
los botones de radio, que se consiguen con la etiqueta:

<INPUT TYPE= “RADIO” NAME= “YYY” VALUE= “ZZZ”>

Donde YYY es el nombre que le ponemos a la variable que se trata de elegir, y ZZZ es el
nombre de cada una de las opciones en concreto.

Ejemplo: solicitamos al usuario que defina cuál es su sistema operativo preferido:

<FORM ACTION=“[Link] METHOD=“POST” ENCTYPE=“TEXT/PLAIN”>

¿Cuál es tu sistema operativo preferido?


<BR>
<INPUT TYPE="radio" NAME="SistemaOperativo" VALUE="PC" CHECKED> PC
<INPUT TYPE="radio" NAME="SistemaOperativo" VALUE="Mac"> Mac
<INPUT TYPE="radio" NAME="SistemaOperativo" VALUE="Unix"> Unix
</FORM>

Obsérvese el atributo opcional CHECKED que se ha añadido en la primera etiqueta. Esa


será la opción que aparece marcada por defecto.

Obsérvese también que no es posible escoger más de una opción.

Si el usuario ha escogido la opción PC y pulsa el botón de envío, recibiremos un e-mail


suyo con el texto: SistemaOperativo=PC.

[Link] de envío y de borrado

Hasta ahora, en todos los ejemplos que hemos visto, faltaba un elemento esencial en
cualquier formulario, y es el botón de envío de los datos, que se consigue con la etiqueta:

<INPUT TYPE= “submit” VALUE= “ZZZ”>

En donde ZZZ es el texto que queremos que aparezca en el botón.

Vamos a añadirlo al primer ejemplo, en el que se solicitaba el apellido del usuario:

<FORM ACTION="[Link] METHOD="POST" ENCTYPE="TEXT/PLAIN">

Escribe tu apellido:

58
<BR><INPUT TYPE="text" NAME="Apellido">
<P><INPUT TYPE="submit" VALUE="Enviar datos">
</FORM>

Otro botón interesante es el de borrado de los datos introducidos, muy conveniente en un


formulario con muchos elementos. Es muy similar al de envío, pues se consigue con la etiqueta:

<INPUT TYPE= “RESET” VALUE=“ZZZ”>

En donde ZZZ es el texto que queremos que aparezca en el botón.

Si añadimos al ejemplo anterior la etiqueta:

<P><INPUT TYPE=“reset” VALUE=“Borrar datos”>

Se puede comprobar su funcionamiento, escribiendo algo en el formulario y pulsando luego


el botón de borrado.

Consideraciones finales

Hasta ahora hemos visto uno a uno los diferentes elementos que se pueden utilizar. Pero
no hay ningún inconveniente en usar, dentro del mismo formulario, distintos tipos de introducción
de datos. Al pulsar el usuario el botón de envío recibiríamos en e-mail suyo con las distintas
parejas NAME=VALUE de cada elemento, encadenadas con el símbolo &.

EJEMPLO

Haremos como ejemplo práctico un libro de visitas a nuestra página.

<HTML>
<HEAD>
<TITLE>Libro de Visitas</TITLE>
</HEAD>
<BODY>

<P><CENTER>
<H2>Libro de visitas</H2>

<P><FORM ACTION=“[Link] METHOD=“POST”


ENCTYPE=“TEXT/PLAIN”>
Tu nombre:
<BR><INPUT TYPE="text" NAME="Nombre">
<P>Escribe tus comentarios:
<BR><TEXTAREA NAME="Comentarios" ROWS="6" COLS="40">
</TEXTAREA>
<P><INPUT TYPE="submit" VALUE="Enviar datos">
<INPUT TYPE="reset" VALUE="Borrar datos">
</FORM>
<P>
<HR>
</BODY>
</HTML>

59
10. MAPAS

Hemos visto anteriormente dos maneras distintas de enlazar una página con otra: por
medio de un enlace de texto o por medio de una imagen. Pero en este último caso se hacía uso de
una imagen para enlazar a una única página.

Se puede utilizar una única imagen para enlazar con varias páginas, yendo a una u otra
según la zona en donde se pulse el ratón. Este tipo de imágenes se llaman mapas.

Veremos cómo se crea un mapa partiendo de una imagen, y cómo se implementa dicho
mapa con el lenguaje HTML en nuestra página.

Hay dos tipos de mapas:

1. Mapas gestionados por el servidor


2. Mapas gestionados por el cliente

En nuestro caso, trataremos sobre los mapas gestionados por el cliente, pero cabe hacer
mención de los mapas gestionados por el servidor.

[Link] gestionados por el servidor

En este tipo de mapas al desplazar el cursor sobre la imagen que forma el mapa se van
obteniendo las distintas coordenadas. Cuando se pulsa el ratón en un punto determinado, el
navegador envía esas coordenadas al servidor, y éste comprueba en un archivo MAP (situado en
su directorio cgi-bin) cuál es la página que se corresponde con estas coordenadas, envía esta
información al navegador, y éste solicita a su vez al servidor que le enlace con dicha página.

Estos mapas, tienen una ventaja: que pueden ser utilizados por todos los navegadores,
incluso por las versiones más antiguas.

Pero tienen varios inconvenientes: No todos los servidores tienen implementado el


programa CGI necesario para que pueda funcionar un mapa de este tipo. Además hay que conocer
el tipo de servidor (NCSA, el más común, o CERN), pues el código a aplicar es distinto en un caso
u otro. Por otra parte, al requerir un trasiego de información entre el navegador y el servidor, el
tiempo de respuesta es mayor que en el otro tipo, como veremos a continuación.

[Link] gestionados por el cliente

Estos mapas son gestionados por el cliente (es decir, nuestro navegador) y no por el
servidor, como en el caso anterior.
En este tipo de mapas, al ir desplazando el cursor se observa que en ciertas zonas se
convierte en el símbolo normal para enlazar con otras páginas (una mano, habitualmente).

Si se pulsa en estas zonas activas (HOTSPOTS), el navegador consulta con el documento


HTML que ha recibido, y decide a qué página o dirección corresponde esa zona activa.

Es decir, no necesita enviar la información al servidor y esperar la respuesta de éste, con lo


que el proceso es más rápido que en el caso anterior, reduciéndose además el tráfico de datos y la
sobrecarga al servidor. Otras ventajas son que al pasar por una zona activa se muestra la dirección
a la que se corresponde (al contrario que en el caso anterior, en la que sólo se ven unas
coordenadas). Además, estos mapas se pueden utilizar off-line, al contrario también que en el otro
tipo, ya que no requieren la ayuda del servidor.

60
Pero tiene el inconveniente de que estos mapas no son implementados por todos los
navegadores, como en el caso anterior, aunque sí por la mayoría de los utilizados actualmente,
desde las versiones siguientes: Netscape 2.0, Microsoft Explorer 2.0, Mosaic 2.1, etc. Pero se
puede obviar este inconveniente suministrando enlaces alternativos para los navegadores que no
implementen este tipo de mapas.

En lo que sigue, vamos a ver exclusivamente cómo implementar este tipo de mapas, es
decir, mapas gestionados por el cliente (client-side image maps).

Confección de la imagen del mapa

Antes que nada, es necesario confeccionar la imagen que va a servir como mapa. Se hará
con un programa gráfico, y pueden utilizarse los formatos GIF o JPG.

Para crear una mapa para utilizarlo en nuestra página HTML, debemos seguir los
siguientes pasos:

1. Se confecciona con un programa gráfico la imagen que nos va a servir como mapa.

2. Para definir un área activa rectangular, necesitamos conocer las coordenadas de su


ángulo superior izquierdo (X1,Y1) y las de su ángulo inferior derecho(X2,Y2).

Estas coordenadas las obtenemos con el programa gráfico con el que hemos
confeccionado la imagen.

Al obtener los datos necesarios (las coordenadas) podemos escribir el código HTML que
convierta esta imagen en un mapa.

Código HTML para definir un mapa gestionado por el cliente

En este caso, el código que debemos escribir es el siguiente:

<MAP NAME=“nombre”>
<AREA SHAPE=“RECT” COORDS=“X1,Y1,X2,Y2” HREF="[Link]">
<AREA SHAPE=“RECT” COORDS=“W1,W1,Z2,Z2” HREF="[Link]">
<AREA SHAPE=“DEFAULT” NOHREF>
</MAP>
<IMG SRC="[Link]" USEMAP=“#nombre”>

Veamos ahora cada una de las etiquetas:

<MAP NAME=“nombre”> Esta es la etiqueta de apertura del mapa, y en


donde se define su nombre.

<AREA SHAPE=“RECT” Esta etiqueta define la primera zona activa. Se


COORDS=“X1,Y1,X2,Y2” indica que su forma (SHAPE, en inglés) es
HREF="[Link]"> rectangular, y que las coordenadas de su ángulo
superior izquierdo son (X1,Y1), y que las del
ángulo inferior derecho son (X2,Y2). A
continuación se indica cuál es enlace que se
desea obtener.

61
<AREA SHAPE="DEFAULT" NOHREF> Con esta etiqueta se define el área completa del
mapa, indicando que su forma es la que tiene
por defecto (default), o sea rectangular. Si se
quisiera que el mapa no abarcara la totalidad de
la imagen, o incluso que tuviera una forma
distinta, habría que indicarlo aquí, en lugar de la
instrucción DEFAULT, haciendo uso del mismo
tipo de instrucciones que las de las zonas
activas.

</MAP> Etiqueta de cierre del mapa.

<IMG SRC=“[Link]” USEMAP=“#nombre”> Con esta etiqueta se solicita primero al servidor


que envíe una imagen llamada [Link]. Con
USEMAP="#nombre" se indica que esta imagen
es el mapa definido anteriormente con ese
nombre, y que debe actuar en consecuencia a
las pulsaciones del ratón, solicitando un enlace
determinado en las zonas activas, o no haciendo
nada en el resto.

Con el atributo NOHREF, se define que el área completa de la imagen es una zona no
activa, excepto en las áreas definidas anteriormente como activas.

Enlaces alternativos de texto

Como se ha dicho anteriormente, no todos los navegadores implementan este tipo de


mapas gestionados por el cliente. Por ello, es necesario suministrar unos enlaces alternativos
convencionales de texto, para obviar este inconveniente.

Por ejemplo, a continuación del mapa, se pueden poner enlaces de texto, correspondientes
a las dos zonas activas (reduciendo la fuente, para hacerlo menos antiestético):

<FONT SIZE=-1>
<A HREF=“[Link]”>Mi página XX</A> |
<A HREF=“[Link]”>Mi página YY</A>
</FONT>

Zonas activas en forma de círculos o polígonos

Hasta ahora se han definido las zonas activas en forma de rectángulos. Pero se pueden
definir también estas zonas activas como círculos o como polígonos.

Para definir una zona activa circular es necesario conocer las coordenadas de su centro
(X,Y) y la longitud de su radio (R). Una vez sabidos estos datos, la etiqueta es como sigue:

<AREA SHAPE= “CIRCLE” COORDS=“X,Y,R” HREF=“dirección_de_la_página”>

Para definir una zona activa poligonal hay que conocer las coordenadas de los distintos
puntos (X1,Y1), (X2,Y2), (X3,Y3), etc. Con estos datos, la etiqueta se escribe como sigue:

<AREA SHAPE=“POLYGON” COORDS= “X1,Y1,X2,Y2,X3,Y3,...” HREF= “enlace”>

62
11. FRAMES

Frames (en inglés, marcos o cuadros) es un procedimiento del lenguaje HTML para dividir
la pantalla en diferentes zonas, o ventanas, que pueden actuar independientemente unas de otras,
como si se trataran de páginas diferentes, pues incluso cada una de ellas pueden tener sus propias
barras deslizadoras. Los navegadores que lo implementan son el Netscape 2.0, y el Explorer 2.0
en adelante.

Una de sus características más importantes es que pulsando un enlace situado en un


frame, se puede cargar en otro frame una página determinada. Esto se utiliza frecuentemente para
tener un frame estrecho en la parte lateral (o superior) con un índice del contenido en forma de
diferentes enlaces, que, al ser pulsados cargan en la ventana principal las distintas páginas. De
esta manera se facilita la navegación entre las páginas, pues aunque se vaya pasando de unas a
otras, siempre estará a la vista el índice del conjunto.

Para comprender los distintos conceptos vamos a desarrollar un ejemplo, creando una
página con dos Frames. El de la izquierda va a servir de índice de lo que veamos en el de la
derecha, y en éste veremos inicialmente una página de presentación.

Documento de definición de los frames

Lo primero que tenemos que hacer es crear un documento HTML en el que definiremos
cuántas zonas va a haber, qué distribución y tamaño van a tener, y cuál va ser el contenido de
cada una de ellas.

En el ejemplo que vamos a desarrollar, la página va a tener dos frames distribuidos en


columnas (es decir, uno al lado del otro, en vez de uno encima del otro, lo que sería una
distribución en filas).

Con respecto al tamaño, haremos que el primero (el del izquierda) ocupe el 20% del ancho
de la pantalla, y el otro, el 80% restante.

Y con respecto al contenido, el frame de la izquierda va a contener un documento HTML


que va a servir de índice de lo que veamos en el otro (y que vamos a llamar mi_indice.html), y el de
la derecha otro documento HTML que va a servir de página de presentación (al que llamaremos
mi_presentacion.html).

Todo lo anterior se refleja en el siguiente documento HTML:

<HTML>
<HEAD>
<TITLE>Mi primera pagina con frames</TITLE>
</HEAD>
<FRAMESET COLS=“20%, 80%”>
<FRAME SRC= “mi_indice.html”>
<FRAME SRC= “mi_presentacion.html” NAME="principal">
</FRAMESET>
</HTML>

Obsérvese lo siguiente:

Es un documento parecido a los que conocíamos hasta ahora. La diferencia está en que en
vez de utilizar la etiqueta BODY, que sirve normalmente para delimitar lo que se va a ver en la
pantalla, se hace uso de la etiqueta FRAMESET (definir los frames).

63
En este caso, con la etiqueta <FRAMESET COLS="20%, 80%"> se define que va a haber
dos frames y que van a ir en columnas. Si hubiéramos querido que fueran en filas, habríamos
puesto ROWS (filas, en inglés). También se define el espacio en anchura que van a ocupar cada
uno de ellos en la pantalla. Se ha puesto como porcentajes del total, pero se podría también haber
puesto una cifra absoluta, que representaría el número de pixels a ocupar.

Ya se ha definido el número de frames, su distribución y su tamaño, pero falta por definir el


contenido de cada frame. Esto se hace con las etiquetas:

<FRAME SRC="mi_indice.html">
<FRAME SRC="mi_presentacion.html" NAME="principal">

Con esto se define que el contenido del primer frame (el de la izquierda) sea el documento
HTML mi_indice.html y el del segundo (el de la derecha) sea el documento HTML
[Link].

Obsérvese que en la etiqueta del segundo se ha incluido el atributo NAME=“principal”, pero


no así en el primero. El motivo es que se necesita dar un nombre al segundo frame, pues, como
veremos a continuación, en el documento del primer frame va a haber unos enlaces que van a ir
dirigidos hacia él. En este caso sólo tenemos dos frames, pero podría haber más, y es necesario
distinguirlos unos de otros. Y el primero no necesita nombre, pues no va a haber enlaces en el
segundo dirigidos hacia él.

A este documento le vamos a llamar mi_pagina.html, pero todavía no lo vamos a guardar,


pues falta por añadir algo que veremos más adelante.

Documentos HTML de cada frame

Necesitamos ahora confeccionar el documento HTML de cada uno de los frames.


Recuérdese que son como páginas independientes, que pueden tener cada una su propio fondo,
etc., y todo lo que queramos añadir en ellos y que hemos aprendido hasta ahora.

Documento del frame de la izquierda

Va a tener un fondo amarillo, y va a contener dos enlaces dirigidos al frame de la derecha.

<HTML>
<HEAD>
<TITLE> Indice </TITLE>
</HEAD>
<BODY BGCOLOR="#FFBB00">
<P><A HREF=“mi_presentacion.html” TARGET=“principal”> Presentación </A>
<P><A HREF=“otra_pagina.html” TARGET=“principal”> Esta es otra página </A>
<P><IMG SRC=“[Link]”>
</BODY>
</HTML>

Dentro de las etiquetas de los enlaces podemos observar algo nuevo, y es el atributo
TARGET (en inglés: objetivo, blanco), que sirve para hacer que al ser activado el enlace no se
cargue en el propio frame, sino en otro, precisamente en el que hayamos llamado con ese nombre
en el documento de definición de los frames.

64
En nuestro caso, le hemos dado el nombre de "principal" al frame de la derecha, y es por
tanto ahí donde se van a cargar los documentos HTML.

Guardamos este documento con el nombre de mi_indice.html.

Documento del frame de la derecha

Va a tener un fondo negro, y va a contener sólamente un texto.

<HTML>
<HEAD>
<TITLE> Presentacion </TITLE>
</HEAD>
<BODY BGCOLOR="#000000" TEXT="#0000FF">
<CENTER>
<FONT SIZE=+3><STRONG>
<P>ESTA ES LA VERSION
<BR><FONT COLOR="#FF0000">CON FRAMES</FONT>
<BR>DE MI PAGINA
</STRONG>
</FONT>
</CENTER>
</BODY>
</HTML>

Guardamos este documento con el nombre de mi_presentacion.html

Alternativa para los navegadores que no soportan frames

Con lo visto anteriormente, ya tenemos las tres piezas que necesitamos:

Documento de definición de los frames


Documento del contenido del primer frame
Documento del contenido del segundo frame

Hay que prever el caso en que los navegadores no soportan o desconocen las etiquetas
FRAMESET y FRAME.

Para estos casos está prevista la etiqueta <NOFRAMES> y </NOFRAMES>. Se añaden al


final del documento de definición de los frames, y a se pone entre ambas lo que queremos que
vean los que acceden con un navegador que no soporta frames. Puede incluso ser el código HTML
de una página completa (lo que normalmente va entre las etiquetas <BODY> y </BODY>)

En nuestro caso, pudiéramos poner un mensaje advirtiendo de esta circunstancia, y


dirigiendo al usuario, con un enlace normal, hacia una página que hayamos definido como principal
o de presentacion para estos casos. (También podríamos no decir nada sobre frames, y colocar
aquí el código de la página de presentación)

<NOFRAMES>
Estas utilizando un navegador que no soporta frames. <P>Pulsa para visitar mi <A
HREF="[Link]"> página</A>.
</NOFRAMES>

<HTML>
<HEAD>

65
<TITLE>Mi pagina con frames</TITLE>
</HEAD>
<FRAMESET COLS="20%, 80%">
<FRAME SRC="mi_indice.html">
<FRAME SRC="mi_presentacion.html" NAME="principal">
</FRAMESET>
<NOFRAMES>
Estas utilizando un navegador que no soporta frames.
<P>Pulsa para visitar mi <A HREF="[Link]"> página</A>.
</NOFRAMES>
</HTML>

Ahora sí podemos guardar este documento con el nombre de mi_pagina.html.

Atributos de la etiqueta <FRAMESET>

La etiqueta FRAMESET, como hemos visto en el ejemplo, es la que define la distribución,


el número y tamaño de los frames. Tiene dos atributos: COLS (columnas) y ROWS (filas):

<FRAMESET COLS=“XX, YY, ZZ, ..">


<FRAMESET ROWS=“XX, YY, ZZ, ..">

Define la distribución de los frames en columnas o en filas, según se use uno u otro
atributo.

Define el número de frames que habrá, pues, por ejemplo:

<FRAMESET COLS=“XX, YY”> (habrá dos frames en columnas)


<FRAMESET COLS=“XX, YY, ZZ”> (habrá tres frames en columnas)

Define el tamaño de los frames, según el valor que demos a XX, YY, ZZ.... Este valor se
puede expresar en:

Un porcentaje del ancho del pantalla (para las columnas), o del alto de la pantalla (para las
filas). Así, por ejemplo:

<FRAMESET COLS="%20, %80"> (la columna de la izquierda ocupará el 20% del ancho de la
pantalla, y la de la derecha el 80% restante)

<FRAMESET ROWS="%10, %70, %20"> (la fila superior ocupará el 10% del alto de la pantalla, la
del medio el 70%, y la inferior el 20%)

Un número absoluto que representa el número de pixels que ocupará cada frame a lo ancho o
a lo alto (según sean filas o columnas). Así, por ejemplo:

<FRAMESET COLS="40, 600"> (la columna de la izquierda tendrá 40 pixels de ancho y la de la


derecha 600). Pero es peligroso utilizar sólo valores absolutos, pues el tamaño de la pantalla varía
de un usuario a otro. Si se va a usar algún valor absoluto para un frame, es mejor mezclarlo con
alguno relativo, como los que vamos a ver acontinuación, para que se ajuste el total a la pantalla
del usuario

Un valor relativo que se consigue poniendo un asterisco (*), en vez de un número. Esto se
interpreta como que ese frame debe tener el espacio restante. Por ejemplo:

66
<FRAMESET ROWS="100,*,100"> (Habrá tres filas, la superior y la inferior de una altura fija de
100 pixels, y la del medio obtendrá el espacio restante).

Si hay más de un frame con asterisco, ese espacio restante se dividirá por igual entre ellos.
Si hay un número antes del asterisco, ese frame obtiene esa cantidad más de espacio relativo.
Así "2*,*" daría dos tercios para el primer frame y un tercio para el otro.

Frames sin bordes

Si se desea que no haya un borde de separación entre los frames, se deben incluir el
atributo FRAMEBORDER=0 dentro de la etiqueta FRAMESET. No todas las versiones de los
navegadores lo implementan.

Para que también desaparezcan los huecos de separación entre frames hay que añadir
otros dos atributos (el primero es para el Explorer y el segundo para el Netscape):
FRAMESPACING=0 y BORDER=0. con lo que la etiqueta completa quedaría:

<FRAMESET FRAMEBORDER=0 FRAMESPACING=0 BORDER=0 COLS=“xx, yy”>

Atributos de la etiqueta <FRAME>

Esta etiqueta define las cararacterísticas de un frame concreto, no del conjunto de los
frames, como era el caso con la etiqueta <FRAMESET>. Puede tener los siguientes posibles
atributos, que van dentro de la etiqueta <FRAME>:

SRC="dirección" Esta dirección puede ser la de un documento


HTML (tal como hemos utilizado en el ejemplo),
o cualquier otro recurso del Web (o URL). Con
este atributo se indica lo que se cargará
inicialmente en el frame. Si no se le pone este
atributo a la etiqueta <FRAME>, entonces
dicho frame aparecerá inicialmente vacío,
aunque tendrá las dimensiones asignadas.

NAME="nombre_de_la_ventana" Este atributo se usa para asignar un nombre a


un frame. De esta manera se podrá "dar en el
blanco" (en inglés, target) en esta página,
desde un enlace situado en otra página. Es
decir, que pulsando en otra página un enlace,
se cargará precisamente en ésta, tal como
hemos visto en el ejemplo. El atributo NAME es
opcional. Por defecto, todas las ventanas
carecen de nombre. Los nombres que se
escojan deben comenzar por un carácter
alfanumérico (una letra o un número, pero no
otro tipo de símbolo).

MARGINWIDTH="número" Se utiliza este atributo cuando se quiere


controlar el ancho de los márgenes dentro de
un frame. El número que se ponga representa
los pixels de los márgenes. Este atributo es
opcional.

67
MARGINHEIGHT="número" Igual que el anterior, pero referido a los
márgenes en altura.

SCROLLING="yes|no|auto" Este atributo se utiliza para decidir si el frame


tendrá o no una barra deslizadora. Si se escoje
"yes" tendrá siempre una barra deslizadora. Si
se escoje "no" no la tendrá nunca, y si se
escoje "auto", será el navegador quien decida
si la tendrá o no. Este atributo es opcional. Su
valor por defecto es "auto".

NORESIZE A este atributo no se le asigna un valor


numérico, como a los demás. Es un indicador
para que la ventana no se pueda re-
dimensionar (en inglés, resize) por parte del
usuario. Es un atributo opcional. Por defecto,
todos los frames son re-dimensionables.

FRAMEBORDER="no" Este atributo elimina el borde en un frame,


pero si se quiere que se elimine
completamente, también hay que ponérselo al
frame contiguo. Si se quiere eliminar los bordes
de todos los frames, se debe colocar en la
etiqueta FRAMESET, como hemos visto
anteriormente.

El atributo TARGET

En el ejemplo hemos visto que, como queríamos que los enlaces situados en el frame de la
izquierda surtieran efecto no en él mismo, sino en otro frame, teníamos que poner dentro de cada
enlace el atributo TARGET=“principal”, siendo “principal” el nombre que habíamos dado al segundo
frame, en el documento de definición de frames. Es decir, hemos utilizado este atributo de esta
manera:

TARGET="nombre_dado_a_otro_frame".

Estos nombres, que los escogemos nosotros, pueden ser cualquiera, pero con la condición
que el primer carácter sea alfanumérico (letra o número).

Pero hay unos nombres reservados (es decir, que no se pueden usar para denominar a un
frame), que hacen que este atributo efectúe unas funciones especiales. Para que cumplan su
cometido, es imprescindible escribir estas palabras reservadas (blank, self y top) en minúsculas.

TARGET=“_blank”. Hace que se abra una nueva copia del navegador, y el enlace activado
se carga en ella, a pantalla completa. Es decir, tendríamos dos copias del navegador (Netscape,
Explorer, etc.) funcionando a la vez.

TARGET="_self". Hace que el enlace se cargue en el propio frame.

TARGET="_top". Hace que el enlace se cargue a pantalla completa, suprimiendo todos los
frames, pero sin que se cargue una nueva copia del navegador. Este es particularmente útil. Un
error muy común es olvidarse de poner este atributo en los enlaces que están en un frame, con lo
que resulta que al ser activados, la página llamada se carga dentro del propio frame, lo cual es
muy molesto si esa página pertenece a otro sitio del WEB, y aún más grave si esa página tiene a

68
su vez frames. Este inconveniente se evita poniendo este atributo dentro de las etiquetas de los
enlaces.

Frames anidados dentro de otros frames

Hasta ahora hemos contemplado sólo la posibilidad de tener una distribución de los frames
bien en filas o bien en columnas, (dependiendo que se utilice el atributo ROWS o COLS en la
etiqueta FRAMESET), pero no ambos a la vez.

Se pueden obtener distribuciones más complejas anidando filas dentro de una columna, o
a la inversa, columnas dentro de una fila.

Supongamos que queremos la siguiente distribución:

Un frame estrecho en horizontal en la parte superior, de lado a lado de la pantalla (altura, el


15%)

Otro frame estrecho en vertical en la parte izquierda, debajo del anterior (anchura, el 20%)

Un tercero ocupando el resto de la pantalla.

Vemos que, en realidad, esto equivale a la siguiente distribución:

Dos filas. La superior ocupa el 15% y la inferior el resto.


La fila inferior está a su vez dividida en dos columnas. La primera (la de la izquierda) ocupa el 20%
y la otra, el resto.

El documento de definición de las dos filas (olvidémonos de momento que la de abajo está
subdividida), sería:

<HTML>
<HEAD>
<TITLE>Pagina con dos filas</TITLE>
</HEAD>
<FRAMESET ROWS="15%, *">
<FRAME SRC="documento_fila_superior">
<FRAME SRC="documento_fila_inferior">
</FRAMESET>
</HTML>

Como la fila inferior, en realidad, son dos columnas (con una distribución del 20% y resto),
sustituimos (anidando) la etiqueta <FRAME SRC="documento_fila_inferior"> por:

<FRAMESET COLS="20%, *">


<FRAME SRC="documento_columna_izqda">
<FRAME SRC="documento_columna_dcha">
</FRAMESET>

Con lo que queda el documento definitvo así:

<HTML>
<HEAD>
<TITLE>Pagina con fila superior y dos columnas inferiores</TITLE>
</HEAD>
<FRAMESET ROWS="15%, *">

69
<FRAME SRC="documento_fila_superior">
<FRAMESET COLS="20%, *">
<FRAME SRC="documento_columna_izqda">
<FRAME SRC="documento_columna_dcha">
</FRAMESET>
</FRAMESET>
</HTML>

12. SONIDOS

Una página del WEB puede tener sonidos incorporados, bien sea como un fondo sonoro
que se ejecuta automáticamente al cargar la página, o como una opción para que la active el
propio usuario.

Capacidades sonoras de los navegadores

Para poder escuchar los sonidos es necesario disponer, como es lógico, de una tarjeta de
sonido con sus correspondientes altavoces. Pero esto no es suficiente, pues no todos los
programas navegadores están capacitados en la misma medida.

Explorer de Microsoft

Es el que está mejor adaptado para el sonido, pues a partir de la versión 2.0 es capaz de
reproducir fondos sonoros sin necesidad de añadir nada, y no hay ninguna complicación con
los servidores, como ocurre con el Netscape. Además, a partir de la versión 3.0 del Explorer, es
incluso compatible con los plug-ins del Netscape.

Netscape

Las versiones anteriores a la 2.0 no son capaces de reproducir fondos sonoros que se
ejecuten automáticamente, sino que requerirá que se activen los programas auxiliares
asociados a los formatos, .WAV o .MID.

La versión 2.0 sí es capaz de reproducir un fondo sonoro, pero es necesario que tenga
instalado un plug-in llamado Crescendo.

La versión 3.0 lleva implícito el plug-in Live Audio (pero sólo la versión completa, no la
reducida). En caso afirmativo, es capaz de reproducir un fondo sonoro.

Pero a todas estas complicaciones de las distintas versiones de los navegadores de los
usuarios, hay otra más y es que el servidor donde esté alojada la página del WEB debe tener
configurados como MIME los formatos, .MID y .WAV. Si esto no es así, aunque depositemos en el
servidor nuestro documento HTLM acompañado por el correspondiente archivo de sonido, éste no
se ejecutará. En dicho caso, es necesario ponerse en contacto con los administradores del servidor
para que configuren como MIME los formatos, .MID y .WAV.

Este problema no existe, sin embargo para el Explorer, con el que no nos tenemos que
preocupar por este tema.

70
Fondo sonoro para el Microsoft Internet Explorer

Para las versiones 2.0 en adelante, se utiliza la etiqueta:

<BGSOUND SRC="archivo_de_sonido" LOOP=n>

El archivo de sonido puede estar en formato .MID o .WAV.

El atributo LOOP (en inglés, lazo) sirve para especificar el número (n) de veces que se
debe ejecutar el archivo de sonido. Si se escoge el número n=-1 o se pone LOOP=INFINITE, el
sonido se ejecutará indefinidamente. Se puede omitir este atributo, y entonces el archivo se
ejecutará una sola vez.

La etiqueta para que se ejecute el archivo [Link] dos veces en el Explorer es:

<BGSOUND SRC=“[Link]” LOOP=2>

(Para poder oirlo, hay que estar utilizando el Explorer)

Fondo sonoro para el Netscape

La etiqueta básica para el Netscape es:

<EMBED SRC="archivo_de_sonido" WIDTH=XXX HEIGHT=YY>

donde WIDTH es la anchura y HEIGHT la altura de una consola que aparece, y que tiene
diferentes teclas (Play, Stop, Pausa, etc.). Respecto a las dimensiones XXX e YY estas
dependerán del plug-ins que existe para Netscape.

El archivo de sonido puede estar en formato, .MID o .WAV, pero recuérdese la advertencia
hecha anteriormente, de que estos formatos deben estar configurados como MIME por el servidor
donde esté alojada la página.

Dentro de la etiqueta se pueden añadir los siguientes atributos opcionales:

AUTOSTART=“TRUE” Arranca automáticamente.


LOOP=“TRUE” Se ejecuta ininterrumpidamente

Para conseguir que la consola sea invisible hay que añadirle el atributo HIDDEN=“TRUE”.

<EMBED SRC=“[Link]” HIDDEN=“TRUE”>

Fondo sonoro combinado para el Explorer y el Netscape

Se pueden combinar los dos tipos distintos de etiquetas para conseguir que un fondo
sonoro sea escuchado por usuarios que utilicen tanto el Explorer como el Netscape (siempre que
éste último esté preparado para ello). En este caso, el Explorer ignorará la etiqueta del Netscape, y
a la inversa.

Las dos etiquetas necesarias para que se reproduzca un archivo de sonido ya sea en
formato, .WAV o .MID, como sonido de fondo, tanto por el Explorer como por el Netscape (lo hará
una sola vez):

71
<BGSOUND SRC=“[Link]”> Para el Explorer.
<EMBED SRC= “[Link]” HIDDEN=“TRUE”> Para el Netscape.

Como vimos anteriormente para que un archivo de sonido, .MID o .WAV se ejecute como
sonido de fondo, tanto por el Explorer como por el Netscape y que se ejecute indefinidamente, a la
etiqueta del Explorer basta con añadirle el atributo LOOP=INFINITE, como se ha visto
anteriormente. Y con respecto a la etiqueta del Netscape, teóricamente debería también bastar
añadirle el atributo LOOP=“TRUE”, pero curiosamente esto no es así, porque hay que poner las
dimensiones de la consola (que no se va a ver).

Las dos etiquetas quedarian de esta manera:

<BGSOUND SRC=“[Link]” LOOP=INFINITE>


<EMBED SRC=“[Link]” WIDTH=200 HEIGHT=55 AUTOSTART=“TRUE” LOOP=“TRUE”
HIDDEN=“TRUE”>

Activación del sonido por el propio usuario

Hemos visto cómo poner un sonido de fondo en una página. Hay otra opción, mucho más
sencilla, y es la de poner un enlace a un archivo de sonido, de tal manera, que al pulsarlo se
ejecute el archivo. (Ver la Capítulo 4, en el que se explica cómo crear enlaces).

Por ejemplo, poner un enlace a un archivo [Link]:

Escucha esta <A HREF= “[Link]”>musica</A>

Al pulsar el enlace se activa, en una ventana aparte, el programa que ejecuta el sonido.
Esto es válido para todos los navegadores, incluso las versiones más antiguas, con la única
condición de que se haya configurado un programa auxiliar capaz de ejecutar archivos .MID o
.WAV.

Se puede hacer el enlace con un icono (Ver el Capítulo 5).

Por ejemplo al hacer un enlace con un icono llamado [Link] al archivo de sonido
sondiowav el enlace quedaria así:

<A HREF= “[Link]”><IMG SRC= “[Link]”></A>

En el capítulo anterior creamos una versión con frames, en la que aparece inicialmente en
el frame de la derecha una página de presentación.

Se puede colocar a esta página una música de fondo, para que sea ejecutada por el Explorer y
el Netscape. Para ello debemos hacer lo siguiente:

En el documento de la derecha que llamamos como [Link] debemos añadir entre


las etiquetas </SRONG> y </FONT> (situadas al final), lo siguiente:

<BR><FONT COLOR=“#FF0000”>¡Escucha la música de fondo!</FONT>


<BGSOUND SRC=“[Link]”>
<EMBED SRC=“[Link]” WIDTH=2 HEIGHT=0 AUTOSTART= “TRUE”>

72
Desarrollo: Código HTML: CSS

Cascading Style Sheets

Seguramente ya han escuchado hablar de las hojas de estilo o CSS. Estas nacieron hace ya un buen tiempo y fueron
recomendadas por la W3 Consortium con el propósito de ayudar al creador de sitios web, y mejorar la presentación de
las paginas web. Pero, no lo solo mejorarlas, si no también facilitar la creación de las mismas.

El uso de las hojas de estilo se puede aplicar a varios efectos, por lo que en este articulo solo tocaremos los mas
utilizados.

Hemos recibido varias consultas de como hacer para agregar un link, pero sin que aparezca subrayado. Este no es mas
que una modificación en el código de CSS, que incluimos mas abajo:

<style type="text/css"><!--
a:link { color: black; text-decoration: none }
a:visited { color: black; text-decoration: none
}-->
</style>

El código que mostramos más arriba permite al webmaster presentar enlaces sin subrayado y estos afectan a todos los
enlaces. Si queremos presentar solamente algunos enlaces debemos clasificar a estos enlaces por clases, y luego
asignar la clase al enlace que se desee. Como ven es algo un poco mas complicado que discutiremos mas adelante.

Respecto al código proporcionado mas arriba,la etiqueta <style type="text/css"> demuestra al browser que el tipo a tratar
es texto específicamente CSS. Luego a:link { color: black; text-decoration: none } nos indica que es un link, de color
negro (black) y NO posee decoración de texto, es decir, sin subrayado. La tercera línea a:visited { color: black; text-
decoration: none indica la misma cosa solo que lo hace para un link ya visitado. Con la etiqueta </style> se cierra el
código de CSS.

Otro efecto bastante utilizado en los sitios web, es el efecto "hover". Este nos permite hacer un efecto, sea cual fuere
(cambio de color, agrandamiento de letra, cambio de fuente, etc) sobre el enlace.

Con el siguiente ejemplo demostramos uno de los tantos usos del hover:

<style type="text/css"><!--
a:hover { color: navy; text-decoration: underline }
a:link { color: black; text-decoration: none }
a:visited { color: black; text-decoration: none }-->
</style>

Vemos que, la única diferencia con respecto al código presentado anteriormente es la inserción de una nueva línea ( la
de hover )
a:hover { color: navy; text-decoration: underline }. Esta línea nos permite crear un efecto de subrayado sobre el enlace
que no se encuentra [Link] entonces que el hover puede ser aplicado a cualquier cambio de propiedad de la
fuente.

En la continuación de este articulo, veremos como aplicar efectos mas avanzados a realizar con las hojas de estilo, así
también nos encontramos desarrollando un tutorial para entender como funcionan y para que pueden ser utilizados, ya
que, estos efectos son una de las tantas propiedades del CSS.

1) Diferentes formas de vincular hojas de estilo en cascada a su sitio web:

Las hojas de estilo en cascada involucran el uso de tres diferentes tipos de definiciones:

a) Estilos en línea

Estos pueden ser atribuidos a etiquetas individuales en el BODY o cuerpo del sitio web. Aunque esto no es parte de una
hoja de estilo en cascada, es llamada así porque esta hecha "como una hoja de estilo". Por ejemplo:

<p style="font-size=12pt; font-style=Verdana,Arial"> Copyright</p>

Esta etiqueta modifica todo el párrafo con tamaño de letra de 12 puntos del tipo Verdana por defecto y Arial como
sustituto.
73
b) Estilos enlazados:

Este tipo de estilo puede adjuntar un tipo de estilo separado el cual es vinculado a través de la siguiente etiqueta ubicada
en la cabecera del sitio. <LINK HREF="[Link]" REL=STYLESHEET> Como ejemplo:

<LINK HREF="/files/[Link]" REL=STYLESHEET>

Aquí llamo a un archivo de nombre [Link] ubicado en la carpeta files dentro del directorio principal o public_html
del servidor.

c) Estilos encerrados:

Los estilos encerrados son aquellos que van "encerrados" entre las etiquetas <style> </style> Por ejemplo:

<style type="text/css"><!--
a:link { color: navy; text-decoration: none }
a:visited { color: navy; text-decoration: none }-->
</style>

2) Clases para ubicar diferentes tipos de enlaces en su página:

Para poder tener diferentes tipos de efectos realizados con hojas de estilo en el mismo sitio, debes crear distintas clases
y luego asignar estas a los links deseados.

Por ejemplo:

<style type="text/css">
<!--

--- DEFINICION DE TIPO DE ENLACE NORMAL ---

A:link {text-decoration: none;}


A:visited {text-decoration: none;}
A:active {text-decoration: none;}
A:hover {text-decoration: underline;}

--- DEFINICION DE TIPO DE ENLACE ITALIC VERDE ---

[Link]:link {color: #003333; text-decoration: none;}


[Link]:visited {color: #003333; text-decoration: none;}
[Link]:active {color: #003333; text-decoration: none;}
[Link]:hover {text-decoration: italic;}

--- DEFINICION DE TIPO DE ENLACE BOLD AZUL ---

[Link]:link {color: #000099; text-decoration: none;}


[Link]:visited {color: #000099; text-decoration: none;}
[Link]:active {color: #000099; text-decoration: none;}
[Link]:hover {text-decoration: bold;}

-->
</style>

Y después debe referirlos en el cuerpo de su documento como:

<a href="[Link]" class="azul">Link</a>

En este caso el enlace se verá azul porque el tipo de clase es azul, y esta clase se encuentra definida mas arriba como
azul.

74
Desarrollo: Diseño: Estructura

La organización de la información es un tema clave para asegurar un buen funcionamiento de un sitio.

El primer elemento organizador son las páginas. Conviene incluir en cada una de ellas una unidad de información
autónoma, completa. En el caso de que el volumen sea excesivo para ello, dividir esa unidad de información en
subunidades más pequeñas, coherentes, completas cada una en sí misma. Una unidad de información es un tema o un
subtema.

Las relaciones de las páginas entre sí configuran la estructura del sitio. A partir de la página principal o home page se
vinculan mediante links el resto de las páginas. Esto es bastante sencillo de implementar en lenguaje HTML, pero es más
complicado decidir de que manera, en qué orden, con qué configuración se establecerá la cadena de vínculos.

Ante todo hay que tener en cuenta que la estructura debe responder a los criterios de búsqueda. Hay que hacerse la
pregunta acerca de ¿cómo se intentará encontrar esta información?. Los criterios " naturales" de clasificación pueden no
ser adecuados. Por ejemplo, es común que quienes venden repuestos acomoden los mismos por tipo: juntas por aquí,
poleas por allí, resortes de este lado. El usuario, a su vez, necesita el repuesto para una máquina o artefacto, marca,
modelo, función del repuesto que busca. Los links y la estructura del sitio tendrán que tener en cuenta estas cuestiones.

El otro tema es que los usuarios reconocen las páginas de la Web utilizando como guía palabras clave colocadas en
botones, barras de control, gráficos mapeados, o utilizadas como marcas de hipertexto; palabras que por su significado
indican o sugieren el contenido de páginas a las que derivan. Es sabido que los significados de las palabras no son
unívocos, y la ambigüedad puede ser un problema. El conocimiento de la cultura y usos lingüísticos del público nos será
sin duda, de gran utilidad a la hora de elegir las palabras que se titularán nuestros botones o identificarán los links de
derivación a otras páginas del sitio.

Hay que tener en cuenta que el usuario no tiene cómo saber la manera en que sigue la cadena de links más allá de las
páginas a las que puede entrar directamente desde el lugar donde se encuentra. Que el usuario no encuentre la
información buscada después de recorrer cuatro o cinco páginas encadenadas puede significar que el mismo abandone
el sitio o la indeseada sensación de frustración que nos interesa evitar.

Un tema relacionado a éste es el de los mecanismos de identificación y de recorrido del sitio. Estos deberían permitir al
usuario saber en todo momento el lugar o zona del sitio donde se encuentra, así como desplazarse hacia cualquier otra
página sin necesidad de recorrer toda la cadena en sentido inverso. Los paneles de control son una buena ayuda.

Un Sitio es más creíble y legible cuando presenta consistencia en aspectos tales como tipo de letra utilizado, fondos y, en
general, la distribución de los distintos elementos en la pantalla. En cada una de las pantallas debe haber una presencia
sólida. Todo lo que ayude a una coherencia visual y de trabajo será en beneficio del navegante y, por ende, del Sitio.

Diseño del Sitio

Estos son los principales puntos a tener en cuenta:

Tipografía
El tamaño de la tipografía debe ser adecuado para ser leído sin dificultad aun en computadoras configuradas con
altas resoluciones de pantalla. Es importante jerarquizar los títulos, subtítulos, manteniendo la coherencia de los
estilos en todo el sitio. Para eso es una buena ayuda escribir una pequeña norma que establezca el tamaño relativo
de la tipografía para cada categoría de títulos y subtítulos, así como si éstos van centrados, alineados, etc. El color
del texto no debe confundirse con el fondo de la página como así tampoco debe cansar a la vista.
Textura de fondo
Evitar el uso de imágenes de fondo en las páginas. Si se usan hay que tener mucho cuidado. No deben tener un
dibujo excesivamente nítido que perjudique la lectura. Tampoco es conveniente que sean motivos muy contrastados
(contornos claros y oscuros), ya que se verán mal tanto los textos oscuros como los claros.
Imágenes
Las imágenes deben ocupar el menor tamaño posible. Es muy importante reducir al mínimo la cantidad de colores de
los gráficos. Hay que tratar de repetir los iconos y las imágenes tantas veces sea posible, esto se debe a que el
browser lee los gráficos de la memoria caché cuando se ingresa a una página. Muy importante: El tamaño de las
imágenes influye en la velocidad en que se carga la página.
Diseño monótono
Algunos expertos recomiendan re-diseñar el Sitio cada seis meses. Esto proyecta una imagen de cambio y da la
sensación de que el Sitio se encuentra en constante actualización.
Coherencia visual
La coherencia visual ayuda en ese sentido. Un sitio en el que cada página tiene un fondo diferente, varían los iconos
y cambian otros componentes de la composición visual, desconcierta al usuario, que no sabe si está en el mismo
Sitio o si el último enlace lo llevó al otro extremo del mundo.
75
Desarrollo: Diseño: Navegación

Navegación del Sitio

Un punto de vital importancia en relación al Sitio es que el mismo sea fácil de leer desde su página de inicio. Diseños
muy cargados resultan sumamente incómodos y, por lo general lentos, lo cual es contraproducente si queremos atraer
visitantes. Los Sitios más frecuentados son precisamente muy sencillos de visualizar y, por ende, de recorrer. Hay que
evitar el uso de elementos pesados que no se necesiten ver, como fotos o sonidos y si, en cambio, utilizar estos recursos
cuando se convierten en elementos de información.

Es muy importante incluir todos los links internos dentro de cada página en el mismo lugar siempre. Si la barra de
navegación está compuesta por imágenes, es muy importante agregar otra barra de navegación que contenga los
mismos enlaces pero en forma de texto. De esta manera las personas que tengan configurado el navegador para no
mostrar imágenes van a poder navegar por el Sitio sin problema. Esto también puede agilizar la navegación, ya que
estamos dando a conocer los enlaces del Sitio antes de que se descarguen la imágenes.

Otro punto muy importante es el tamaño de las páginas, por lo general se recomienda que no superen la pantalla y
media. De esta manera no se satura al lector con tanta información y se evita que se produzca el "scroll infinito".

Desarrollo: Diseño: Compatibilidad

Hacer una página de Internet puede ser algo muy sencillo. Sin embargo, lograr que cumpla su objetivo y sea un sitio
interesante para los visitantes es el gran reto de todo Webmaster. Parte del éxito de una página Web es su presentación
ante el visitante. Por ejemplo, imagine que esta navegando en búsqueda de información de su artista favorito.
Dependiendo el artista puede encontrar de una a miles de páginas en referencia al artista, pero cual será la que mas va a
frecuentar: Yo diría que la que ofrezca mas información, la que más se actualice y principalmente la que ofrezca un mejor
diseño. Y es que el diseño tiene una influencia increíble con el visitante. Uno de mis sitios empezó con un diseño pobre y
así fue como lo di a conocer. Luego que ya tenia un promedio fijo de visitantes se me ocurrió mejorar el diseño y así lo
hice. El resultado fue inmediato, pues a la gente le gusto, y no solo recibí más emails con comentarios, sino que también
aumentaron los visitantes.

A continuación les menciono algunas características que a mi parecer son fundamentales para todo sitio web y que
deben considerar con todos sus diseños:

Compatibilidad de Navegadores (Browsers)

Toda página web tiene que poder ser visualizada con las más recientes versiones de Netscape, Internet Explorer y
Opera. Y con lo de mas recientes versiones no me refiero a que hay que cargarlas de efectos de los últimos
navegadores.

Compatibilidad de Resoluciones

Hay una gran incomodidad al tener que desplazar la ventana de nuestro navegador hacia la derecha. Para evitar esto es
necesario adaptar nuestras páginas para cualquier monitor por medio de tablas que ocupen el 100% de la pantalla o
tomar en cuenta la resolución promedio que utilizarán los visitantes. Actualmente la mayoría de monitores tienen una
resolución de 800x600, por lo que en si trabajamos en este formato, monitores más grandes podrán verla sin problema.
Hay que tomar en cuenta que aún existen computadoras con resoluciones de 640x480, pero ya es una minoría menor al
5% de los navegantes.

Facilidad de Navegación

Todo sitio debe contar con un menú de navegación o estructura bien elaborado para que el visitante no se pierda. Es
recomendable incluir en todas las paginas links hacia la página principal y hacia las principales secciones del sitio. De ser
posible también un link hacia el email para enviar comentarios y un link para ir al inicio de página. Una recomendación es
incluir un Mapa del Sitio para sitios muy extensos.

Rapidez al cargar páginas y gráficas

Lastimosamente Internet aun no ofrece gran velocidad a la mayoría de usuarios. Ayude nuevamente al visitante
reduciendo los contenidos de las páginas, evitando usar muchas gráficas y de ser posible reduzca a lo máximo el tamaño
de sus gráficas. En la sección de Editores Gráficos del área de Referencia de este sitio encontrara algunos links hacia
excelentes herramientas para este trabajo.

76
Tomar en cuenta las actualizaciones

Un sitio o página de Internet nunca está realmente terminado. Simplemente dejas de trabajar en el por un rato. Tomando
esta frase muy en cuenta hay que diseñar todo sitio pensando en el futuro y dejando espacio para agregar nueva
información o secciones. Un diseño inicial flexible es un factor importante para mantener la apariencia de un sitio y su
funcionalidad luego de varios meses y actualizaciones.

Bueno, estas fueron mis 5 recomendaciones que a mi parecer se deben tomar en cuenta en todo sitio web. Espero sean
de utilidad y lleguen a ser parte de sus próximos diseños.

Desarrollo: Imágenes: Formatos

Formato GIF

Apropiado para logotipos y además arte gráfica, para imágenes con colores sólidos y continuos (especialmente para
imágenes con bordes definidos, texto o un dibujo). La compresión está basada en el algoritmo de compresión LZW, la
cual comprime la información de la imagen sin pérdida de información. Este formato soporta un máximo de 256 colores.

Un GIF puede ser transparente; la transparencia permite crear imágenes que comparten el mismo color de fondo de la
página, simulando una apariencia no rectangular.

Formato JPEG

Apropiado para imágenes complejas o para fotografías, ya que es bueno para trabajar con imágenes con múltiples
patrones y contrastes. JPEG comprime y destruye parte de la información de la imagen. Soporta hasta 24 bits de colores,
posee un alto grado de compresión, aunque no permite transparencias.

Teniendo en cuenta todo esto, no es bueno convertir un GIF a JPEG o viceversa. Se pierde gran parte de la calidad de
imagen, además puede ocupar más espacio(en KB) que en el formato anterior.

Estos formatos gráficos cuentan con ciertas variaciones que permiten agilizar la visualización de sus contenidos hasta
hacer simples animaciones. Ellos son:

- Los GIF intercalados que cargan las imágenes acrecentando el nivel de detalle: comienzan por verse borrosas y van
tomando formando hasta que se completan; esto sirve para la espera por los gráficos de la página no sea ardua.

- Los JFEG progresivos, funcionan de manera similar a los GIF intercalados: primero muestran una imagen de baja
resolución que luego se va completando con una alta resolución; esta clase de formato JPEG es bastante nueva, por lo
que no todos los navegadores la soportan.

- Los GIF animados conocidos también como GIF89a; este formato permite crear simples animaciones que dan un
impacto especial y atraen la atención de los visitantes. Los GIFs animados están soportados por la gran mayoría de los
navegadores, además debemos tener en cuenta que ocupan un mayor número de byte.

Un aspecto muy importante a tener en cuenta es el tamaño de las imágenes, pues una imagen grande supone un fichero
grande, y esto puede resultar en un tiempo excesivo de carga, con el consiguiente riesgo de que quien esté intentando
cargar nuestra página se canse de esperar, y desista de ello. Además las imágenes incrustadas en páginas Web son en
partes responsables de los cuellos de botellas existentes en laWWW.

Algo bueno relacionado con el HTML es incluir en el tag <IMG> los parámetros WIDTH y HEIGHT, es decir el alto y el
ancho de la imagen. Por defecto, HTML toma las dimensiones reales de la imagen. Pero si incluimos estos valores la
página HTML se presentará mucho más rápido en pantalla(el texto) mientras se acaban de transmitir las imágenes.

77
Desarrollo: Imágenes: Visualización

Imágenes en el diseño

La velocidad de acceso al Web está siempre muy reñida con el diseño. Es frecuente el caso en que, para embellecer un
Web se utilicen muchas imágenes (en formatos gif o jpeg) de gran tamaño. Esto obliga a los usuarios con conexiones
lentas a sufrir largas esperas hasta que la información se presente en pantalla, y eso es un riesgo porque más de dos
saltarán a cualquier otra dirección Internet antes de perder su tiempo.

La velocidad de la Web también dependerá en gran medida de lo saturadas que estén las líneas de acceso a nuestro
centro proveedor de presencia en Internet (en resumen, el servidor donde se aloja el Web). Sin embargo este es un
problema que se escapa del ámbito del diseño.

La gráfica (incluida elementos multimedia) de un sitio Web debe se una herramienta de comunicación al servicio de los
objetivos planteados y condicionados por las pautas culturales (preferencias, gustos) del público. Esto significa que
tampoco es un espacio de lucimiento del diseñador, ni la estética.

Debe adecuarse a los gustos y preferencias de los responsables del sitio. Una vez más los objetivos trazados y el perfil
del público deberían ser los instrumentos para tomar las decisiones de diseño gráfico y multimedia.

Además de los criterios estéticos y comunicacionales del diseño gráfico, es importante respetar los criterios técnicos
específico:

1. Que cada página sea fácil de cargar. La velocidad de carga de una página está en función del estado de las líneas y
de la cantidad de información que contiene. Sobre el primer parámetro no hay nada que podamos hacer desde el diseño,
pero sí sobre el segundo: establecer para cada página un máximo de bytes y no sobrepasarlo.

2. Realizar los gráficos del tamaño más chico posible. Repetir los iconos siempre que sea posible. El browser los leerá de
la memoria caché a partir de la segunda vez que deba colocarlos en la página.

3. Grabar cada gráfico en formato GIF y JFG, verificar el tamaño de ambos y descartar el mayor.

4. Reducir la cantidad de colores de cada gráfico al mínimo indispensable.

Posición de las imágenes

Para elegir la posición de la imagen con respecto al texto hay distintas posibilidades. La más sencilla es colocarla entre
dos párrafos, con un titular a un lado. Los navegadores más actuales (como el Netscape Navigator y el Microsoft Internet
Explorer) permiten que el texto pueda rodear a la imagen.

De momento nos vamos a limitar a escoger la posición del titular con respecto a la imagen (sí es que queremos ponerle
un titular, claro está). Se puede poner arriba, en medio o abajo del lado de la imagen. Para ello se añade el comando
ALIGN a la etiqueta, de la siguiente manera:

<IMG SRC="[Link]" ALIGN=TOP> Titular alineado arriba

<Imagen: isla>Titular alineado arriba

<IMG SRC="[Link]" ALIGN=MIDDLE> Titular alineado en medio

<Imagen: isla>Titular alineado en medio

<IMG SRC="[Link]" ALIGN=BOTTOM> Titular alineado abajo

<Imagen: isla>Titular alineado abajo

Imágenes utilizadas como enlace

Podemos utilizar una imagen como enlace a otra página. Para estos casos se utilizan generalmente imágenes pequeñas
(iconos), aunque se puede usar cualquier tipo de imagen.

La estructura general de un enlace es:

<A HREF="xxx"> yyy </A>

donde xxx era el destino del enlace e yyy el texto del enlace . En este caso sustituimos xxx por el nombre del fichero de
78
la página a la que queremos acceder. Y en lugar de yyy ponemos la etiqueta completa de la imagen

<A HREF="[Link]"><IMG SRC="[Link]"></A>

También podemos utilizar una imagen para enlazar con otra imagen. En este caso sustituimos xxx (el destino del enlace)
con el nombre del fichero de la imagen a la que queremos acceder e yyy

<A HREF="[Link]"><IMG SRC="[Link]"></A>

Por último, otra posibilidad es la de utilizar un texto para enlazar con una imagen. En este caso sustituimos xxx (el
destino del enlace) con el nombre del fichero de la imagen a la que queremos acceder e yyy (lo que aparece en pantalla
como el enlace) por el texto.

<A HREF="[Link]"> un paraíso tropical </A>

Un tipo de imágenes del que se hace abundante uso y que sirven para mejorar la presentación de la página son los
iconos, botones, barras separadoras, etc. A pesar de su tamaño o forma, son imágenes como cualquier otra.

Elementos Interactivos

La interactividad es fundamental para el éxito de un Web. Se debe evitar la sensación "lectura de periódico" que puede
causar en un visitante un Web pasivo y lineal. Además la interactividad puede beneficiar a quien publica el Web ya que a
través de formularios podrá conocer mejor los perfiles de quienes pasan por las páginas.

Desarrollo: Imágenes: Herramientas

Cuando hablamos de aplicaciones nos referimos a herramientas de desarrollo Web. Al diseñar y mantener un Sitio Web,
aprendemos a valorar la ayuda que estas nos brindan. Nuestra tarea es mencionar las herramientas que más se
destacan en el mundo del diseño Web, ustedes deberán elegir aquellas que mejor se adapten a sus necesidades.

Herramientas de Diseño Web

Photoshop
Adobe Photoshop CS2, la última versión del editor de imágenes más popular en el mercado. Al principio puede
resultar un poco sofisticado, pero una vez que le agarren la mano van a poder hacer cualquier cosa con las
imágenes.

CorelDraw
CorelDraw 12 ofrece un paquete de herramientas que sirven para el desarrollo Web, entre ellas se destaca
CorelDraw y Photo-Paint.

PhotoImpact
No tiene mucho que envidiarle al Photoshop y es mucho más fácil de manejar. Los efectos que tardan horas en
realizar con otros editores, con Ulead PhotoImpact se hacen en minutos.

Paint Shop Pro


Un programa muy similar al Photoshop y Photo-Paint, pero mucho más sencillo de manejar.

Flash
Macromedia Flash es una herramienta que trabaja con imágenes de vector y sirve para crear animacones Web de
gran impacto. Ayuda a crear Sitios Web dinamícos e interactivos.

Freehand
Un programa de ilustración que se destaca por su sencilla interfaz gráfica, entre otras cosas..

Fireworks
Fireworks es la solución perfecta para diseñar y producir elementos gráficos para la Web. Muy utilizado para crear,
editar y animar gráficos Web, añadir interactividad y optimizar imágenes en un entorno profesional.

Canoma
Otra de las tantas maravillas de Meta Creations. Nos permite convertir imágenes 2D a 3D en segundos.

79
Font FX
Una herramienta muy completa y muy fácil de manejar. Nos permite crear textos en 3D, animarlos y exportarlos como
archivos gif, avi y swf.

Microsoft Gif Animator


Un sencillo programa que nos permite crear gif animados.

Ulead Gif Animator


Muy similar al Microsoft Gif Animator.

Ulead Cool 3D
Dentro de la categoría "programas sencillos", el Ulead Cool 3D es el que más se destaca a la hora de trabajar con
textos e imágenes en 3D. Permite exportar las imágenes y animaciones en formato gif, avi y swf.

ACDSee
Famoso por sus thumbnails, el ACDSee es una herramienta indispensable a la hora de trabajar con imágenes. Nos
permite organizar y administrar de forma muy sencilla nuestros archivos.

Image Optimizer
Excelente herramienta que nos permite reducir el tamaño de nuestras imágenes y obtener resultados muy
profesionales.

Desarrollo: Alojamiento: Servidores

Alojamiento

Una vez terminado el desarrollo del Sitio sólo resta publicarlo. A continuación veremos una serie de conceptos que están
ligados con este tema. Algunos de ellos son: cliente, servidor, hosting y housing. Es importante saber las diferencias
entre un servicio rentado y gratuito y cuál de estas opciones conviene más. Es importante también conocer todos los
factores que influyen en el rendimiento y eficiencia de nuestro Sitio Web.

Hosting y Housing

El hosting consiste en alquilar espacio en un servidor que ya esté permanentemente en línea. De este modo usted
obtiene determinada cantidad de bytes para “subir” sus sitios y es allí a donde envía su página para que cualquier
persona la pueda requerir. El housing, en cambio, es la instalación de un servidor propio dentro su empresa. Este
servidor debe estar en línea constantemente para poder responder a los clientes precisando, por ejemplo, un enlace
satelital o una línea punto a punto con algún ISP. Obviamente no son éstas las únicas diferencias entre estas dos formas
de alojamiento. También las hay de carácter económico ya que es mucho más barato apelar al hosting que al housing.
Imagínense que es mucho menos costoso contratar una máquina que ya esté on line que implementar todo el proceso de
instalación y puesta en línea. Además, si usted opta por el housing debe tener una computadora especialmente dedicada
a servir, con todo lo que eso implica (hard, soft y estadía on line) mientras que el hosting sólo requiere la reserva del
espacio y el envío de la página y las modificaciones.

Hosting rentado vs Hosting gratuito

Seguramente usted optó por el hosting y no por el housing. Por lo tanto, debe decidir qué tipo de servicio querrá para su
empresa, ya que hay múltiples variables. La primera decisión que debe tomar es si utilizará un servidor rentado o uno
gratuito.

Veamos los puntos positivos y negativos de cada servidor:

Los servidores gratuitos brindan hosting, obviamente, sin ningún cargo. Pero ¿cuál es el problema? Evidentemente, para
regalarle
al público este servicio las empresas que lo hacen precisan recuperar el dinero de alguna otra manera y la forma de
hacerlo es mediante publicidad. Es decir, que al contratar este servicio gratuito usted adhiere a publicitar en su sitio, otros
sitios que ellos determinan. Ésa es una parte del acuerdo. La otra es que no todos los sitios permiten la publicación de
sitios comerciales. Otra desventaja de los servidores gratuitos es que no todos dejan que utilice su dominio propio, por lo
cual su sitio no será, necesariamente, [Link] sino algo así como [Link]/nombre o
[Link]/Athens/3665.
80
Veamos ahora los puntos positivos y negativos del servidor rentado. Obviamente los defectos de los servidores gratuitos
son las virtudes de los rentados como por ejemplo la implementación del dominio propio y la ausencia de publicidad.
Pero no hay que olvidar que los servidores rentados constituyen un gasto fijo mensual que varía entre los $ 7 y $ 100
dependiendo del servicio (el promedio de los abonos ronda los $ 20). Otro cargo que a menudo cobran los proveedores
del servicio de hosting es un costo de instalación inicial que va de $ 20 a $ 100 pesos a nombre de setup o apertura de
cuenta. En ningún caso estos costos incluyen el de la conexión a Internet por dialup (el acceso telefónico) ya que éste es
un abono aparte.

Si usted va optar por un servidor rentado exija que el mismo funcione bajo su propio dominio. Una de las alternativas que
brinda la obtención de un dominio es poder utilizar el mismo como dominio de correo electrónico.

A la hora de elegir el tipo de servicio:

Si lo que usted busca es que el sitio sea profesional pretenderá que la dirección del mismo tenga un dominio propio y que
las páginas no se inunden con publicidad ajena. El costo de alojamiento de un dominio propio en un servidor rentado
oscila entre los $ 7 y $ 100.

HTTP y FTP

La transferencia de datos por Internet puede hacerse de diversas maneras. Por un lado existe el tradicional envío y
recepción de información a través de la Web. De esta manera usted navega por la Web viendo imágenes, texto, sonidos,
etc. Este protocolo es el HTTP (Hyper Text Transfer Protocol o Protocolo de Transferencia de Hipertexto). Sin embargo
éste no es el único protocolo de transferencia ya que también existe otro: el FTP (File Transfer Protocol o Protocolo de
Transferencia de Archivos) cuya virtud es que transfiere cualquier dato sin importar cuál sea su formato y es mucho más
veloz. Habitualmente este protocolo se utiliza para enviar al servidor las páginas web ya confeccionadas o las
modificaciones. De esta manera, los archivos se envían por FTP y se consultan por HTTP.

Desarrollo: Alojamiento: FTP

File Transfer Protocol

Existe en la actualidad, dentro de lo que es Internet, un servicio que permite trabajar con archivos (copiar, modificar,
borrar) desde una PC hacia un servidor remoto. Estas transferencias de archivos se hacen por medio de un software
conocido como FTP (File Transfer Protocol). Existen muchos programas de este tipo, con diferentes prestaciones, pero
en este tutorial nos referiremos al Cute FTP y al WS FTP.

Abajo encontrará una lista con los términos más comunes en el uso del FTP:

- Site Manager (Cute FTP) o Session Profile (WS FTP): Es el conjunto de información necesaria para conectarse a un
server.
- Download: Copiar un archivo desde una computadora remota a su computadora.
- Upload: Copiar un archivo desde su computadora a una computadora remota.
- Server: Es como se llama comúnmente a un FTP site.

Hay 5 datos importantes que usted debe saber para conectarse a un server FTP:

- Host Adress (Cute FTP) o Host Name (WS FTP): El nombre del Host
- User ID: Nombre de usuario
- Password: Contraseña
- Initial Remote Directory (Cute FTP) o Remote Host (WS FTP): La ubicación del directorio inicial.
- Site Label (Cute FTP) o Account (WS FTP): Nombre del Sitio

Estableciendo la Conexión

Para subir o actualizar nuestros archivos (html, gif, jpg, etc.) tenemos que volcarlos en el servidor. Para ello debemos
configurar nuestro programa de FTP de una forma determinada. Abrimos la ventana del Site Manager y hacemos clic en
Add Site (Cute FTP), o nos dirigimos al Session Profile (WS FTP) y completamos los datos. Una vez configurado,
guardamos la configuración y hacemos clic en el botón Connect (Cute FTP) o Ok (WS FTP) y nos conectamos sin ningún
problema.

Trabajando con Archivos

La pantalla principal se divide en dos partes claramente diferenciadas:


81
CUTE FTP:
Local (nuestro equipo)
Remote (el servidor)
Queue (comandos que se ejecutan)
Log Window (registro de eventos)

WS FTP:
Local System (nuestro equipo)
Remote System (el servidor)

Las ventanas Local y Remote se dividen a su vez en directorios y ficheros.

Antes de enviar los archivos al servidor debemos saber que los ficheros de texto (html, txt, etc.) se transmiten de forma
distinta que los binarios (gif, jpg, etc.). Esto se le indica marcando en Transfer Type (Cute FTP) o en la parte inferior de la
pantalla (WS FTP) ASCII o Binary según sea el caso. Igualmente recomiendo que seleccione la opción Auto-Detect, en
caso de que su programa lo permita.

Lo siguiente que debemos hacer es seleccionar los archivos a enviar en la ventana de la izquierda (Local). Para esto
hacemos clic sobre ellos de manera que queden marcados (para seleccionar muchos archivos se debe mantener
presionada la tecla Shift). Una vez que el archivo está marcado hacemos clic en la flecha Upload. De esta manera el
archivo aparecerá en la ventana de la derecha (Remote). Repetimos el proceso hasta subir todos los archivos.

Comandos permitidos

La mayoría de los servidores de ficheros trabajan en UNIX. Por ello, los ficheros y los directorios tienen nombres con la
convención UNIX pero al transferirlos a un PC adoptan automáticamente el formato del sistema operativo que posea el
mismo.

Los comandos más comunes que podemos utilizar son los siguientes:

- ascii
Transfiere los archivos en modo ASCII. Este es el valor por defecto.

- binary
Transfiere los archivos en modo binario.

- chmod
Cambia los permisos del archivo "nombre del archivo" en el sistema remoto al modo indicado con la instrucción.

- delete
Elimina el archivo remoto. El archivo remoto puede ser un directorio vacío.

- get
Copia el archivo remoto al archivo local. Si el archivo local no se especifica, ftp utiliza el nombre del archivo remoto
especificado como el nombre de archivo local.

· mkdir
Crea el nombre del directorio remoto.

· rename
Renombra desde remoto, que puede ser un archivo o un directorio, a remoto.

· type
Establece el tipo de transferencia de archivo de ftp para el nombre del tipo. Si el nombre del tipo no es especificado,
escribe el tipo actual. ASCII y binario son los tipos tolerados actualmente.

- chgdir
Cambia de directorio. Si tiene seleccionado un directorio, al hacer clic sobre este botón el sistema va a posicionarse en
ese directorio. Si ningún nombre esta seleccionado, va a tener que escribir el nombre del directorio al que quiere ir, en la
ventana de ChgDir.

- rmdir
Elimina un directorio.

- Flechas
Transfiere un archivo de la ventana de la izquierda (Local) a la de la derecha (Remote).

82
Promoción: Páginas Web: Meta Tags

Dentro del encabezado (head), se incluyen los llamados "Meta Tags", que cumplen, en su mayoría, una función
meramente informativa. Dentro de esa información se incluyen datos como: autor, fecha de expiración, descripción de la
página y algunas palabras clave. Antes de realizar la subida a los buscadores más famosos, debemos tomarnos el
trabajo de modificar el código HTML para definir los meta tags. Muchos buscadores toman en cuenta estos datos para
generar la lista de resultados, y mientras mejor definidos estén, mejor será nuestra posición en los buscadores.

Principales Meta Tags:

Autor de la página
<meta http-equiv="Author" content="Nombre del autor">

Descripción de la página
<meta http-equiv="Description" content="Descripción del Sitio">

Palabras clave
<meta http-equiv="Keywords" content="Palabra1,Palabra2,Palabra3,Palabra4">

Título de la página
<meta http-equiv="Title" content="Título de la Página">

Categoría del Sitio


<meta http-equiv="Category" content="Categoría del Sitio">

Nivel de distribución
<meta http-equiv="Distribution" content="global">

Fecha de expiración en el caché del navegante


<meta http-equiv="Expires" content="Mon, 30 Jul 2001 [Link] GMT">

Descripción de la página

Por lo general los buscadores nos limitan a un espacio o extensión no superior a 20 palabras o unos 250 caracteres.
Dicha descripción es la que aparecerá como explicación de nuestro Sitio. Debemos ser muy cuidadosos en su redacción,
así mismo es interesante traducirla a varios idiomas para el caso de querer dar de alta nuestro Sitio en buscadores de
diferentes países.

Keywords o Palabras Clave

Sin duda la descripción que hagamos del Sitio en nuestra subida a los buscadores será el factor fundamental de que el
mismo sea encontrado o no por quienes buscan información relacionada con nuestros contenidos. Es muy importante
utilizar palabras que sean referentes de la actividad que estamos promocionando. También es interesante en este caso
pensar como si nosotros mismos fuéramos los que estamos navegando por Internet en búsqueda de información. ¿Qué
palabras escribiría alguien que está interesado en llegar a nuestro Sitio Web?

Un consejo a la hora de definir las palabras claves es la utilización de plurales siempre y cuando el plural contenga al
singular. Otro consejo en este caso es realizar una búsqueda de acuerdo con las palabras que nosotros pensamos que
utilizaría una persona que está buscando esa información, y analizar los Sitios que son presentados en los primeros
lugares de la lista de resultados, para observar qué palabras clave utilizaron.

Consejos útiles:

Seleccionar estratégicamente las palabras claves.


Escribir las palabras según su orden de importancia.
Combinar las palabras más importantes y formar frases cortas.
No repetir la misma palabra.
Escribir siempre en minúscula y no utilizar acentos.

83
Promoción: Páginas Web: Título

Otro de los tags que forman parte del encabezado es el del título de la página. Por ejemplo, si se está trabajando sobre
una página acerca de la compra y venta de Libros, un buen título podría ser "Libros - Compra y venta de libros nuevos y
usados". La manera de incluírlo en la página es:

<TITLE>Libros - Compra y venta de libros nuevos y usados</TITLE>

Muchos de los buscadores más comúnmente utilizados tienen como una de las referencias de búsqueda el título de la
página. En todos los casos, es el primer elemento que consideran. Es por eso que este ítem debe ser particularmente
analizado a la hora de definir los componentes del Sitio Web. Aunque resulte difícilde entender, muchísimos Sitios
comerciales, de muy buen diseño y de gran presencia en Internet, poseen páginas si título. Esto resta potencia a nuestra
política de promoción.

Hay que ponerle a cada página un título representativo y claro. Un error que muchos cometen es repetir el mismo título
en todas las páginas del Sitio.

Las páginas con palabras que son clave en el rubro elegido en sus títulos, van a ser encontradas más rapidamente por
los buscadores, cosa que no sucederá si no utilizamos este sencillo pero eficaz recurso.

Consejos útiles

Poner un resumen del contenido de la página en el comienzo del texto. Hay motores de búsqueda que utilizan las
primeras 25 palabras del texto de una página a modo de presentación de su contenido.
Utilizar el atributo ALT en las imágenes iniciales. Dentro de la etiqueta de las imágenes se puede añadir el atributo
ALT que sirve para poner un texto a la imagen, que será visto únicamente por quienes utilizan los navegadores en
forma de sólo texto.
Crear muchas páginas que contengan palabras clave. Muchos buscadores tienen en cuenta la cantidad de veces que
se repite una palabra dentro del Sitio.
Combinar las palabras más importantes y formar frases cortas.

Promoción: Buscadores: Introducción

Primeros pasos

Una vez desarrollado el Sitio y alojado en un servidor, debemos darlo de alta en los buscadores. Los motores de
búsqueda utilizan programas de indexación para buscar información en la Web. A través de robots van recorriendo sitios
y saltando entre ellos para armar una gigantesca base de datos en donde consultarán cada vez que se produzca un
requerimiento. Por lo tanto es probable que estos motores de búsqueda encuentren y registren nuestro Sitio, aún cuando
nosotros no hayamos hecho nada para que esto suceda. De todas formas, registrándonos en los más populares motores,
haremos que nuestra presencia en la base de datos no dependa de nuestra suerte. Por su parte los directorios
solamente tomarán en cuenta para la búsqueda los sitios que se hayan registrado. Como no usan programas de rastreo
e indexación, no van a un Sitio que no haya sido dado de alta. Es por eso que es fundamental subir nuestro Sitio a los
directorios más populares. Los directorios están divididos en categorías, debemos ubicar nuestro Sitio en la que esté
relacionada con nuestra temática. Muy bien, llegó el momento de avisarle a los grandes motores de búsqueda que nos
incluyan en la lista de Sitios indexados o catalogados.

Alta en buscadores

Antes de realizar la subida en los buscadores más famosos, debemos tomarnos el trabajo de controlar que los Meta Tags
se encuentre incluidos en cada página de nuestro Sitio. La mayoría de los buscadores toman en cuenta estos datos para
generar la lista de resultados, y mientras mejor definidos estén, mejor será nuestra presencia en esas listas.

A continuación una lista con los motores de búsqueda más utilizados en Internet:

Altavista [Link]
Uno de los más populares y potentes motores de búsqueda en Internet. Tarda un día en procesar la información que
enviamos y dos semanas para registrar el [Link] en cuenta el Título de la página y los Meta Tags.

Google [Link]
Uno de los motores de búsqueda más nuevos y populares en Internet. Toma en cuenta el Título de la página y los
Meta Tags.

84
HotBot [Link]
Toma en cuenta los Meta Tags de las páginas. A diferencia de Altavista y otros buscadores, tiene en cuenta el factor
"popularidad" del Sitio, o se, la cantidad de enlaces que hacen referencia al Sitio. El registro tarda entre 2 y 4
semanas.
InfoSeek [Link]
Potente buscador que soporta hasta 200 caracteres para la descripción y hasta 1.000 para palabras claves. Toma en
cuenta los Meta Tags.

Servicios de Alta

Existen muchos Sitios que nos suben a una gran cantidad de buscadores, lo cual nos ahorra mucho tiempo. Existe una
desventaja, no todos los buscadores clasifican igual, por lo que se recomienda subirse a los buscadores nacionales e
internacionales más importantes en forma manual. Los datos más importantes que nos piden estos Sitio que ingresemos
son:

Descripción del Sitio


Por lo general los buscadores nos limitan a un espacio o extensión no superior a 20 palabras o unos 250 caracteres.
Dicha descripción es la que aparecerá como explicación de nuestro Sitio Web, por lo que debemos ser muy
cuidadosos en su redacción. Así mismo es interesante traducirla a varios idiomas para el caso de querer dar de alta
nuestro Sitio en buscadores internacionales.

Palabras clave
Estas no son más que aquellas palabras que identifican la actividad de nuestro Sitio Web, a que nos dedicamos o
que tipo de información contiene el mismo. Es conveniente por lo tanto tenerlas escritas previamente y utilizar las
mismas al darnos de alta en todos los buscadores. No es aconsejable repetir varias veces la misma palabra en un
mismo formulario. Se recomienda utilizar siempre minúsculas y no usar acentos.

Promoción: Banners: Terminología

Terminología sobre banners

Esta página contiene la terminología habitualmente más usada cuando estamos leyendo documentación que habla sobre
banners.

Banner

Imagen usada en Internet para hacer publicidad sobre algo. Anuncio o Spot publicitario basado en una imagen gráfica
que se muestra al cargar una página Web.

Impresión

Medida de las veces que un banner es mostrado. Cada vez que un banner es mostrado, se incrementa en uno la
impresión.

CTR (Click-through ratio)

Método para medir las veces que un banner es pinchado respecto a las veces que es visualizado. El CRT es el número
de veces que un banner es visualizado dividido por el número de veces que es pinchado. Por ejemplo, si un banner tiene
un CRT de 20:1 indica por cada 20 veces que el banner es visualizado una vez es pinchado, es decir el banner es
pinchado un 5% de las veces. Cuanto mayor es este ratio mejor es el banner.

CPM

Coste por mil impresiones. Es una manera de medir el precio de un anuncio mediante banners. Si el precio de un
anuncio es de 3000 pts por CPM indica que por 3000 pts su banner será visualizado 1000 veces.

Promoción: Banners: Diseño

Diseño de banners

Esta página contiene algunas de las recomendaciones básicas a la hora de diseñar un banner, que harán que su sea tan
bueno como los profesionales.
85
Banners grandes

El tamaño de un banner es importante, está demostrado que cuanto mayor es la superficie que ocupa un banner, es
mayor la probabilidad de que alguien pulse sobre él. Muchas veces estamos restringidos por los tamaños que nos
imponen aquellos que nos permiten poner nuestros banners en sus páginas.

Tamaños: 468x60, 440x40, 88x62 y 88x31

Carga rápida

La carga del banner es crítica, cuanto antes se cargue el banner mejores CTR obtendremos. Por eso debemos minimizar
el tiempo de carga del banner. En el siguiente gráfico podemos apreciar la relación entre el tamaño del banner y el CTR.
Un banner debería ser de 6.000 bytes o menos.

Animación

Al cerebro humano le atraen las cosas que se mueven, hay estudios que verifican que añadir animación a un banners
aumenta el CRT en un al menos en un 15% y que en algunos casos puede llegar al 40%, tampoco conviene abusar de la
animación, puesto que aumenta el tiempo de carga del banner y esto último es perjudicial.

Interacción

Impulse a la gente a interactuar, una manera sencilla es incluyendo una pregunta en el banner de esa manera
conseguirá involucrar a la gente y el CRT ratio aumentará.

Palabras que venden

No sabemos por qué pero existen palabras que nos atraen más que otras. Podemos aprovecharnos de esa situación
incluyendo algunas de esas palabras en nuestro banner. Es altamente recomendado. Incluyendo algunas de estas
palabra aumentaremos nuestro CTR, quizás las más comunes de todas y las más efectivas son las de "click here".

Algunas de estas palabras o frases con gancho son las siguientes: Último día, gratis, nuevo, entre, sexo, click here, free.

Los banners se queman

Si un banner se ha visualizado tres veces y no se ha pinchado sobre él, el lector no pinchará nunca sobre él. Estudios
han concluido que tras 200.000 impresiones el banner está quemado y hay que cambiarlo.

Promoción: Banners: Ubicación

Ubicación del Banner

Uno de los aspectos más importantes de los banners es la ubicación dentro de la página Web, en esta página daremos
algunas recomendaciones sobre al ubicación de los banners.

Al comienzo

Si solo va a poner un banner póngalo al comienzo de la página, los banners ubicados al final de la página son menos
efectivos.

Dos banners

Si va a poner dos banners, asegúrese que pone el contenido importante entre ellos. Lycos tiene un banner en su página
de búsqueda y dos en la de resultados, uno al principio y otro al final. Aunque no está demostrado que la colocación de
dos banners aumente la efectividad.

Home Pages

Los banners de las Home Pages o páginas de inicio tienen los CTR ratios mayores. Si puede colocar su banner en una
Home Page no lo dude.

Contexto

Intente colocar los banners en páginas que traten sobre temas parecidos al de su banner, además de estar en el mismo
idioma. De nada sirve poner un banner en alemán en una página en español.
86
Promoción: On-line: Métodos

Promoción On-line

Se denomina promoción on-line a todas aquellas actividades que se realizan dentro de la Red para promocionar un Sitio.
Los métodos más utilizados son:

Alta en Buscadores
El número exacto de motores de búsqueda y directorios, según algunas fuentes, ronda los 5.000, aunque otros dicen
que hay unos 3.000. Sin importar el número exacto, debemos asegurarnos que nuestro Sitio Web sea dado de alta en
la mayor cantidad de buscadores y directorios posibles, más allá del mercado al cual se apunte.

Banners
La ubicación de banners en otros Sitios o el intercambio de los mismos es en la actualidad uno de los métodos más
utilizados en la Red. Los banners son considerados la publicidad de la Red.

Listas de correo
Es uno de los métodos más económicos para difundir un Sitio. Consiste en enviar de forma periódica un e-mail con
información sobre el tema que trata nuestro Sitio a aquellas personas que lo hayan solicitado. Es interesante añadir
que la información que enviemos debe ser interesante, novedosa, actual y sobre todo, debe estar relacionada a la
actividad que desarrollemos.

Grupos de Noticias
Los newsgroups o grupo de noticias permiten el intercambio de información dentro de grupos que comparten
intereses en común. Los newsgroups son en la actualidad una herramienta de promoción muy fuerte, ya que el
público ante el cual nos estamos dando a conocer es muy selecto. Hay que participar en la mayor cantidad de grupos
posibles, siempre y cuando la temática de los mismos esté relacionada a la actividad de nuestro Sitio.

Links
El intercambio de links tiene como objetivo colocar enlaces a nuestras páginas en Sitios que nos puedan enviar
tráfico. En lo posible que sean Sitios que no escapen de nuestra temática. Mayor sea el número de enlaces que
intercambiemos, mayor van a ser las visitas. El tráfico del Sitio juega un papel muy importante a la hora de
intercambiar links. Si tenemos pocas visitas, difícilmente nos tengan en cuenta, por lo que debemos recurrir a nuestro
ingenio para lograrlo.

Comunidades
Podemos distinguir entre dos tipos de comunidades, las comunidades de usuarios y las de Sitios Web. Las
comunidades de usuario se forman generalmente a través de foros de discusión o grupos de noticias, mientras que
las de Sitios Web se forman a través de Web Rings. Esta última nos permite formar un equipo y trabajar en conjunto
con otros Sitios. Los Web Rings están formados generalmente por Sitios que comparten una misma temática.

Interacción
No todos los Sitios Web tienen un formulario de contacto donde los visitantes puedan realizar sus consultas o
sugerencias. La interacción se utiliza principalmente para recolectar datos, los cuales nos van a servir a la hora de
promocionar nuestro Sitio. Siempre es bueno conocer a nuestros visitantes como así también contar con una buena
Base de Datos. Los formularios de contacto, el chat, los foros, las votaciones, los sorteos y los newsgroups son los
métodos que más se utilizan para interactuar con los visitantes.

Estadísticas
Es muy importante contar con un sistema que nos permita controlar las estadísticas del Sitio. Se debe hacer un
análisis sistemático de las mismas para poder recolectar información sobre nuestros visitantes. Dicha información nos
va a permitir tomar decisiones sobre la promoción de nuestro Sitio, como así también evaluar los resultados de la
misma.

Promoción: Off-line: Métodos

Promoción Off-line

Se denomina promoción off-line a todas aquellas actividades que se realizan fuera de la Red para promocionar un Sitio.
La promoción off-line sigue siendo el método más utilizado por las grandes empresas para promocionar sus Sitios en
Internet.

87
Los métodos más utilizados son:

Promoción indirecta
Se debe incluir siempre la dirección de nuestro e-mail y Sitio Web en las tarjetas personales que entreguemos, en la
papelería de la empresa (sobres, hojas membreteadas, etc.), en los faxes y en los e-mails que enviemos. Otro
método interesante para promocionar nuestro Sitio Web es mediante el merchandising, ya sea entregando remeras,
biromenes, gorras, stickers, etc.

Notas de prensa
Este es un aspecto muy utilizado en el "Marketing Tradicional", y que en Internet también ha tenido una buena
aceptación. Es muy importante informar a las personas que habitualmente navegan por Internet de nuestra presencia
o de nuestras mejoras. Es por ello que la mejor forma de hacerlo es comunicándolo. Es recomendable dejar este
apartado en manos de expertos, los cuales están habituados a realizar campañas de comunicación.

Promoción de intercambio
Es recomendable llegado a este punto tener bien claro lo que queremos obtener con nuestro Sitio, esto es: Un gran
número de visitas o que estas sean de nuestro público objetivo.

Promoción tradicional
Aunque estemos en Internet no debemos olvidar la promoción tradicional. Los eventos promocionales suelen ser muy
efectivos a la hora de dar a conocer nuestro Sitio Web. Podemos organizar reuniones, fiestas, exposiciones, charlas,
etc., todo aquello que nos permita difundir nuestra presencia en la Red.

Publicidad
Cada día se ven más anuncios en los medios gráficos, la televisión e incluso la radio, donde aparece la dirección de
Internet de una Empresa o incluso se anuncia el lanzamiento de un Sitio Web. Los medios gráficos y radiales deben
aprovecharse para atraer público al Sitio, ya que son medios que nos permiten apuntar a un segmento determinado y
los costos de las pautas publicitarias no son tan elevadas.

Promoción boca a boca


Probablemente sea el método que menos tenga que ver con Internet, pero es uno de las más efectivos. Cuando una
persona conocida o una persona que podríamos denominar "líder de opinión" (por ejemplo un profesor, alguien con
profundos conocimientos sobre Internet) nos recomiendan un Sitio Web, se consigue que lo visitemos y lo hagamos
con mayor interés. Que yo sepa no existe ninguna acción que podamos decir que es exclusiva de este tipo de
promoción, pero como comentaba antes, al dar más crédito a alguien que nos influye confianza, sus consejos pueden
ser más importantes que una buena campaña de comunicación.

88
Programación: JavaScript: Introducción

JavaScript es un lenguaje de scripts compacto basado en objetos. Originariamente era denominado LiveScript, y fue
desarrollado por Netscape para su navegador Netscape Navigator 2.0. Fue éste el primer cliente en incorporarlo. Se
ejecuta sobre 16 plataformas diferentes, incluyendo los entornos de Microsoft.

JavaScript permite la realización de aplicaciones de propósito general a través de la WWW y aunque no está diseñado
para el dessarrollo de grandes aplicaciones es suficiente para la implementación de aplicaciones WWW completas o
interfaces WWW hacia otras más complejas..

Por ejemplo, una aplicación escrita en JavaScript puede ser incrustada en un documento HTML proporcionando un
mecanismo para la detección y tratamiento de eventos, como clicks del ratón o validación de entradas realizadas en
forms.

Sin existir comunicación a través de la red una página HTML con JavaScript incrustado puede interpretar, y alertar al
usuario con una ventana de diálogo, de que las entradas de los formularios no son válidas. O bien realizar algun tipo de
acción como ejecutar un fichero de sonido, un applet de Java, etc.

JavaScript se basa en el potente lenguaje Java en su uso y sintaxis, pero es interpretado, no compilado. Esto quiere
decir que el codigo de aplicación de JavaScript es transferido como texto al navegador junto con el texto HTML. Dicho
codigo se ejecuta dentro del navegador, con lo que se capacita al usuario para desarrollar aplicaciones sencillas que
puedan interaccionar con el usuario y ayudarle.

Con JavaScript es posible responder a determinadas acciones del usuario, tales como pulsaciones del raton,
movimientos del raton sobre un vinculo, y crear una entrada de datos (input). Tambien se pueden crear paginas
dinamicas que cambian a solicitud del usuario, e incluso ejecutar sonidos o miniaplicaciones cuando un usuario entra o
abandona tu pagina. Este tipo de acomodacion a nivel del cliente permite una enorme capacidad de interactividad con los
usuarios de sus paginas Web.

El lenguaje JavaScript se parece a Java, pero es mas sencillo y mas facil de aprender. Una aplicacion en JavaScript
puede tener tan solo una linea u ocupar varias paginas. Su complejidad depende del grado en que sus instrucciones
hayan de interaccionar con la pagina en que se encuentra dicha aplicacion. Para la mayoria de los creadores de paginas
Web, una de las primeras utilidades de JavaScript se da en la validacion de formularios. Se llama asi a la capcidad de un
formulario en HTML para comprobar los datos introducidos por un usuario antes de presentarlos, hecho que mejora
notablemente las prestaciones en su servidor y que a la vez disminuye la espera del usuario.

Seguridad en JavaScript

JavaScript fue pensado para que fuera un lenguaje seguro. No permite el uso de punteros, que es la causa mas
frecuente de violaciones de la seguridad. Además al ser un lenguaje interpretado, no hay problemas de tiempo de
compilación y asignación de memoria, que es otra fuente potencial de violaciones de la seguridad. Por último para
minimizar la eficacia de programas malintencionadamente creados, JavaScript no permite incorporar códigos grabados
en disco.

JavaScript tiene el incoveniente de que el código fuente viaja dentro de la página HTML con lo que cualquier usuario
puede leer y modificar dicho código con lo que la única forma de proteger ese código fuente es insertando una nota de
copyright en el código fuente de la aplicación.

Requisitos de JavaScript

Los recursos necesarios para poder utilizar y programar en JavaScript son pocos, este es uno sus aspectos mas
atractivos, ya que cualquiera puede emplearlo directamente para crear sus propias aplicaciones. Los requisitos hardware
necesarios para ejecutar JavaScript son los mismos que se necesitan para ejecutar Netscape Navigator. Es decir que si
puedes utilizar Internet Explorer o Netscape Navigator, tienes todo el hardware y software necesario para ejecutar
aplicacioones JavaScript.

Para crear paginas Web que contengan funciones JavaScript es posible emplear cualquier editor de texto. Y como
JavaScript no necesita compilación, en cuanto el programa este archivado podra ser provado directamente en el
navegador.

Creación de programas con JavaScript

Para que el navegador reconozca que un achivo contiene funciones escritas en JavaScript, dichas funciones se han de
colocar entre dos etiquetas especiales: <script> ... </script>

Entre estas dos etiquetas se colocaran las funciones que luego el navegador reconocera cuando cargue la pagina, estas
etiquetas tienen atributos como LANGUAJE="JavaScript".
89
Ejecutar código JavaScript es tan fácil como visualizar una pagina HTML, una vez cargada la pagina en el navegador,
observará los resultados de las funciones JavaScript de forma inmediata. Las aplicaciones JavaScript pueden
comprobarse localmente sin necesidad de estar conectado a ninguna red, con lo que los tiempos de carga son muy
cortos.

Programación: JavaScript: Programación

Los programas en JavaScript aparecen incrustados en los propios documentos HTML como si de HTML se tratara.
Pueden integrarse de dos formas:

1-. Como programas propiamente dichos, combinando funciones y sentencias, con el mismo aspecto que tendría el
código de cualquier otro lenguaje.

2.- Introduciendo manejadores de eventos JavaScript en etiquetas HTML.

La etiqueta script:

La manera más convencional en que aparece JavaScript en un documento es en forma de programa. Podemos empezar
por mostrar unos breves scripts y ver como son implementados dentro de documentos HTML. Empezaremos con un
pequeño programa que muestra un texto en un documento HTML.

<html>

<head>

¡Mi primer JavaScript!

</head>

<body> <br>

Este es un documento HTML normal

<br>

<script language="JavaScript">

[Link]("Esto es JavaScript!")

</script> <br>

En HTML otra vez.

</body>

</html>

Este primer programa se limita a escribir en pantalla un determinado texto para lo que se emplea el código
[Link]. En este código, document es un objeto creado por el sistema que hace referancia al propio documento y
write es uno de los métodos que proporciona para interactuar con él. El resultado de cargar este documento en un
browser que interprete JavaScript será la aparición de los dos textos, el escrito en JavaScript y el escrito en HTML, sin
que el usuario sea consciente del proceso.

El resultado seria:

Este es un document HTML normal.

Esto es JavaScript!

En HTML otra vez

Este script no es muy útil pero sirve para mostrar el uso de la etiqueta <SCRIPT>. Puedes usar estas etiquetas en
cualquier lugar del documento, tanto en la cabecera como en el cuerpo, aunque si se declaran funciones es más
aconsejable hacerlo en la cabecera.
90
La etiqueta <SCRIPT>es una extensión de HTML en la que se encierra el texto que compone el código del programa
JavaScript correspondiente de la manera siguiente:

<SCRIPT>

Sentencias JavaScript...

</SCRIPT>

De esta manera el navegador que "entienda" JavaScript reconocerá el texto encerrado entre estas etiquetas como código
JavaScript y no lo mostrará en la pantalla del cliente. Una cuestión importante a considerar es el mantenimiento de la
compatibilidad con navegadores anteriores. Cualquier browser ignora las etiquetas desconocidas, por lo tanto, aquellos
que no soporten JavaScript ignorarán el comienzo y el final del código del programa (encerrado entre las etiquetas
<SCRIPT> y </SCRIPT>).Para que el resto del código tambien sea ignorado y no aparezca en la pantalla del cliente, lo
encerraremos entre los símbolos de comentario HTML, <!-- y -->.

Los navegadores que, por el contrario si lo soporten, interpretarán el código encerrado entre las etiquetas SCRIPT e
ignorará el principio de la linea en el script que comienza con la doble slash (//) o bien el encerrado entre "/*" y "*/", que
son los símbolos de comentarios en este lenguaje.

Un documento puede tener varias etiquetas SCRIPT, y cada una de ellas incluir sentencias JavaScript diferentes.

Si queremos dar la posibilidad de ejecutar un código alternativo a los browsers que no interpretan JavaScript, debemos
utilizar las etiquetas <NOSCRIPT></NOSCRIPT>

Por ejemplo:

<SCRIPT>

<!-- Ocultación a browsers antiguos

[Link]("Si ves esto, tu browser interpreta JavaScript")

// Fin de la ocultación -->

</SCRIPT>

</HEAD>

<BODY>

<NOSCRIPT>

Si ves esto, tu browser no incorpora la etiqueta

</NOSCRIPT>

</BODY>

</HTML>

Con vistas a un uso futuro, esta etiqueta admite un parámetro opcional LANGUAGE que indica el lenguaje de script que
se ha incrustado en el documento así como la versión de JavaScript.

<SCRIPT LANGUAGE="Versión de JavaScript">

Sentencies JavaScript...

</SCRIPT>

Las sentencias encerradas entre las etiquetas son ignoradas si el browser que las lee no tiene el nivel de JavaScript
especificado en el atributo LANGUAGE.

Puede usar el atributo LANGUAGE para escribir scripts que contengan código para la última versión del navegador (con
nuevas funciones que no existían en versiones anteriores) y que no provoquen un error ejecutándose bajo una versión
anterior.

91
Existe un parámetro opcional a la etiqueta <SCRIPT>, SRC. El objeto del mismo es el de actuar como un include,
incluyendo en el documento un código JavaScript que pueda ser compartido por diversos documentos, es decir,
posibilitar el uso de librerias. Se recomienda que éstas tengan extensión ".js". La sintaxis asociada será:

El atributo SRC debe especificar una URL, relativa o absoluta. Por ejemplo:

<SCRIPT SRC="[Link]"></SCRIPT>

<SCRIPT SRC="[Link]

Esta libreria no puede contener código HTML, únicamente definiciones de funciones JavaScript.

En los siguientes capítulos añadiremos tutoriales sobre


los distintos lenguajes de “SCRIPT”

92
MANUAL DE JAVASCRIPT

INDICE

1. Introducción
1. Aparición de javascript
2. Javascript y Java
3. Javascript y CGI
2. JavaScript.
1. Qué es Javascript ?
2. Seguridad en Javascript
3. Requisitos de Javascript
4. Creación de Programas con Javascript
5. Javascript y html
3. Elementos Básicos de Javascript
1. Variables y valores
2. Tipos de datos
1. Literales
3. Comentarios
4. Términos reservados
4. Bucles e Instrucciones Condicionales
1. Operadores de comparación
1. for
2. for...in
3. while
4. break y continue
5. if...else
2. Expresión condicional
1. with
5. Operadores
1. Operadores de asignación
2. Operadores de cadena
3. Operadores aritméticos
4. Operadores lógicos y de bits
5. Precedencia de Operador
6. Objetos
1. Objetos y Propiedades
2. Creación de objetos
3. Objetos Incorporados
1. El objeto window
2. El objeto document
3. El objeto form
4. El objeto Anchor
5. El objeto button
6. El objeto checkbox
4. Otros Objetos Incorporaos
7. Funciones
1. Creación y llamada de funciones
2. Uso de Funciones predefinidas
1. La Función eval
2. La Funciones parseInt parseFloat
8. Métodos
9. Eventos en Javascript
10. Aplicaciones en Javascript

93
JAVASCRIPT

1.- INTRODUCCIÓN

Uno de los aspectos más interesantes de la Word Wide Web es su capacidad de ofrecer contenidos interactivos a
muchas personas. La Web es el mayor conjunto de información asequible para un ser humano desde el origen de los
tiempos

Por primera vez, las ubicaciones de la Web tienen capacidad de interacción con sus usuarios. Aplicaciones muy
sofisticadas, como programas de dibujo, hojas de calculo, juegos y complejas herramientas de cálculo matemático,
pueden ejecutarse ahora en la ventana del navegador, entre las paginas HTML, con solo disponer de un navegador
preparado, sin necesidad de contar con un hardware o un software especializados.

Dos son las soluciones que han surgido en la Web para dotarla de contenidos interactivos: el sencillo y manejable
lenguaje de hipertexto realzado (HTML) y el sofisticado y potente leguaje de programación Java. Con estas dos
herramientas, los usuarios pueden crear contenidos atrayentes en su aspecto visual y unirlos sin solucion de continuidad
con las aplicaciones interactivas que brinda Java. Sin embargo, lo que parece echarse de menos es un sistema que
aproxime ambas tecnologias.

1.1 APARICION DE JAVASCRIPT

Netscape vió la necesidad de tender un puente entre las dos tecnologias. Para ello se puso a trabajar en un nuevo
lenguaje de ordenes que pudiera ocupar el vacio entre HTML y Java y que, a la vez, fuera lo suficientemente potente
como para enlazar ambas tecnologias.

Cuando Netscape creó ese nuevo lenguaje lo llamó LiveScript y lo introdujo de inmediato en su navegador mas popular,
en un esfuerzo por conseguir que la comunidad de Internet lo adoptara cuanto antes. Poco después Netscape y Sun se
unieron para ayudar a que LiveScript consiguiera mayor difusion y para establecerlo como el lenguaje estandar de
Internet para la escritura de ordenes basada en la Web. Dado que la sintaxis de LiveScript era muy similar a la de Java,
ambas compañias decidieron rebautizar su nuevo producto para que pudiera ser identificado mejor, y lo llamaron
JavaScript.

JavaScript fue creado como un lenguaje de ordenes facil de utilizar, abierto, de plataforma cruzada, capaz de enlazar
objetos y recursos propios tanto de HTML como de Java. Si las miniaplicaciones de Java son fruto principalmente del
trabajo de los programadores, JavaScript fue concebido para que pudieran usarlo los creadores de las paginas HTML en
orden a controlar dinamicamente la interacción y el comportamiento de sus páginas. JavaScript tiene la particularidad de
haber sido diseñado para integrarse con HTML.

Una de las ventajas principales que ofrece es su capacidad de reducir el trafico de red, permitiendo la realización local de
las tareas mas simples. En otras palabras: en lugar de encomendar esas tareas al servidor y hacer que este pase los
resultados al navegador, el navegador puede realiar algunas de esas tareas a nivel local, con lo que el usario, ademas,
obtiene sus respuestas en un tiempo mas corto.

JavaScript es aún un lenguaje en evaluación, algunas de sus caracteristicas y comandos pueden variar en el futuro. Se
han realizado todos los esfuerzos necesarios para que la información aquí contenida sea lo más actual posible.

1.2 JAVASCRIPT Y JAVA

Las diferencias entre Java y JavaScript son notables pero tambien sus similitudes.

En primer lugar Java es un lenguaje de programación mientras que JavaScript es un lenguaje de scripts (como su
nombre indica). Éste último es más sencillo de entender y usar que Java si no se tienen conocimientos previos de
metodología de programación orientada a objetos. La mayor sencillez de JavaScript hacen que sea interesante aprender
éste último lenguaje como paso previo a adentrarse en el mundo de Java.

JavaScript es mucho más modesto pero precisamente por ello es más sencillo. Se basa en un modelo de instanciación
de objetos muy simple para el que no es necesario tener conocimiento de conceptos tales como herencia y jerarquías.

Soporta un sistema en tiempo de ejecución basado en un pequeño número de tipos de datos (numérico, Boolean, y
string) en el que ni siquiera es necesario declarar el tipo de variables. Sin embargo Java exige una gran rigidez en el tipo
de datos utilizados y dispone de una amplia variedad de tipos básicos predefinidos, operadores y estructuras de control.

En Java uno de los principales bloques de programación son las clases a las que se asocian funciones específicas. Para
utilizarlas es necesario instanciarlas en objetos. Los requerimientos de Java para declarar dichas clases, diseñar sus
94
funciones, y encapsular tipos hacen que la programación en este lenguaje sea mucho más compleja que la realizada con
JavaScript.

Otra diferencia importante es que Java es un lenguaje lo bastante potente como para desarrollar aplicaciones en
cualquier ámbito. No es un lenguaje para programar en Internet, sino que se trata de un lenguaje de propósito general,
con el cual se puede escribir desde un APPLET para una página Web (ésto es es una pequeña aplicación escrita con un
determinado formato que se ejecuta en un trozo de un documento HTML) hasta una aplicación que no tenga ninguna
clase de conexión a Internet.

Los requerimientos tambien son diferentes; Para programar en JavaScript sólo es necesario un editor de texto mientras
que para programar en Java se necesita un compilador específico.

La complejidad de Java es semejante a la de un programa en C++ mientras que la de JavaScript es cercana a la de uno
en dBase, Clipper o sh.

Por otra parte, la sintaxis de ambos lenguajes es muy similar sobre todo en lo que a estructuras de control de flujo se
refiere.

Existen además mecanismos de comunicación entre Java y JavaScript.

En definitiva, la principal ventaja de JavaScript es su simplicidad y su menor demanda de requisitos.

Relación entre JavaScript y Java:

JavaScript Java
Compilado en servidor antes de la ejecución el el
Interpretado (no compilado) en cliente.
cliente.
Basado en objetos. Usan objectos, pero no clases ni Programación orientado a objetos. Los applets
herencia. constan de clases objeto con herencia.
Applets diferenciados del código HTML (accesibles
Codigo integrado en el código HTML.
desde las páginas HTML).
No es necesario declarar el tipo de las variables. Necesario declarar los tipos.
Enlazado dinámico. Los objetos referenciados deben Enlazados estáticos. Los objetos referenciados deben
existir en tiempo de ejecución (lenguaje interpretado). existir en tiempo de compilación (lenguaje compilado).

1.3 JAVASCRIPT Y CGI

CGI (the Common Gateway Interface) es una interfaz entre programas de aplicación y servicios de información. Es decir,
son un conjunto de reglas a cumplir tanto por parte del servidor como por parte del programa, pero se deja libertad al
programador a la hora de escoger el lenguaje que considere mas adecuado para programar la aplicación. Un programa
en CGI puede ser escrito en cualquier lenguaje como: C/C++ , Fortran, PERL ,TCL, etc.

En JavaScript no existen restricciones a cumplir en el Servidor hasta el punto que ni siquiera es necesario que éste
exista.

Por otra parte y al contrario que CGI, JavaScript únicamente depende del cliente y no del sistema operativo, sólo
necesita un browser capaz de interpretarlo. Cualquier persona puede desarrollar aplicaciones escritas en JavaScript del
mismo modo que realiza páginas HTML. Esto no ocurre con aplicaciones CGI que necesitan la existencia de un servidor
WWW para ser ejecutadas.

Con JavaScript todo el código es trasladado al cliente y no se necesita la comunicación a través de la red cada vez que
se produce un evento, como se requería en CGI.

Por otro lado, JavaScript no es un lenguaje válido para desarrollar aplicaciones concurrentes y/o de acceso compartido.

Comparación entre JavaScript y CGI:

JavaScript CGI
Es un lenguaje de programación Es una interfaz. Da libertad de elección del lenguaje
No requiere un servidor de WWW Exige la presencia de un servidor WWW
No requiere una red, funciona en local. Requiere comunicación en red.

95
No funciona en local
La aplicación reside en el cliente La aplicación reside en el servidor
Requiere un cliente especial Sirve cualquier cliente, por simple que sea
Permite desarrollo de aplicaciones distribuidas, acceso
Pensado para aplicaciones monousuario
concurrente y/o compartido
Tiempo de desarrollo muy breve Tiempo de desarrollo medio

2.- JAVASCRIPT
2.1 ¿QUÉ ES JAVASCRIPT?
JavaScript es un lenguaje de scripts compacto basado en objetos. Originariamente era denominado LiveScript, y
fue desarrollado por Netscape para su navegador Netscape Navigator 2.0. Fue éste el primer cliente en
incorporarlo. Se ejecuta sobre 16 plataformas diferentes, incluyendo los entornos de Microsoft e incluso el MS
Explorer lo incorpora en su versión 3.0 .

JavaScript permite la realización de aplicaciones de propósito general a través de la WWW y aunque no está
diseñado para el dessarrollo de grandes aplicaciones es suficiente para la implementación de aplicaciones
WWW completas o interfaces WWW hacia otras más complejas..

Por ejemplo, una aplicación escrita en JavaScript puede ser incrustada en un documento HTML proporcionando
un mecanismo para la detección y tratamiento de eventos, como clicks del ratón o validación de entradas realizadas en
forms.

Sin existir comunicación a través de la red una página HTML con JavaScript incrustado puede interpretar, y alertar al
usuario con una ventana de diálogo, de que las entradas de los formularios no son válidas. O bien realizar algun tipo de
acción como ejecutar un fichero de sonido, un applet de Java, etc.

JavaScript se basa en el potente lenguaje Java en su uso y sintaxis, pero es interpretado, no compilado. Esto quiere
decir que el codigo de aplicación de JavaScript es transferido como texto al navegador junto con el texto HTML. Dicho
codigo se ejecuta dentro del navegador, con lo que se capacita al usuario para desarrollar aplicaciones sencillas que
puedan interaccionar con el usuario y ayudarle.

Con JavaScript es posible responder a determinadas acciones del usuario, tales como pulsaciones del raton,
movimientos del raton sobre un vinculo, y crear una entrada de datos (input). Tambien se pueden crear paginas
dinamicas que cambian a solicitud del usuario, e incluso ejecutar sonidos o miniaplicaciones cuando un usuario entra o
abandona tu pagina. Este tipo de acomodacion a nivel del cliente permite una enorme capacidad de interactividad con los
usuarios de sus paginas Web.

El lenguaje JavaScript se parece a Java, pero es mas sencillo y mas facil de aprender. Una aplicacion en JavaScript
puede tener tan solo una linea u ocupar varias paginas. Su complejidad depende del grado en que sus instrucciones
hayan de interaccionar con la pagina en que se encuentra dicha aplicacion. Para la mayoria de los creadores de paginas
Web, una de las primeras utilidades de JavaScript se da en la validacion de formularios. Se llama asi a la capcidad de un
formulario en HTML para comprobar los datos introducidos por un usuario antes de presentarlos, hecho que mejora
notablemente las prestaciones en su servidor y que a la vez disminuye la espera del usuario.

2.2 SEGURIDAD EN JAVASCRIPT

JavaScript fue pensado para que fuera un lenguaje seguro. No permite el uso de punteros, que es la causa mas
frecuente de violaciones de la seguridad.

Además al ser un lenguaje interpretado, no hay problemas de tiempo de compilación y asignación de memoria, que es
otra fuente potencial de violaciones de la seguridad.

Por último para minimizar la eficacia de programas malintencionadamente creados, JavaScript no permite incorporar
códigos grabados en disco.

JavaScript tiene el incoveniente de que el código fuente viaja dentro de la página HTML con lo que cualquier usuario
puede leer y modificar dicho código con lo que la única forma de proteger ese código fuente es insertando una nota de
copyright en el código fuente de la aplicación.
96
2.3 REQUISITOS DE JAVASCRIPT

Los recursos necesarios para poder utilizar y programar en JavaScript son pocos, este es uno sus aspectos mas
atractivos, ya que cualquiera puede emplearlo directamente para crear sus propias aplicaciones.

Los requisitos hardware necesarios para ejecutar JavaScript son los mismos que se necesitan para ejecutar Netscape
Navigator. Es decir que si puedes utilizar Navigator, tienes todo el hardware y software necesario para ejecutar
aplicacioones JavaScript.

Para crear paginas Web que contengan funciones JavaScript es posible emplear cualquier editor de texto. Y como
JavaScript no necesita compilación, en cuanto el programa este archivado podra ser provado directamente en el
navegador.

2.4 CREACIÓN DE PROGRAMAS CON JAVASCRIPT

Para que el navegador reconozca que un achivo contiene funciones escritas en JavaScript, dichas funciones se han de
colocar entre dos etiquetas especiales : script ... /script

Entre estas dos etiquetas se colocaran las funciones que luego el navegador reconocera cuando cargue la pagina, estas
etiquetas tienen atributos como LANGUAJE="JavaScript".

Ejecutar código JavaScript es tan fácil como visualizar una pagina HTML, una vez cargada la pagina en el navegador,
observará los resultados de las funciones JavaScript de forma inmediata. Las aplicaciones JavaScript pueden
comprobarse localmente sin necesidad de estar conectado a ninguna red, con lo que los tiempos de carga son muy
cortos.

2.5 JAVASCRIPT Y HTML

Los programas en JavaScript aparecen incrustados en los propios documentos HTML como si de HTML se tratara.
Pueden integrarse de dos formas:

1-. Como programas propiamente dichos, combinando funciones y sentencias, con el mismo aspecto que tendría el
código de cualquier otro lenguaje.

2.- Introduciendo manejadores de eventos JavaScript en etiquetas HTML.

Presentaremos los dos mecanismos:

La etiqueta script

La manera más convencional en que aparece JavaScript en un documento es en forma de programa. Podemos empezar
por mostrar unos breves scripts y ver como son implementados dentro de documentos HTML. Empezaremos con un
pequeño programa que muestra un texto en un documento HTML.

<html>

<head>

¡Mi primer JavaScript!

</head>

<body> <br>

Este es un documento HTML normal

<br>

<script language="JavaScript">

[Link]("Esto es JavaScript!")

</script> <br>

97
En HTML otra vez.

</body>

</html>

Este primer programa se limita a escribir en pantalla un determinado texto para lo que se emplea el código
[Link]. En este código, document es un objeto creado por el sistema que hace referancia al propio documento y
write es uno de los métodos que proporciona para interactuar con él. El resultado de cargar este documento en un
browser que interprete JavaScript será la aparición de los dos textos, el escrito en JavaScript y el escrito en HTML, sin
que el usuario sea consciente del proceso.

El resultado seria:

Este es un document HTML normal.

Esto es JavaScript!

En HTML otra vez

Este script no es muy útil pero sirve para mostrar el uso de la etiqueta <SCRIPT>. Puedes usar estas etiquetas en
cualquier lugar del documento, tanto en la cabecera como en el cuerpo, aunque si se declaran funciones es más
aconsejable hacerlo en la cabecera.

La etiqueta <SCRIPT>es una extensión de HTML en la que se encierra el texto que compone el código del programa
JavaScript correspondiente de la manera siguiente:

<SCRIPT>

Sentencias JavaScript...

</SCRIPT>

De esta manera el navegador que "entienda" JavaScript reconocerá el texto encerrado entre estas etiquetas como código
JavaScript y no lo mostrará en la pantalla del cliente. Una cuestión importante a considerar es el mantenimiento de la
compatibilidad con navegadores anteriores. Cualquier browser ignora las etiquetas desconocidas, por lo tanto, aquellos
que no soporten JavaScript ignorarán el comienzo y el final del código del programa (encerrado entre las etiquetas
<SCRIPT> y </SCRIPT>).Para que el resto del código tambien sea ignorado y no aparezca en la pantalla del cliente, lo
encerraremos entre los símbolos de comentario HTML, <!-- y -->.

Los navegadores que, por el contrario si lo soporten, interpretarán el código encerrado entre las etiquetas SCRIPT e
ignorará el principio de la linea en el script que comienza con la doble slash (//) o bien el encerrado entre "/*" y "*/", que
son los símbolos de comentarios en este lenguaje.

Un documento puede tener varias etiquetas SCRIPT, y cada una de ellas incluir sentencias JavaScript diferentes.

Si queremos dar la posibilidad de ejecutar un código alternativo a los browsers que no interpretan JavaScript, debemos
utilizar las etiquetas <NOSCRIPT></NOSCRIPT>

Por ejemplo:

<SCRIPT>

<!-- Ocultación a browsers antiguos

[Link]("Si ves esto, tu browser interpreta JavaScript")

// Fin de la ocultación -->

</SCRIPT>

</HEAD>

<BODY>
98
<NOSCRIPT>

Si ves esto, tu browser no incorpora la etiqueta

</NOSCRIPT>

</BODY>

</HTML>

Con vistas a un uso futuro, esta etiqueta admite un parámetro opcional LANGUAGE que indica el lenguaje de script que
se ha incrustado en el documento así como la versión de JavaScript.

<SCRIPT LANGUAGE="Versión de JavaScript";>

Sentencies JavaScript...

</SCRIPT;>

Versión de JavaScript especifica la versión de JavaScript en la que está escrito el código, y puede ser:

<SCRIPT LANGUAGE="JavaScript"> especifica JavaScript para Navigator 2.0.

<SCRIPT LANGUAGE="JavaScript1.1"> especifica JavaScript para Navigator 3.0.

Las sentencias encerradas entre las etiquetas son ignoradas si el browser que las lee no tiene el nivel de JavaScript
especificado en el atributo LANGUAGE; por ejemplo:

Navigator 2.0 ejecuta el código escrito con la etiqueta <SCRIPT LANGUAGE="JavaScript">e ignora el código escrito en
la etiqueta <SCRIPT LANGUAGE ="JavaScript1.1">.

Navigator 3.0 ejecuta el código escrito entre las etiquetas <SCRIPT LANGUAGE="JavaScript"> o <SCRIPT
LANGUAGE="JavaScript1.1">.

Si el atributo LANGUAGE es omitido, Navigator 2.0 asume LANGUAGE="JavaScript" y Navigator 3.0 asume
LANGUAGE="JavaScript1.1"

Puede usar el atributo LANGUAGE para escribir scripts que contengan código para Navigator 3.0 (con nuevas funciones
que no existían en versiones anteriores) y que no provoquen un error ejecutándose bajo Navigator 2.0.

Ejemplo. Este ejemplo muestra como usar dos versiones diferentes de JavaScript una para JavaScript 1.0 y otro para
JavaScript 1.1. El documento cargado por defecto es para JavaScript 1.0. Si el usuario utiliza Navigator 3.0, utilizará la
función [Link]("..") implementada únicamente en esta versión de JavaScript.

<SCRIPT LANGUAGE="JavaScript1.1">

[Link]("[Link]") //Sustituye la página actual por "[Link]"

</SCRIPT>

[Definición del resto de funciones compatibles...]

En el Netscape 3.0 se añade un nuevo parámetro opcional a la etiqueta <SCRIPT>, SRC. El objeto del mismo es el de
actuar como un include, incluyendo en el documento un código JavaScript que pueda ser compartido por diversos
documentos, es decir, posibilitar el uso de librerias. Se recomienda que éstas tengan extensión ".js". La sintaxis asociada
será:

El atributo SRC debe especificar una URL, relativa o absoluta. Por ejemplo:

<SCRIPT SRC="[Link]"></SCRIPT>

<SCRIPT SRC="[Link]

Esta libreria no puede contener código HTML, únicamente definiciones de funciones JavaScript.
99
3.- ELEMENTOS BASICOS DE JAVASCRIPT

3.1 VARIABLES Y VALORES

Las variables de JavaScript contienen valores que se emplean en la aplicación. JavaScript permite asignar a sus
variables valores para poder referenciarlas en cualquier parte de su código.
Los nombres de las variables distinguen entre mayúsculas y minúsculas y deben comenzar por una letra o un guión bajo
( _ ).

Los tipos de valores que puede contener una variable JavaScript son:



números


operadores lógicos (booleanos)
cadenas

La palabra clave null asigna valores nulos a las variables. JavaScript usa un único tipo de datos para números, es decir,
el número JavaScript puede contener enteros, reales y dobles sin tener que recurrir a tipos diferentes especializados.
Además JavaScript maneja los objetos de datos con el mismo tipo de [Link] declarar las variables en JavaScript se
utiliza la instrucción var. A cada variable se le asigna un nombre, y opcionalmente, un valor inicial. Si no se trata de una
función, la instrucción var es opcional, pero se recomienda utilizarla, para evitar una sobreescritura de variables locales
por parte de variables globales.

Las variables locales se declaran generalmente dentro de una función para que sólo esa función pueda utilizar la
variable. Las variables globales se declaran fuera de toda función para que se puedan utilizar en todas las funciones.

La sintaxis para la instrucción var es la siguiente:

var nombrevar[=valor ] [..., nombrevar[=valor] ]

Un ejemplo: var num_sillas =10, precio_por_silla =12.0;

3.2 TIPOS DE DATOS

Las aplicaciones en JavaScript pueden manejar numerosos tipos de datos diferentes, pero JavaScript se las arregla para
hacerlo sólo con tres tipos de datos distintos. Además JavaScript puede decidir por el programador qué tipo de variable
debería emplearse durante la ejecución de la secuencia de ó[Link] tipos de datos son convertidos automáticamente
cuando se ejecuta la aplicación en JavaScript. Para ello, no importa cuán compleja sea la conversión, JavaScript realiza
la conversión de izquierda a derecha. Es decir, el operando de la derecha será convertido al tipo del operando de la
[Link] un ejemplo. Si se tienen las variables



var1 = "12"
var2 = 10

y luego se indican las siguientes instrucciones



x = var1 + var2
y = var2 + var1

la primera instrucción dará como resultado que x contendrá la cadena "1210", porque al ser el operando de la izquierda
una cadena el operando de la derecha ,que es var2, se convertirá igualmente en una cadena. La segunda instrucción
convertirá var1 en un número ya que el operando de la izquierda, var2, es un número. Luego y contendrá el valor [Link]
ahora tuviésemos el ejemplo



var1 = "Pedro"


var2 =10 y
y = var2 + var1

JavaScript generaría un error ya que el operando de la derecha, la cadena "Pedro", no podría convertirse en un valor
numérico.

100
3.2.1 Literales

Los valores iniciales que pueden asignarse a las variables se denominan literales. Estos tipos de valores no son
variables, sino, más bien, expresiones constantes de valores para tipos de [Link] de valores literales:

32

54.94

"programar es divertido"

A continuación se explicarán los distintos tipos de literales:

• Valores literales para números. Pueden utilizarse tres bases distintas para números enteros: la decimal (base
10), la hexadecimal (base 16) y la octal (base 8). Para especificar un literal en base decimal se emplea una serie
de dígitos sin ceros [Link] ejemplo [Link] especificar un literal en base octal , se antepone un cero ( 0 ) al
número. Los literales en base octal sólo pueden incluir los dígitos del 0 al 7. Por ejemplo [Link] especificar un
literal en hexadecimal se antepone al número 0x (o 0X). Los literales hexadecimal incluyen los dígitos del 0 al 9 y
las letras de la A a la F (o a-f ). Por ejemplo 0xFF.

Un literal con coma flotante se especifíca mediante los siguientes elementos: un entero decimal, una coma (o un punto)
decimal, otro entero decimal, un exponente y algún tipo de sufijo. El exponente se indica mediante una e o E seguida por
un entero positivo o negativo (se coloca delante el signo + o -). Un literal con coma flotante debería constar como mínimo
de un dígito más una coma decimal o e o E. Ejemplos: 5,43 .4e3 2E-8-7.4e8



Valores literales booleanos. Se especifica mediante verdadero o falso.
Valores literales de cadena. Se especifican empleando cero o más caracteres dentro de unas comillas dobles o
sencillas. Por ejemplo :

"manzana"

"pera"

Los literales de cadena pueden contener también caracteres especiales. Por ejemplo

"hola \r adiós".

A continuación se presenta una lista de caracteres especiales:

\b ==> retroceso

\f ==> salto de página

\n ==> salto de línea

\r ==> retorno de carro

\t ==> tabulador

3.3 Comentarios

La sintaxis de la instrucción comentario es como sigue:



/* una o más líneas de texto comentado; requiere la instrucción cerrar comentario */
// una sola línea de texto comentado; no requiere la instrucción cerrar comentario. También puede emplearse el
par /* */.

Puede igualmente ocultarse el código JavaScript para los navegadores que no sean [Link] ejemplo:

<SCRIPT>
< - - Esta linea comienza el comentario, escondiendo el código siguiente de
los navegadores que no son Netscape
function HacerArray(n) {
101
[Link] = n;
for (var i = 1; i <= n; i++) {
this [ i ] = 0}
return this
}
}
// - - > Esto termina el comentario. La instrucción //esconde el comentario
HTML desde JavaScript
</SCRIPT>

3.4 Términos reservados

Los siguientes términos reservados no pueden ser empleados para nombres de variables, funciones, métodos u objetos.

abstract extends int super


boolean false interface switch
break final long synchronized
byte finally native this
case float new throw
catch for null throws
char function package transient
class goto private true
const if protected try
continue implements public var
default import return void
do in short while
double instanceof static with
else

4.- BUCLES E INSTRUCCIONES CONDICIONALES

Las instrucciones de bucle que emplea actualmente JavaScript son:



for
while

El siguiente listado muestra un sencillo ejemplo de como se utilizan estas instrucciones:

<HTML>
<BODY>
<SCRIPT>
for (var i=0;i<10;i++) { [Link]("Estas en el numero" + i + "!<BR>");

if (i == 5)
[Link]("Estas a mitad de camino".<P>");
}
</SCRIPT>
</BODY>
</HTML>

Esta operación ejecutará la operación 10 veces mediante el bucle for, e imprimirá las palabras Estas en el numero
seguidas por el número actual. La instrucción if comprobará cuando se alcanza el bucle 5 e imprimirá entonces las
palabras Estas a mitad de camino.

102
4.1 Operadores de comparación

Cuando se establece una comparación en JavaScript se debe usar un operador de comparación entre los dos valores a
comparar. Como resultado se obtendrá un valor booleano. Los operadores de comparación son los siguientes:

Igual ==> ==

Distinto ==> !=

Mayor que ==> >

Menor que ==> <

Menor o igual a ==> <=

Mayor o igual a ==> >=

4.1.1 for

La sintaxis para un bucle for es así:

for ( [instrucción inicial]; [condición]; [expresión actualización]) {

instrucciones }

Las tres expresiones que se encuentran dentro del paréntesis son optativas. La instrucción inicial en un bucle for puede
contener una declaración de variable, que se efectúa empleando la palabra clave var. Un ejemplo de la instrucción for:

for (var i = 0; i < 10; i++) {


total = total + i;
display_total (total);
}

En este ejemplo el bucle for se ejecutará 10 veces antes de terminar. En cada iteración i se incrementa en 1 hasta que la
instrucción i <10 deje de ser verdadera. Para bloques de código de una sóla línea no hace falta emplear el par de llaves
({ }).

4.1.2 for...in

La sintaxis de la instrucción for...in es la siguiente:

for (var in obj) {


instrucciones
}

La instrucción for...in itera una variable sobre todas las propiedades de un objeto. La palabra clave in fija var para la
primera propiedad de obj. Cuando termine de ejecutarse la instrucción ya habrá recorrido todas las propiedades de obj.
Vease el siguiente ejemplo:

function propiedades_del_objecto(obj,nombre_obj) {
var resultado = "";
i = "";
for (i in obj)
resultado += nombre_obj + "." + i + "=" + obj[i] + "\n";
return resultado;
}

Este ejemplo se ejecutará por todas las propiedades de obj y las visualizará junto con el valor de la propiedad.

103
4.1.3 while

Su sintaxis es la siguiente:

while (condición) {
instrucciones
}

El siguiente ejemplo mantiene el bucle en acción hasta que la variable dinero alcanza su meta prefijada de [Link]
segundo cero después del punto o coma decimal es innecesario, pero se usa para facilitar la lectura del código y para
indicar al lector del código que se está hablando de dinero.

dinero = 0.00;
while (dinero < 100.00) {
dinero += 5.00;
}

4.1.4 break y continue

En un bucle while o for, una instrucción break interrumpe el bucle y continúa la ejecución del código posterior al bucle. La
sintaxis es:

break

En el siguiente ejemplo el bucle while se interrumpe cuando la variable i toma el valor 2.

function func(x) {
var i = 0;
while (i < 5) {
if ( i == 2)
break;
i++;
}
return i*x;
}

La instrucción continue finaliza la ejecución del bloque actual en un bucle y continúa el bucle con la siguiente iteración. Si
en el ejemplo anterior sustituimos la instrucción break por continue cuando la variable i tome el valor 2, el bucle while
salta la linea i++ y continúa el bucle.

4.1.5 if...else

Su sintaxis es:

if (condición) {
instrucciones
} [else {
instrucciones
}]

La instrucción if...else puede ser anidada.

Veamos un ejemplo:

if ( tipo_libro (libro_javascript) == "*****") {


bueno = true;
}else
bueno = false;

104
4.2 Expresión condicional

Una expresión condicional en JavaScript es un método para comprobar un valor cuyo resultado puede ser uno de dos
posibles valores. Por ejemplo:

edad_suficiente = (edad =18) ? "Conducir hasta casa" : "Andar hasta casa"

Se comprueba primero la instrucción dentro del paréntesis, si es verdadera se escoge el primer valor detrás del signo de
interrogación. Si no, se escoge el segundo valor detrás de la interrogación.

4.2.1- with

Esta instrucción permite especificar un objeto como objeto predeterminado cuando se ejecutan instrucciones dentro de
su bloque de código.

with (objeto) {
instrucciones
}

Un ejemplo utilizando el objeto Math

with (Math) {
a = PI * r * r;
x = r * cos(alfa);
y = r * sin(alfa);
}

5.- OPERADORES

5.1.- Operadores de asignación

El signo = asigna el valor del operando de la derecha al resultado de la izquierda. Por ejemplo x=10 asigna el valor 10 a
la variable x.

A continuación se presentan una serie de notaciones abreviadas para las asignaciones. Estas notaciones se aplican a
todos los operadores aritméticos y de bits.

x += y es igual a x = x + y
x -= y es igual a x = x - y
x <<= y es igual a x =x << y

5.2.- Operadores de cadena

Los operadores de cadena incluyen los operadores de comparación mencionados anteriormentey el operador de
concatenación (+). Por ejemplo la instrucción

"Java" + "Script"

dará como resultado

"JavaScript"

Igualmente si la variable str contiene el valor "Java", la instrucción

str +="Script"

dará también como resultado la cadena "JavaScript".

105
5.3.- Operadores aritméticos

Operador Función Ejemplo


+ suma x=a+b
- resta x=a-b
* multiplicación x=a*b
/ división x=a/b
% módulo 12 % 5 = 2
++ incremento x++
-- decremento y--
_ negación unaria x = _y

5.4.- Operadores lógicos y de bits

En la siguiente tabla se describen los operadores lógicos.

Operador Función Ejemplo


&& Y, verdadero si ambos son verdaderos expr1 expr2
|| O, verdadero si uno de los dos es verdadero expr1 | | expr2
! NO, niega el operando !expr1

La siguiente tabla muestra los operadores a nivel de bit.

Operador Función Ejemplo


& Y a nivel de bit. Devuelve un uno si los dos operandos son unos. x=a&b
| O a nivel de [Link] un uno si algunos de los dos operandos es uno. x=a|b
^ XOR a nivel de bit. Devuelve un uno si uno pero no ambos operandos es uno. x=a^b
Desplaza bits a la izquierda un número especificado de veces. Los bits que
<< sobran por la izquierda se descartan y se incluyen los bits cero desde la x = a << 4
derecha
Desplaza bits a la derecha un número especificado de veces. Los bits que
>> sobran por la derecha se descartan y se incluyen por la izquierda copias del bit x = b >> 5
más a la izquierda.
Desplaza bits a la derecha y los sustituye por ceros. Los bits sobrantes por la
>>> x = a >>> 2
derecha se descartan y se incluyen los bit cero desde la izquierda.

5.5.- PRECEDENCIA DE OPERADOR

La siguiente lista muestra la precedencia de los operadores de JavaScript, de menor a mayor:



coma ,


asignación = += -= *= /= %= <<= >>= >>>= &= ^= |=


condicional ?:


o lógico ||


y lógico &&


o a nivel de bit |


xor a nivel de bit ^


y a nivel de bit &


igualdad == !=


relación < <= > >=


desplazamiento << >> >>>


suma/resta + -


multiplicación/división/módulo * / %


negación/incremento ! ~ - ++ --
llamada, miembro ( ) [ ] .
106
6.- OBJETOS

Un objeto, como antes ya se ha comentado es una agrupación de variables denominadas propiedades, que pueden ser a
su vez otros objetos, junto a un conjunto de métodos o funciones que realizan operaciones con las variables propias del
mismo.

Existen objetos predefinidos ya en el navegador cliente pero podemos definirnos nuevos objetos.

6.1 Objetos y propiedades.

Para acceder a las propiedades de un objeto basta hacer uso de la dot notation (notación del punto). Ejemplo:

objeto1.propiedad2

Recordemos a la hora de nombrar objetos y variables que JavaScript es case-sensitive.

La relación entre arrays y objetos y las propiedades de estos es enorme puesto que si tenemos por ejemplo el siguiente
objeto:

Objeto: Ficha

Propiedades: nombre, edad, sexo

Podemos acceder a las propiedades del objeto tanto para asignar valores como para léelos haciendo uso de la dot-
notation y también como si el objeto fuera un vector y las propiedades elementos de este ordenadas según se definieron.

Así y para un objeto Ficha llamado miFicha, son equivalentes los tres conjuntos de sentencias siguientes:

[Link] = "Tony"

[Link] = 23;

[Link] = "varon"

miFicha["nombre"] = "Tony"

miFicha["edad"] = 23;

miFicha["sexo"] = "varon"

miFicha[0] = "Tony"

miFicha[1] = 23;

miFicha[2] = "varon"

Este tipo de vectores se denominan arrays asociativos. Veamos ahora una función que nos mostrara las propiedades de
un objeto pasándole el tipo del mismo y su nombre. Es la función shows_props() anteriormente mencionada:

function show_props(obj, obj_name) {


var result = ""
for (var i in obj) {
result += obj_name + "." + i + " = " + obj[i] + "\n"
}
return result;
}

Utilizando esta función con el objeto miFicha el resultado seria:

[Link] = Tony

[Link] = 23

[Link] = varon
107
6.2 Creación de objetos

Para crear un nuevo objeto en JavaScript primero hay que crearse una función para ese objeto, y después hay que crear
un ejemplo de ese objeto con la palabra clave new.

Por ejemplo, en primer lugar se crea la función:

function persona(nombre, edad, altura, peso) {


[Link]=nombre;
[Link]=edad;
[Link]=altura;
[Link]=peso;
[Link] = imprime;
}

La palabra clave this da a entender a la función que debe referirse a sí misma a la hora de hacer las asignaciones de
propiedad. Cuando se definen funciones, pueden utilizarse también otros objetos como propiedades en esa función. Para
añadir métodos a los objetos hay que especificar en la definición del objeto la función que ha de emplearse para el
método. En el ejemplo anterior se ha añadido un método denominado imprime. La función imprime tendría que haberse
definido de forma que se especificara como método en un objeto. Añadir un método a la definición de un objeto garantiza
que todos los objetos que se creen contendrán el método. Para añadir un método sólo al objeto que se está empleando y
no a la propia definición se utilizaría la instrucción:

[Link] = imprime;

Para crear un nuevo objeto de la función persona se utilizaría la instrucción siguiente:

unapersona = new persona("Pablo", 23, 176, 75);

6.3 OBJETOS INCORPORADOS

Jerarquía de los objetos

Cuando se carga un documento en el NetScape Navigator se crea automáticamente una nueva colección de objetos para
describir el documento actual y la ventana del navegador. Estos objetos se presentan en la siguiente jerarquía:

• objeto window. Contiene propiedades que se aplican a toda la ventana. Si se están utilizando frames (tramas)


habrá un objeto window para cada ventana de trama en la página.


objeto location . Contiene propiedades para el actual URL de la página.


objeto history . Contiene propiedades para cualquier URL visitada anteriormente.
objeto document. Contiene propiedades para el contenido de la página actual.

El objeto document contiene también otros objetos:



forms y los elementos de formato de una página


links existentes en la página
anchors (elementos anclados en la página)

6.3.1 El objeto window

Entre las propiedades más útiles del objeto window se encuentran las tramas o frames y el status o estado.

• El uso de la propiedad de frames le permite acceder a los documentos individuales del juego de tramas en
JavaScript. Por ejemplo, un documento tiene dos frames (frame1 y frame2), para poner en rojo el color de fondo
de frame1 se utilizaría la instrucción:

[Link]['frame1'].[Link] = "red ";

La instrucción anterior podría también escribirse omitiendo window.

• La propiedad status del objeto window le permite visualizar un mensaje en la barra de estado de la ventana del
navegador. La instrucción [Link] = "Programar en JavaScript es divertido!"; situaría en la barra de estado
la frase "Programar en JavaScript es divertido"!
108
El objeto window contiene también algunos métodos útiles para interaccionar con el usuario.

• El método alert ( ) hace aparecer una ventana con un mensaje y el usuario podrá entonces pulsar OK para
continuar.

[Link] ("Error");

• El método confirm ( ) se utiliza si lo que se busca es algún tipo de confirmación del usuario.

[Link] ("Está seguro de que quiere salir?");

• El método open se utiliza para que los documentos HTML puedan abrir sus propias ventanas y escribir de forma
inmediata contenidos para ellas. windowVar = [Link] ("URL", "windowName", ["windowFeatures"] )

6.3.2 El objeto document

Con el objeto document un programa en JavaScript puede generar de forma inmediata código HTML, así como
reaccionar a la entrada o a la salida del usuario en la página. Algunas de las propiedades importantes del objeto
document son:

• alinkColor, linkColor, vlinkColor (enlaces de colores).[Link] = "red ";[Link] =


"purple"[Link] = "blue"


bgColor, fgColor (los colores del documento)
remitente del documento wherefrom = [Link];

Algunos de los métodos más interesantes del objeto document son los siguientes:



clear
close y open. Permiten borrar contenidos completos de un documento, de manera que se puede empezar a


escribir en ellos sin tener en la ventana más información que la que escriba en ella.
write y writeln. Permiten generar texto en el documento actual. Writeln salta de línea después de generar el texto.

6.3.3 El objeto form

Este objeto permite denominar formularios, modificar, crear o comprobar el valor de sus campos antes de presentarlo al
servidor.

• La propiedad forms permite acceder a todos los campos de información del formulario desde los formularios
actuales de la página. Por ejemplo, tenemos el formulario miform con dos campos de texto field1 y field2. Para
acceder a los valores de esos campos se haría:

valor1 = [Link][0].[Link];

valor2 = [Link][0].[Link];

La indicación cero en la propiedad forms indica que es el primer formulario del documento.

También se puede acceder a un formulario por el nombre:

valor1 = [Link]

valor2 = [Link]

El objeto form contiene un objeto para cada campo de la forma a que se refiere: checkbox, hidden, radio, reset,submit,
text y textarea. Todos estos objetos tienen las propiedades name y [Link] tipos de campo radio y checkbox contienen
una propiedad checked para determinar si el elemento form ha sido o no comprobado.

• El objeto form sólo tiene un método submit. Por ejemplo

<FORM ACTION="[Link]"></FORM>

el método submit del objeto form haría que el navegador sometiera el formulario al programa [Link].
109
6.3.4 El objeto Anchor

Descripción: Un anchor es una parte de texto que define una etiqueta (target) para ser referenciada desde otro sitio o un
enlace de hipertexto.

Sintaxis: Para definir un anchor se utiliza la notación HTML:

<A [HREF=URLdestino] NAME="nombreAnchor" [TARGET="nombreVentana"]> texto </A>

HREF=URLdestino identifica el URL destino de pulsar este anchor. Solo se utiliza si en anchor es un enlace.

NAME="nombreAnchor" nombre que le damos al anchor para usarlo como target.

TARGET="nombreVentana" especifica donde se cargara el documento al que se enlaza, solo es útil si es un enlace.

Propiedades: No tiene

Métodos: No tiene

Manejadores de eventos: No tiene

Objeto propiedad de: document

Ejemplo 1. Definición de un anchor target.

<A NAME"introduccion"><H3> Bienvenido a JavaScript </H3></A>

Ejemplo 2. Definición de un enlace al target anterior. Suponemos que el target anterior lo habíamos definido en el archivo
[Link].

<A HREF="[Link]#introduccion"> Introducción </A>

El array anchors.

Todos los anchors que creamos se almacenan en el array anchors del objeto documento y si además estos anchors son
enlaces, también se guardan en el array links del mismo document.

Podemos referirnos a cualquier anchor utilizando el array anchors:

[Link][indice] indice es un entero

[Link] devuelve el número de anchors

Pero hay una restricción y es que los elementos de anchors solo se pueden leer.

6.3.5 El objeto button.

Descripción: Un objeto button es un botón que forma parte de un form y debe ser definido dentro del mismo. Podemos
definir una acción ante la pulsación del botón y lo haremos a través del atributo onClick.

Sintaxis:

<INPUT TYPE="button" NAME="nombreB" VALUE="textoBoton" [onClick="manejador"]>

NAME="nombreB" nombre que le asignamos al botón para identificarlo posteriormente para su utilización.

VALUE="textoBoton" etiqueta de texto que aparece en el botón.

Propiedades: name y value

Métodos: click

Manejadores de eventos: onClick


110
Objeto propiedad de: form

Ejemplo 1. Definición de un botón que activa un calculo.

<INPUT TYPE="button" VALUE="Calculo" NAME="botonC" onClick=play([Link])">

6.3.6 El objeto checkbox.

Descripción: Se trata de un conmutador que puede activar/desactivar un valor. Pertenece a un formulario y debe ser
definido dentro de este.

Sintaxis:

<INPUT TYPE="checkbox" NAME="nombreC" VALUE="valorC" [CHECKED]

[onClick="manejador"]> texto

NAME=nombreC especifica el nombre del botón.

VALUE=valorC especifica un valor que es devuelto cuando el chekbox se selecciona.

CHECKED si aparece, el valor por defecto es seleccionado.

Propiedades:

name
value
checked
defaultChecked
Métodos: click
Manejadores de eventos: onClick
Objeto propiedad de: form

Ejemplo 1. Definición de 3 checkboxes.

<INPUT TYPE="checkbox" NAME="check1" CHECKED> Uno

<INPUT TYPE="checkbox" NAME="check2"> Dos

<INPUT TYPE="checkbox" NAME="check3"> Tres

6.4 Otros objetos incorporados

• El objeto string. Se crea el crear una variable, a la que asigna un valor de cadena. Por ejemplo, la instrucción

astring = "Hola"

crearía un objeto de cadena denominado [Link] literales de cadena son también objetos de cadena.

• El objeto Math. Contiene funciones y métodos matemáticos que el programa en JavaScript puede llamar
directamente. Algunos de estos métodos son: sin, tan, random y pow. Por ejemplo:

resultado = [Link](1.2645);

• El objeto Date. Se utiliza para trabajar con fechas y horas.

Para crear un nuevo objeto Date se utiliza la sintaxis:

datevar = new Date(parameters);

Los parámetros pueden ser :

1. Nada. Crea la fecha y hora actuales.


111
2. Una cadena con el formato "Mes,día,año, hora:minutos:segundos". Si se omiten las horas, los minutos y los segundos
se fijarán a cero.

3. Un juego de valores enteros para año, mes y día o para año, mes, día, hora, minutos y segundos. Ejemplo:

fech1 = new Date(97,0,12)

fech2 = new Date(97,0,12,11,44,8)

En JavaScript los segundos, minutos, horas, días y meses comienzan por el 0, no por el 1. Por ello el mes de enero se
designará con un 0.

La función más útil que incorpora JavaScript es eval. Si toma como parámetro una expresión numérica, se evalúa y da un
resultado. Si toma como parámetro una cadena, la convierte en expresión numérica y da el resultado. Esta función tiene
la ventaja de aceptar expresiones de formularios y evaluarlos directamente.

7.- FUNCIONES

Las funciones son uno de los pilares sobre los que se apoya JavaScript Una función es un conjunto de sentencias o
procedimiento que realizara unas operaciones adecuadas haciendo uso de determinadas variables y propiedades.

Veamos las partes de la definición de una función:

1. Nombre de la función.

2. Lista de parámetros de entrada (entre paréntesis y separados por ',').

3. Conjunto de sentencias en JavaScript encerradas entre llaves: { } .

Los parámetros se le pasan a las funciones siempre por valor, es decir, si la función modifica el valor que se le pasa esto
no afecta a la variable global al terminar la ejecución de la función.

Si nos interesa que la función devuelva algún valor debe haber una sentencia con la palabra reservada return seguida del
valor a devolver.

Ya comentamos que es muy útil definir las funciones en la cabecera del documento HTML para asegurarnos de que se
cargan antes de cualquier acción del usuario.

La definición de una función no implica su ejecución. La ejecución se hará al hacer una llamada a dicha función. Los
parámetros de entrada a una función pueden ser cualquier tipo de variable incluso objetos enteros. Podemos definir
funciones recursivas pero OJO con ellas.

7.1 Creación y llamada de funciones

La sintaxis de la instrucción function es la siguiente:

function nombre([param] [,param] [...,param]){


instrucciones
}

Cada función tiene su propio y único nombre así como una lista de parámetros opcionales. Mientras se esté usando
Netscape Navigator, se puede llamar a cualquier función que haya sido definida en la página actual. Para utilizar
funciones en el código HTML es mejor ubicarlas en la porción <HEAD>..</HEAD> de la página. Así cuando se cargue la
página, todas las funciones que puedan necesitarse para esta página estarán ya cargadas. Una vez completadas, las
funciones pueden dar valores como resultado empleando la instrucción return.

Las funciones no pueden anidarse.

112
He aquí un ejemplo de declaración de una función:

function centrar_cadena (msg) {


[Link]("<CENTER>" + msg + "</CENTER>");
}

Y esta es la forma de llamar a la función:

<SCRIPT LANGUAGE="JavaScript">
centrar_cadena("Esto es una llamada a una función");
</SCRIPT>

También se puede llamar a una función a través de un objeto, utilizando los métodos de ese objeto. Los métodos de
JavaScript son funciones asociadas a un objeto. La definición de una función como un método de objeto se realiza de la
misma forma que se define una propiedad normal, pero esta vez se usa un nombre de función en lugar de emplear una
variable literal o de valor. Del mismo modo para llamar a una función definida como parte de un objeto se emplea el
mismo procedimiento que si se estuviera accediendo a una propiedad del objeto.

Las funciones pueden definirse en cualquier parte del documento pero es aconsejable declararlas en la cabecera; de
esta forma se garantiza que todas las funciones se cargen antes se que el usuario tenga la oportunidad de realizar
ninguna acción en la que llame a una de ellas.

El siguiente ejemplo define una función en la cabecera (HEAD) de un documento y la llama en el cuerpo (BODY).

<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- Oculto el código a los browsers que no entiendan "JavaScript"
function cuadrado(numero) {
return numero * numero
}
// Final de la ocultación-->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>
[Link]("La función retorna ", cuadrado(5), ".")
</SCRIPT>
</BODY>

La función cuadrado tiene un argumento, llamado numero. La función consta de una sentencia return numero * numero
que indica que ha de retornar el cuadrado del número pasado por parámetro.

En el cuerpo del documento hacemos una llamada a la función definida mediante la sentencia:

cuadrado(5)

La función ejecuta la sentencia numero * numero como 5 * 5 y retorna el valor 25, el script muestra el siguiente resultado
en pantalla:

La función retorna 25.

7.2 Uso de funciones predefinidas.

JavaScript dispone de varias funciones predefinidas. Estas son:

7.2.1 La función eval.

Esta función toma un string como argumento que puede ser:

1. Un string representando una expresión JavaScript.

2. Una Sentencia.

3. Una secuencia de sentencias.

113
Este string puede contener variables y propiedades de objetos ya existentes.

Esta función es útil para evaluar un string representando una expresion aritmética. Veamos un ejemplo con un formulario
con un campo de texto de entrada de datos en el que introduciremos una expresion, un botón de calculo y un campo de
texto de salida de resultados:

<SCRIPT LANGUAGE="JavaScript">
function calculo(form) {
[Link] = eval([Link])
}
</SCRIPT>
<FORM>
Introduce una expresión:
<INPUT TYPE="text" NAME="expr" SIZE=20 >
<INPUT TYPE="button" VALUE="Calculo" onClick="calculo([Link])">
<BR>
Resultado:
<INPUT TYPE="text" NAME="result" SIZE=20 >
<BR>
</FORM>

Otro ejemplo puede ser el definir la siguiente función:

function setValor(miobj, mivalor) {


eval("[Link][0]." + miobj + ".value") = mivalor;
}

Podemos llamar a esta función para que ponga el valor 100 en el campo de texto text1:

setValor(text1, 100)

7.2.2 Las funciones parseInt y parseFloat.

A estas funciones se le pasa un string y lo convierten a un valor numérico:

parseFloat convierte el string en un número real en coma flotante, va a entender dentro del string los números del 0 al 9,
los signos '+' y '-', el punto decimal '.' y el exponente (e o E). Si encuentra otro carácter que no sea uno de los
mencionados, convierte lo que hasta aquí tenga ignorando lo restante. Y si el primer carácter ya no es uno de los validos
devuelve NaN.

parseInt convierte el string en un entero de la base especificada (base 10, 16 u 8). Caso de encontrarse con caracteres
que no sean números opera igual que hacia parseFloat.

8.- MÉTODOS.

Un método es una función pero esta asociada a un objeto, es particular a los objetos del tipo que la defina.

Los métodos se definen en el mismo sitio que las funciones y de la misma forma para luego asociarlo a un objeto de la
siguiente forma:

[Link] = nombreFuncion

, donde nombreFuncion es la función que queremos que sea método, nombremetodo es el nombre que le damos al
método y objeto el objeto al que asociamos el método.

Para ahora hacer llamadas al método haremos uso de la dot-notation:

[Link](param1, param2, ...);

Al igual que en otros lenguajes orientados al objeto como C++ o Java, el lenguaje JavaScript dispone también de la
palabra reservada 'this' para hacer referencia al objeto actual. Suele usarse cuando pasamos objetos como parámetros a
funciones y dentro de estas para acceder a propiedades de los objetos.

Las funciones son unos de los bloques fundamentales en JavaScript. Una función es un procedimiento escrito en
JavaScript, es decir, un conjunto de sentencias que realizan una determinada tarea.
114
Una función consta de las siguientes partes básicas:



Un nombre de función.


Los parámetros pasados a la función separados por comas y entre paréntesis.
Marcar el inicio y el final de la función entre llaves ({})

Es importante entender la diferencia entre definir una función y llamarla.

Definir una función es simplemente especificar su nombre y definir que acciones realizará en el momento en que sea
invocada. Para ello se emplea la palabra reservada function.

8.1 El método alert.

Descripción: Representa un cuadro de dialogo en el que se escribe un mensaje de tipo informativo o de aviso hacia el
usuario y que además tiene un botón de aceptación (OK).

Sintaxis:

alert("mensaje")
[Link]("mensaje")
, mensaje es un string o propiedad de un objeto existente.
Método del objeto: window

8.2 El método anchor.

Descripción: Crea un anchor o ancla en un documento HTML que será utilizado como enlace o target hipertexto.
Los anchors creados con este método también forman parte del array anchors.

Sintaxis:

[Link](nombre)
, texto es un string o propiedad de un objeto existente. Texto a ver.
, nombre es un string o propiedad de un objeto existente (es el NAME de la etiqueta <A>).
Método del objeto: string

Ejemplo: Los dos grupos de sentencias siguientes producen el mismo resultado:

var texto = "Contenido desde aqui"


ventana1 = [Link]("","nombreVentana")
[Link]([Link]("nombreAnchor"))
[Link]()
<A NAME="nombreAnchor"> Contenido desde aqui </A>

8.3 El método back.

Descripción: Carga el URL anterior al actual.

Sintaxis:

[Link]()
Método del objeto: history

8.4 El método big.

Descripción: Representa un string en un tamaño de fuente grande, igual que si hiciéramos uso de la etiqueta <BIG>. Se
usa dentro de los métodos write o writeln.

Sintaxis:

[Link]()

, texto es un string o propiedad de un objeto existente.


Método del objeto: string

115
8.5 El método blink.

Descripción: Equivale a utilizar la etiqueta <BLINK> HTML. El resultado es producir que el string sobre el que se aplica
parpadee al visualizarse en el navegador.

Sintaxis:

[Link]()
, texto es un string o propiedad de un objeto existente.
Método del objeto: string

8.6 El método blur.

Descripción: Quita el focus del objeto que lo llama.

Sintaxis:

[Link]()
nombreObjeto es el nombre asignado en NAME a un objeto de tipo: password, select, text o textarea.
Método del objeto: pasword, select, text y textarea

8.7 El método bold.

Descripción: Da el atributo negrita a un string. Equivale a la etiqueta <B> utilizada directamente desde HTML.

Sintaxis:

[Link]()
, texto es un string o propiedad de un objeto existente.
Método del objeto: string

8.8 El método clear.

Descripción: Borra el documento en una ventana. Suele utilizarse seguido del método [Link]() para cerrar el
documento.

Sintaxis:

[Link]()
Método del objeto: document

8.9 El método clearTimeout.

Descripción: Anula un timeout que antes se había fijado con el método setTmeout.

Sintaxis:

clearTimeout(identificadorTimeout)
, identificadorTimeout es el nombre del timeout que anulamos.
Método del objeto: frame y window

8.10 El método click.

Descripción: Equivale a la pulsación del botón izquierdo del ratón.

Sintaxis:

[Link]()
, nombreObjeto es el nombre asignado en NAME a un objeto de tipo: button, checkbox, radio reset o submit.

Según el elemento, el click produce un evento u otro:

Para objetos button, submit o reset equivale a la pulsación del botón.

Para un objeto radio, equivale a seleccionar ese objeto. 116


Para un objeto checkbox, produce la selección de esa opción.

Método del objeto: button, checkbox, radio reset y submit

8.11 El método confirm.

Descripción: Abre una ventana de confirmación con un mensaje y con dos botones: uno de confirmación (OK) y otro de
cancelación (cancel) .

Sintaxis:

confirm("mensaje")
[Link]("mensaje")
, mensaje es un string o propiedad de un objeto existente.
Método del objeto: window

8.12 La función eval.

Descripción: Esta función evalúa el string de entrada a un valor. Es una función predefinida en JavaScript y no pertenece
a ningún objeto. No hace falta llamar a eval para hacer simplemente una expresión aritmética.

Sintaxis:

eval(texto)
, texto representa un string que será una expresión JavaScript, una sentencia o un bloque de sentencias.

8.13 El método fixed.

Descripción: Da el atributo de maquina de escribir a un string. Equivale a la etiqueta <TT> de HTML.

Sintaxis:

[Link]()
, texto es un string o propiedad de un objeto ya existente.
Método del objeto: string

8.14 El método focus.

Descripción: Produce que el objeto que lo llama reciba el focus.

Sintaxis:

[Link]()
, nombreObjeto es el nombre asignado en NAME a un objeto de tipo: pasword, select, text o textarea.
Método del objeto: pasword, select, text y textarea

8.15 El método fontcolor.

Descripción: Da el atributo de un determinado color de fuente a un string. Se utilizara este método junto con los métodos
write y writeln.

Sintaxis:

[Link](color)
, texto es un string o propiedad de un objeto ya existente.
, donde color es un color valido: un string que represente un color predefinido (Ver Apéndice I) o una expresión con el
triplete RGB ("rrggbb").
Método del objeto: string

8.16 El método fontsize.

Descripción: Da el atributo de un determinado tamaño de fuente a un string. Se utilizara este método junto con los
métodos write y writeln. Este método equivale al uso de la etiqueta <FONTSIZE=tamaño>.

117
Sintaxis:

[Link](tamaño)
, texto es un string o propiedad de un objeto ya existente.
, tamaño es el tamaño de la fuente que queremos, entre 1 y 7.
Método del objeto: string

8.17 El método forward.

Descripción: Carga el URL siguiente en la lista de history. Equivale a hacer uso del método go de la siguiente forma:
[Link](1) .

Sintaxis:

[Link]()
Método del objeto: history

8.18 El método getDate.

Descripción: Devuelve el día del mes del objeto Date especificado. Será un valor comprendido entre 1 y 31.

Sintaxis:

[Link]()
Método del objeto: Date

8.19 El método getDay.

Descripción: Devuelve el día de la semana del objeto Date especificado. Será un valor comprendido entre 0 (Domingo) y
6 (Sabado).

Sintaxis:

[Link]()
Método del objeto: Date

8.20 El método getHours.

Descripción: Devuelve la hora de un objeto Date especificado. El valor de salida será un número entre 0 y 23.

Sintaxis:

[Link]()
Método del objeto: Date

8.21 El método getMinutes.

Descripción: Devuelve los minutos de un objeto Date como un valor entre 0 y 59.

Sintaxis:

[Link]()
Método del objeto: Date

8.22 El método getMonth.

Descripción: Devuelve el mes de un objeto Date. La salida es un valor entero entre 0 (Enero) y 11 (Diciembre).

Sintaxis:

[Link]()
Método del objeto: Date

118
8.23 El método getSeconds.

Descripción: Devuelve los segundos entre 0 y 59 de un objeto Date.

Sintaxis:

[Link]()
Método del objeto: Date

8.24 El método getTime.

Descripción: Devuelve el valor numérico correspondiente al objeto Date que lo llama, valor de salida va referido al 1 de
Enero de 1970 a las [Link] y es el valor en milisegundos, con signo positivo si la fecha es posterior a la de referencia y
con signo negativo si la fecha es antes a esta.

Sintaxis:

[Link]()
Método del objeto: Date

8.25 El método getTimezoneOffset.

Descripción: Devuelve el offset en minutos entre la hora del objeto Date que llama a este método y la hora GMT.

Sintaxis:

[Link]()
Método del objeto: Date

8.26 El método getYear.

Descripción: Devuelve el año del objeto Date que lo llama. El valor de salida es el año menos 1900.

Sintaxis:

[Link]()
Método del objeto: Date

8.27 El método go.

Descripción: Carga el URL indicado en el índice que se le pasa como argumento respecto del documento actual. Utiliza
para ello la lista del objeto history. También podemos indicarle el URL directamente.

Sintaxis:

[Link](indice | "locationDestino")
, indice indica si nos movemos hacia delante (indice positivo) o hacia atrás (indice negativo) en la lista de documentos.
, locationDestino es parte o el total del URL al que se quiere ir.
Método del objeto: history

8.28 El método indexOf.

Descripción: Devuelve el índice de un determinado valor de un string. Los argumentos de entrada son el valor cuyo
índice queremos conocer y optativamente la posición a partir de la cual queremos buscar que por defecto es cero y que
podrá tomar un valor entre 0 y la longitud del string menos 1. Si no encuentra el carácter, devuelve -1.

Sintaxis:

[Link](valor [,indice])
, texto es un string o propiedad de un objeto ya existente.
Método del objeto: string

119
8.29 El método link.

Descripción: Crea un enlace hipertexto para saltar a otro URL. Se utilizara este método con los métodos write o writeln
para representar un enlace hipertexto en un document.

Sintaxis:

[Link](atributoHREF)
, textoEnlace es un string o propiedad de un objeto ya existente. Es el texto que queremos que el usuario vea para
pulsar.
, atributoHREF es un string o propiedad de un objeto ya existente. Es el URL representando el contenido de HREF en un
enlace usando <A>.
Método del objeto: string

Ejemplo: Los dos grupos de sentencias siguientes producen el mismo resultado:

var textoEnlace = "E.T.S.I.T"


var atributoURL = "[Link]
[Link]()
[Link]("Click para ir a " + [Link](atributoURL))
[Link]()

8.30 El método pow.

Descripción: Realiza la potencia dada la base y el exponente.

Sintaxis:

[Link](base, exponente)
, donde base y exponente son dos valores numéricos.
Método del objeto: Math

8.31 El método prompt.

Descripción: Este método representa una caja de dialogo con un mensaje y un campo de entrada.

Sintaxis:

prompt(mensaje [,entradaInicial])
mensaje es un string indicando el mensaje.
entradaInicial es un string o entero dando un valor inicial al campo de entrada. Si no se especifica este valor, la caja de
dialogo muestra el valor <undefined>.
Método del objeto: window

8.32 El método random.

Descripción: Devuelve un valor aleatorio entre 0 y 1. Este método solo es utilizable en plataformas Unix.

Sintaxis:

[Link]()
Método del objeto: Math

8.33 El método round.

Descripción: Redondea el número de entrada al entero mas próximo. Si el número tiene como valor decimal '.5',
redondea al entero superior.

Sintaxis:

[Link](numero)
Método del objeto: Math

120
8.34 El método select.

Descripción: Selecciona el elemento que lo llama. Este puede ser un objeto password, text o textarea.

Sintaxis:

[Link]()
, nombreObjeto es el nombre asignado en NAME a un objeto de tipo: password, select, text o textarea.
Método del objeto: password, select, text y textarea

8.35 El método setDate.

Descripción: Fija el día del mes del objeto Date especificado. Será un valor comprendido entre 1 y 31.

Sintaxis:

[Link](numero)
Método del objeto: Date

8.36 El método setHours.

Descripción: Fija la hora de un objeto Date especificado. El valor de entrada será un número entre 0 y 23.

Sintaxis:

[Link](numero)
Método del objeto: Date

8.37 El método setMinutes.

Descripción: Fija los minutos de un objeto Date como un valor entre 0 y 59.

Sintaxis:

[Link](numero)
Método del objeto: Date

8.38 El método setMonth.

Descripción: Fija el mes de un objeto Date. La entrada es un valor entero entre 0 (Enero) y 11 (Diciembre).

Sintaxis:

[Link](numero)
Método del objeto: Date

8.39 El método setSeconds.

Descripción: Fija los segundos entre 0 y 59 de un objeto Date.

Sintaxis:

[Link](numero)
Método del objeto: Date

8.40 El método setTime.

Descripción: Fija el valor numérico correspondiente al objeto Date que lo llama, el valor de entrada va referido al 1 de
Enero de 1970 a las [Link] y es el valor en milisegundos, con signo positivo si la fecha es posterior a la de referencia y
con signo negativo si la fecha es antes a esta.

121
Sintaxis:

[Link](numero)
Método del objeto: Date

8.41 El método setTimeout.

Descripción: Evalúa una expresión después de hacer una pausa de un cierto tiempo de milisegundos.

Sintaxis:

identificadorTimeout = setTimeout(expr, milseg)


identificadorTimeout es un identificador que se usa solo por si nos interesa cancelar la evaluación usando el método
clearTimeout.
expr es un string, una expresión a evaluar.
milseg es el valor numérico o string en milisegundos a esperar.
Método del objeto: frame y window

8.42 El método setYear.

Descripción: Fija el año del objeto Date que lo llama. El valor de entrada será un entero mayor a 1900.

Sintaxis:

[Link](numero)
Método del objeto: Date

9.- EVENTOS EN JAVASCRIPT

La mayoria de las acciones de programa (al tratar con una aplicación de WWW) deben ser activadas por eventos. Los
eventos son acciones que ocurren como resultado de alguna acción realizada por el usuario. Un click de ratón, la
focalización de un campo en un formulario, modificar un campo de texto o mover el cursor son ejemplos de eventos (ver
tabla).

La segunda forma de incrustación de JavaScript en documentos HTML consiste en la definición de manejadores de


eventos en las etiquetas. La sintaxis general es:

<ETIQUETA

manejador_evento = "Código JavaScript">

Donde ETIQUETA es cualquier etiqueta HTML que pueda relacionarse con un evento y manejador_evento, el evento en
sí.

Cada evento es es reconocido por ciertos objetos, etiquetas HTML, como son:



Focalización, desfocalización y edición: campos de texto, textareas y selections.


Clicks: buttons,radio buttons, checkboxes, submit buttons, reset buttons, y enlaces.


Selección: text fields, textareas.
Señalización: enlaces.

A partir de la versión 3.0 de Netscape, onBlur y onFocus se aplican tambien a ventanas y framesets.

El nombre de un manejador de eventos es el nombre del evento,precedido por "on.". Por ejemplo, el manejador de
eventos para focus en onFocus.

122
La siguiente tabla muestra los nueve manipuladores de eventos de JavaScript.

Manipulador de
Evento Se da cuando
evento
abort El usuario interrumpe la carga de una imagen onAbort
blur El usuario retira el foco de entrada del elemento form onBlur
click El usuario pulsa el ratón sobre el elemento form o sobre un enlace onClick
El usuario modifica el valor del texto, de un área del texto, o selecciona un
change onChange
elemento
error La carga de un documento o imagen produce un error. onError
focus El usuario sitúa el foco de entrada en el elemento form onFocus
unload El usuario sale de la página onUnload
load El usuario carga la página en el Navigator onLoad
mouseover El usuario mueve el puntero del ratón sobre un enlace onMouseOver
mouseout El usuario saca el ratón de un área (imagemap) o enlace onMouseOut
select El usuario selecciona elementos form como campo de entrada (input) onSelect
submit El usuario envia un formulario onSubmit
unload El usuario abandona la página onUnload

• El manipulador de eventos OnClick El evento click se produce cuando,en un formulario, un objeto susceptible
de ser pulsado es pulsado por el usario. El manipulador de eventos JavaScript puede llamar una función, que ha
de existir en el documento actual, o ejecutar código JavaScript [Link] ejemplo:

<input type="button" name="Pulsame" onClick="alert('Me has pulsado!');">

La instrucción anterior abrirá una ventana de aviso cuando el usuario pulse el botón.

• El manipulador de eventos onSubmit Se produce cuando el usuario envia un formulario. El manipulador de


eventos OnSubmit puede llamar una función o ejecutar código JavaScript [Link] ejemplo

<form name="miform" action="[Link]" onSubmit="confirmSubmission()">

La anterior instrucción llama a a la función confirmSubmission para comprobar los valores de los campos antes de llamar
al URL designado en el atributo action.

• El manipulador de eventos onChange Se produce cuando un campo select, text o textarea deja de ser
enfocado y se ha modificado su valor. EL elemento onChange puede llamar a una función o ejecutar código
JavaScript presente. Ejemplo:

<input name="phone" onChange="checkPhone([Link])">;

Esta instrucción llama a la función checkPhone cuando el usuario deja de enfocar el campo de entrada (input) de texto y
se mueve a otro campo. Esto permite preprocesar instantáneamente la información y comprobar el valor del campo con
anterioridad al envio del formulario.

• El manipulador de eventos onLoad Se produce cuando Netscape acaba de cargar una ventana o todas las
tramas de un <FRAMESET>.Puede llamar a una función o ejecutar código JavaScript [Link]

<body onLoad="alert('Bienvenido a mi página')">

• El manipulador de eventos onUnload Se produce cuando el usuario abandona la página. Por ejemplo

<body onUnload="alert('Gracias por tu visita!')"

123
10. APLICACIONES JAVASCRIPT

¿QUE PODEMOS HACER CON JAVASCRIPT?

Con JavaScript podemos crear un gran numero de aplicaciones distintas gracias a la amplia coleccion de herramientas
de que disponemos, con dichas herramientas conseguirá dotar a sus paginas Web de interactividad.

Entre las posibilidades que tenemos esta la de devolver al usuario una retroalimentación instantanea cuando el usuario
se mueve por encima de un objeto, entra en una nueva sección o incluso al abandonar su ubicación.

Volver al Indice

124
Tu t or ia l de PH P

• I nt roducción
• I nst alación
• Lo Básico
• Variables
• Operadores
• Est ruct uras de Cont rol
• Funciones
• Ej em plos Út iles

I N TROD UCCI ON
PHP es una t ecnologia del lado del servidor, que funciona em bebida ( es decir, incrust ada) dent ro del codigo HTML de una
pagina, dándole m ayor dinam ism o a la m ism a, con acceso a bases de dat os, creacion de foros, libros de visit a, rot acion de
banners, et c.
Su sint axis es heredada de C/ Java y posee gran cant idad de funciones que perm it en realizar t odas las acciones que soport a
el PHP.

Est a t ecnologia inició com o un pasat iem po de Rasm us Lerdorf pero hoy en dia, gracias a ser grat is, cuent a con m iles de
adept os y act ualizaciones m uy const ant es. Muchas em presas se han fij ado en el pot encial de PHP, y han dado su apoyo a
est a, com o es el caso de Zend, uno de los principales cont ribuyent es para el lanzam ient o de la version 4 de est e lenguaj e.

La form a m as facil de averiguar cuando una pagina es o no PHP, es verificando su ext ensión, que puede ser generalm ent e
.php, .pht m l, .php3, .php4

PHP est á siendo explot ado con gran provecho alrededor de t oda la red... ¿querrás perdert e est e t ren?

Si no es así, cont inua con est e t ut orial donde descubrirás cóm o inst alar el soport e PHP y m ySQL en t u Windows, usando el
servidor Apache. Luego conocerás los fundam ent os del lenguaj e y para t erm inar aplicarem os lo aprendido con ej em plos de
ut ilidad.

I N STALACI ON
Est e es un pequeño m anual de inst rucción para inst alar y configurar un pequeño servidor Apache con soport e para PHP4 y
Bases de Dat os MySQL baj o el sist em a operat ivo Windows 32. En ningún m om ent o se pret ende ofrecer un com plet o m anual
de configuración de un Servidor Seguro Web, m i int ención es sólo ofrecer a los usuarios que se inician en la program ación de
webs dinám icas baj o est os sist em as, una guía para que no pasen por lo que pasé yo t rat ando de em pezar en est e cam po y
cuando aún no exist ía suficient e m at erial bibliográfico.

Ba j a n do
Lo prim ero que necesit am os hacer es baj arnos las aplicaciones del int ernet , sólo t ienes que hacer click sobre los enlaces que
t e ofrezco para poder descargar las versiones desde sus servidores originales.

• Apache 1.3.14
• PHP 4
• MySQL 3.23

Est as versiones son lo suficient em ent e est ables para poder t rabaj ar, así que no t e preocupes por las nuevas versiones de
est os program as, luego de que est és m ás expert o en el m anej o de est os program as podrás dart e el luj o de act ualizart e con
las nuevas versiones.

125
I nst alando...

APACH E
La inst alación del program a Apache es m uy sim ple ya que t rae int egrado un program a inst alador, por lo que t e sugiero que
no m odifiques los valores que t rae por defect o durant e la inst alación. Si lo haz hecho bien el program a debió haber quedado
en C: \ Archivos de Program as\ Apache Group\ Apache\ y con la opción " TI PI CAL" .

PH P 4
La inst alación del Apache es m ás sim ple aún, debes descom prim ir el archivo php- 4. 0.4pl1- [Link] en la carpet a C: \ php,
luego t om as el archivo [Link]- dist y lo renom bre a [Link] y eso es t odo por ahora.

m ySQL
Para la inst alación del MySQL deberás descom prim ir el archiv o m ysql- 3.23.36- [Link] en una carpet a t em poral, por ej em plo:
C: \ t em p, luego ej ecut as el program a set [Link] y sigues las inst rucciones de inst alación que t rae por defect o. Si lo haz hecho
bien el program a debió haber quedado en C: \ m ysql y con la opción " TI PI CAL" .

Configurando...

APACH E
Aquí se pone buena la cosa, busca el archivo htt [Link] que est á en la siguient e dirección:

C: \ Archivos de Program as\ Apache Group\ Apache\ Conf\ ht t [Link], ábrelo con un edit or de t ext o com o el not epad del
Windows para poder edit arlo.

Busca dent ro de est e archivo la opción # ServerNam e [Link] .nam e y sust it uyes por est o: ServerNam e ht t p: / /

Luego buscas la opción Docum ent Root " C: / Archivos de Program as/ Apache Group/ Apache/ ht docs" y la sust it uyes por est o
Docum ent Root " C: / m is webs"

De igual form a buscas la opción < Direct ory " C: / Archivos de Program as/ Apache Group/ Apache/ ht docs" y sust it uyes por est o
< Direct ory " C: / m is webs"

Es de hacer not ar que est as dos últ im as opciones se refieren a la localización de la carpet a que cont endrá las webs a ser
" servidas" por vía ht t p. Así que ust ed puede cam biar el nom bre y la ubicación de la carpet a que cont endrá sus webs.

Busca ahora la opción Script Alias / cgi- bin/ " C: / Archivos de Program as/ Apache Group/ Apache/ cgi- bin/ " y debaj o de est a le
agrega la siguient e línea: Script Alias / php/ " C: / php/ " fíj ese que aquí se le dice al Apache donde encont rará al int erpret e de
PHP para CGI .

Busque ahora las siguient es líneas:

# AddType applicat ion/ x- ht t pd- php .php


# AddType applicat ion/ x- ht t pd- php- source .phps y sust it úyalas por las siguient es:

AddType applicat ion/ x- ht t pd- php .php


AddType applicat ion/ x- ht t pd- php .php3
AddType applicat ion/ x- ht t pd- php .pht m l
AddType applicat ion/ x- ht t pd- php- source .phps

Not e ust ed que en est e punt o le indicam os al Apache cuales son las ext ensiones que deberá int erpret ar com o program as de
PHP, en est e caso ust ed podrá usar las ext ensiones .php, .php3, .pht m l y phps, est e últ im o es para ofrecer el código fuent e
de un script sin int erpret arlo com o t al.

Luego localiza la sección de # Form at : Act ion handler- nam e / cgi- script / locat ion y debaj o de esa línea escribe la siguient e
línea: Act ion applicat ion/ x- ht t pd- php " / php/ [Link]", not e que en est e punt o le decim os al Apache dónde se encuent ra el
archivo ej ecut able del int érpret e PHP.

Y por últ im o buscam os la línea Direct oryI ndex [Link] m l y la sust it uim os por est a ot ra línea:

Direct oryI ndex [Link] m l [Link] m [Link] index.php3 [Link] m l

Not e ust ed que en est a línea le decim os al Apache cuales son las ext ensiones que debe aut oint erpret ar al abrir una carpet a
web.

126
Configurando...

PH P
Abrim os con un edit or de t ext o el archivo [Link] y verificam os que t enga la siguient e línea:

ext ension_dir = ./ aquí le decim os al PHP dónde se encuent ran ubicadas las ext ensiones de librerías .dll en est e caso vem os
que deben encont rarse en el direct orio raíz del PHP.

Luego si lo deseam os buscam os la línea ; ext ension= php_gd.dll y le quit am os el ; que t iene al com ienzo, así habilit arem os la
librería de m anipulación de gráficos dinám icos que ofrece una prest aciones m uy int eresant es. Sólo rest a ubicar el archivo
php_gd.dll y copiarlo al direct orio raíz del PHP.

Y por últ im o hacem os una copia del archivo [Link] dent ro del direct orio Windows que por lo general es C: \ Windows

Configurando...

M ySQL
A est e program a no hay m ucho que configurarle, sólo debem os asignarnos una clave al usuario root que hará las veces de
adm inist rador de las Bases de Dat os, y que por defect o en la inst alación el usuario root viene sin clave y con t odos los
perm isos de ej ecución.

Así que nos vam os al m odo DOS: y hacem os lo siguient e:

C: > m ysql> bin> m [Link]

C: > m ysql> bin> m ysqladm in - u root - pxxxxxx

Sust it uyes las xxxxxx por la clave que t u quieras y list o, ya les asignast e una clave al usuario root . Recuerda que el root
t iene t odos los perm isos de ej ecución así que t en cuidado de lo que puedas alt erar.

Probando
Ya llegam os a la part e divert ida, reiniciam os la PC, aut om át icam ent e el Apache se ej ecut ará con el Windows. Abre t u
navegador puede ser el I nt ernet Explorer y escribes el la barra de direcciones lo siguient e: ht t p: / / localhost en est e punt o
debería abrirse el servidor web ofreciéndot e un list ado de los archivos y carpet as que hay en t u direct orio web, en nuest ro
caso C: \ m is webs. Ya con est o vem os que el apache funciona.

Ahora cream os un archivo que llam arem os [Link] con el siguient e script de php:

< ?php echo phpinfo( ) ?>

y lo guardam os dent ro de nuest ra carpet a web C: \ m is webs, ahora desde nuest ro navegador escribim os la siguient e
dirección ht t p: / / localhost / [Link] y deberías ver una web con una gran cont enido de inform ación de las variables de proceso
del PHP dent ro de t u PC. Est o nos dem uest ra que el Apache es capaz de int erpret ar PHP y que ést e est á funcionando.

127
LO BASI CO.
PHP no es m ás que códigos de program a incluidos dent ro de una página Web y que se ej ecut a desde el servidor el cual
deberá aport ar soport e para int erpret ar est e lenguaj e, enviando así al navegador el result ado del program a procesado.
Expliquem os est os con est e ej em plo:

Dent ro de una página Web hecha con HTML le incluim os el siguient e SCRI PT:

<?php
echo "Bienvenidos al mundo del PHP";
?>

Est o enviará com o result ado al navegador lo siguient e:

Bienvenidos al m undo del PHP

Lo increíble del est o es que j am ás m ost rará el código del program a... sólo enviará la respuest a del program a después de
procesada.

Creo que ya com prendes ent onces que es lo que hace PHP, si hacem os volar la im aginación t e darás cuent a la am plia
cant idad de aplicaciones que le podem os dar a est e poder... m anipular fechas y t iem pos, m anipular bases de dat os, realizar
cálculos m at em át icos, personalizar las present aciones según lo deseem os, et c.

Por lo pront o, com encem os con la sint axis de est e lenguaj e y para ello analicem os el siguient e SCRI PT:

<?php
$MYVAR = "1234";
$myvar = "4321";

echo $MYVAR. "<br>";


echo $myvar."<br>";
?>

Est o dará com o result ado:

1234
4321

Lo prim ero que vem os en est e SCRI PT es que las inst rucciones de PHP com ienzan con < ?php y t erm inan con ?> por lo que
incluso se pueden crear varios conj unt os de inst rucciones dentro de una m ism a pagina Web. Lo siguient e que observam os es
que las variables com ienzan con el sím bolo $ y que se diferencian las m ayúsculas de las m inúsculas, es decir, son sensible
case. Las et iquet as < BR> est án concat enadas por un punt o "." con lo que el navegador hará una salt o de línea, y por últ im o
not arás que t odas las lineas de com andos t erm inan con punt o y com a " ; " , est o es m uy im port ant e de no olvidar.

Pero veam os ahora un ej em plo m ás com plej o aún:

<?php
$SUM1 = 12;
$SUM2 = 4;
$TOT = $SUM1 + $SUM2;
echo "La sumatoria de " . $SUM1. " más " .$SUM2. " es igual a " .$TOT";
// Este programa realiza la suma de 12 + 4 y lo presenta en pantalla
?>

Creo que est o no necesit a m ucha explicación, com o es fácil ver lo que est e pequeño program a hace es: declarar el cont enido
de la prim era variable, declarar el cont enido de la segunda variable, realizar la sum a de am bas variables y asignarla a una
nueva variable, y por últ im o realiza la salida del result ado pero incluyendo t ext o para hacer m ás fácil la int erpret ación del
m ism o. Verem os com o result ado en pant alla:

La sum at oria de 12 m ás 4 es igual a 16

Not em os que para poder hacer la m ezcla de variables con t ext o hem os recurrido a la concat enación y est o se hace
int erponiendo un punt o " .". Podem os observar t am bién que hay un com ent ario dent ro del SCRI PT, est e com ent ario no
afect ará en nada al program a pero es im port ant e acost um brar usarlos para m ant ener organizados nuest ro program a y no
confundirnos en un program a m ás ext enso.

Exist en varias form as de incluir com ent arios y est as son:

// Esto da comienzo a una línea con comentarios.


// Esto es un comentario
128
/* Esto da comienzo a un grupo de líneas de comentario, se cierra con */
/* Esto es un comentario
que incluye varias líneas.
Es por eso que uso este tipo de inclusión. */

VARI ABLES
En PHP no es necesario declarar la variable, es decir, no es necesario decirle al program a si una variable es una cadena o un
núm ero ent ero, ya que PHP se encargará de definirla por sí m ism o.

Por ej em plo:

<?php
$cadena = "Hola Mundo";
$numero = 100;
$decimal = 8.5;
?>

Com o puedes observar las t res variables fueron sim plem ent e definidas con un valor y no necesariam ent e con el t ipo. Tant o
" Hola Mundo" que es una cadena, com o 100 que es un núm ero y 8.5 que es un decim al, son acept adas por el PHP e
int erpret adas en la ej ecución del script .

Ahora veam os el ám bit o de las variables. En m uchos t ut oriales nos confunden m ucho acerca de est e concept o, pero el
ám bit o de una variable, no es m ás que el lugar que t iene en un script . Cuando son de ám bit o global, la variable ocupa un
lugar en t odas las part es del script , y puede ser ut ilizada en cualquier m om ent o; pero si es de ám bit o local, quiere decir, que
sólo exist irá y operará dent ro de una función y no podrá ser accedida por el script en general, ni por las ot ras funciones.

Para declarar a una variable, de ám bit o global, podem os ut ilizar la palabra clave global, aunque sim plem ent e con definirla
fuera de cualquier función ya se le est á dando ese ám bit o. Veam os un ej em plo, para aclarar est e concept o:

<?
global $variable; //la variable ya es de ambito global
$numero = 1; //la variable es de ambito global, aunque no se ha declarado con global

function multiplicar(){
$multiplicacion = ($numero * 50); //multiplicacion solo existe en la funcion
multiplicar()
echo $multiplicacion;
}

?>

En el ant erior ej em plo se observa claram ent e cuándo una variable es de ám bit o global y local. La variable $num ero puede
ser accedida dent ro y fuera de cualquier función, t al com o lo hace la función m ult iplicar( ) que se encarga de m ult iplicar dicho
núm ero ( $num ero) por 50. Pero lo m ás dest acable de esa función es que fácilm ent e puede llam ar a la variable $num ero, en
vist a de que ést a es de ám bit o global, pero realiza la operación dent ro de la variable $m ult iplicacion, que sólo exist e durant e
la ej ecución de m ult iplicar( ) , porque fue ut ilizado y definida en esa función, y no globalm ent e. De ahí se puede resum ir, que
una variable es de ám bit o global cuando se declara fuera de cualquier función, o con la palabra global, y que es de ám bit o
local si se declara y ut iliza dent ro de alguna función.

Para t erm inar con el t em a de las variables, podem os t rat ar un poco sobre los arrays, o vect ores, que son un t ipo de variables
especiales, que pueden cont ener m uchos elem ent os al t iem po, generalm ent e relacionados ent re si.

<?php
$animales = array(); //con array() se declara que la variable es un vector
$animales[0] = "Gato";
$animales[1] = "Perro";
$animales[2] = "Elefante";
?>

Com o ves, la variable $anim ales, es declarado al inicio con new Array( ) , lo que perm it e incluir diferent es elem ent os dent ro
de ella.
Cada uno de esos elem ent os se debe crear ut ilizando el nom bre del array seguido por un núm ero ent re corchet es, el cual
definirá el elem ent o en sí: $anim ales es un array, pero $anim ales[ 0] , es un elem ent o del array, y su valor es la cadena Gat o.

Los arrays son m uy út iles cuando, com o en nuest ro ej em plo, en lugar de crear variables dist int as para cada elem ent o,
ut ilizam os uno en com ún que los incluya a t odos. De est e m odo si por ej em plo querem os m ost rar un list ado de anim ales,
podem os recorrer el array $anim ales, en lugar de crear variables com o $gat o, $perro, $j irafa, et c

129
OPERAD ORES
Los operadores son sím bolos especiales que se ut ilizan para realizar t ant o operaciones m at em át icas, com o de com paración.
Veam os un list ado de los m ás ut ilizados en PHP y un ej em plo general.



+ Sum a varios núm eros 5 + 4 = 9


- Rest a varios núm eros 5 - 4 = 1


* Realiza una m ult iplicación 3 * 3 = 9


/ Realiza una división 10/ 2 = 5


% Devuelve el residuo de una división 10 % 3 = 1


+ + Sum a 1 $v+ + ( Agrega 1 a $v)


- - Rest a 1 $v- - ( Rest a 1 a $v)


= = Devuelve t rue si la condición de igualdad se cum ple 2 = = 2 ( Verdadero)


! = Devuelve t rue sin la condición de igualdad no se cum ple 2 ! = = 2 ( Falso)


< Devuelve t rue si un núm ero es m enor que el ot ro 2 < 5 ( Verdadero)


> Devuelve t rue si un núm ero es m ayor que el ot ro 6 > 4 ( Verdadero)


< = Devuelve t rue si un núm ero es m enor o igual que ot ro 2 < = 5 ( Verdadero)
> = Devuelve t rue si un núm ero es m ayor o igual que ot ro 6 > = 4 ( Verdadero)

Por ahora verem os un ej em plo práct ico de los operadores m at em át icos, m ás adelant e, en las est ruct uras de cont rol, se
aplicarán los operadores lógicos.

<?php
$a = 5;
$b = 10;

$suma = ($a + $b); //$suma vale 15


$resta = ($b - $a); //$resta vale 5
$multiplicacion = ($a * $b); //$multiplicacion vale 50
$division = ($b / $a); //$division vale 2
$residuo = ($b % $a); //$residuo vale 0
?>

ESTRUCTURAS D E CON TROL


Gracias a las est ruct uras de cont rol, podem os realizar com probaciones y ej ecut ar códigos especiales para hacer de nuest ros
script s algo verdaderam ent e út il. Dent ro de las est ruct uras de cont rol encont ram os las funciones de condición y los bucles.
Est as son las que t rat arem os.

Condicionales
Los condicionales, o bifurcaciones, son est ruct uras que perm it en llevar a cabo det erm inadas acciones, de acuerdo a la validez
de una sent encia. Al igual que en la m ayor part e de los lenguaj es, en PHP se ut ilizan el if...else y el swit ch.

<?php
$a = 5;
$b = 2;

if($a == $b){
echo "Por estos dias 5 es igual a 2";
}
else{
echo "Como era de esperarse 5 no es igual a 2";
}
?>

La inst rucción if verifica la validez de la sent encia, en est e caso, $a = = $b, com o m encionam os ant eriorm ent e, el operador
= = devuelve verdadero si $a es igual a $b, ent onces, si es ese caso, escribim os en pant alla la cadena Por est os dias 5 es
igual a 2.
De lo cont rario ( else) , es decir, si $a no es igual a $b, devolvem os la cadena Com o era de esperarse 5 no es igual a 2.

Para resum ir podem os definir la inst rucción if...else com o:

<?php
if(sentencia){
acciones que se ejecutan si la sentencia es verdadera
}
else{
acciones que se ejecutan si la sentencia es falsa
130
}
?>

El swit ch es una est ruct ura que no se ut iliza frecuent em ent e, por lo que verem os cóm o se puede am pliar el if...else de form a
que soport e m ás de dos cam inos.

<?php
$a = 5;
$b = 2;

if($a == $b){
echo "5 es igual a 2";
}
else if($a < $b){
echo "5 es menor que 2";
}
else if($a > $b){
echo "5 es mayor que 2";
}
else{
echo "5 no es igual a 2";
}

?>

Con lo ant erior hem os expandido el if...else a t al punt o que ahora no sólo valida que $a sea igual que $b, sino t am bién si es
m ayor o m enor. Todo est o con else if, pero al final, con el else norm al, podem os devolver algo, en caso de que ninguna de
t odas las condiciones se cum plan.

Bucles
Lo últ im o que t rat arem os sobre las est ruct uras de cont rol son los bucles. Un bucle es una inst rucción que ej ecut a
repet idam ent e una acción, hast a que se cum ple det erm inada condición. Exist en dos t ipos de bucles en PHP, los bucles for y
los while

El bucle while es m enos com plej o que el for, pero aún así perm it e ej ecut ar funciones int eresant es.

<?php
$a = 5;
while($a < 7){
echo "a vale $a en este momento.\n<br>";
$a++;
}
?>

El bucle while, en est e caso, se ej ecut a m ient ras $a ( que inicia con un valor de 5) , sea m enor que 7 y m ient ras se ej ecut a se
im prim e una línea que m uest ra un t ext o y anuncia el valor act ual de dicha variable.... pero por qué es un bucle? Porque al
final, y haciendo uso del operador de sum at oria + + , hacem os que a aum ent e en 1. De est e m odo, en cada ej ecución del
bucle a va a valer 1 m ás, hast a llegar al m om ent o en que su valor sea 7, ahí dej a de ej ecut arse el bucle.

Para ver cóm o se ej ecut aría la m ism a acción, ut ilizando el for, veam os un ej em plo.

<?php
for($a=5; $a < 7; $a++){
echo "a vale $a en este momento.\n<br>";
}
?>

Eso es t odo. La única diferencia es que en la m ism a sent encia del for se declara la variable y su valor, luego la condición y
finalm ent e la m odificación que se realiza a la variable, en est e caso se aum ent a en 1.

FUN CI ON ES
Para t erm inar est a int roducción al PHP, verem os cóm o se ut ilizan y funcionan las funciones, t ant o las t radicionales, com o las
recursivas, que devuelven siem pre algún valor.

Las funciones en PHP pueden cont ener o no parám et ros, lo que det erm ina si son o no recursivas. Si se la pasan parám et ros y
est os perm it en devolver algún valor, se dice que la función es recursiva, de lo cont rario será una función t radicional.
En general, t odas las funciones sirven para evit ar escribir códigos repet it ivos durant e la ej ecución del script ; en cam bio,
sim plem ent e se llam a a una función. 131
Ant es de present ar un ej em plo para m ost rar los dos t ipos de funciones, hay que t ener en cuent a que una función se
est ablece con la palabra clave funct ion, y sus inst rucciones se ej ecut an ent re llaves, al igual que en las est ruct uras de
cont rol.

<?php
function sumaRecursiva($a, $b){
$suma = $a + $b;
return $suma;
}

function dosmasdos(){
$sumatoria = sumaRecursiva(2,2);
echo $sumatoria;
}

?>

Ahí est á. A la función sum aRecursiva se le deben pasar dos parám et ros y dent ro de dicha función se realiza la sum a de los
dos. Luego lo devuelve con la palabra clave ret urn.
Finalm ent e exist e la función dosm asdos( ) , que declara una variable local con el result ado que devuelve sum aRecursiva, si los
parám et ros son 2 y 2. De est e m odo, sum aRecursiva ret orna la sum a de dos m ás dos que es 4, y dosm asdos( ) , sim plem ent e
lo im prim e en pant alla.

EJEM PLOS UTI LES.


Algunos ej em plos út iles que perm it irán sacar m ás provecho al PHP:

Funciones de Cadena
PHP provee de m uchas funciones int eresant es para t rabaj ar con cadenas, verem os solo algunas:

st rlen - Devuelve la longit ud de una cadena ( num ero de caract eres)


explode - Part e una cadena de acuerdo a un caract er separador, y devuelve un vect or con dichas divisiones.
chop - Elim ina los espacios finales de una cadena, así com o sus salt os de linea
st rpos - Busca una cadena dent ro de ot ra y devuelve su posición.
st r_replace - Reem plaza una cadena por ot ra.

<?php
$cadena = "hola";
$otracadena = "hola-mundo";

$longitud = str_len($cadena); //devuelve 4

$partes = explode("-",$otracadena); //genera el array $partes con $partes[0]="hola" y


$partes[1]="mundo";

$chop = chop($cadena."\n"); //agregamos un \n para probar, pero chop lo elimina

$reemplaza = str_replace("-"," ",$otracadena); //$reemplaza contiene Hola Mundo. Notese


que cambiamos el - por un espacio

?>

Leyendo un archivo
Exist en m últ iples m aneras de leer archivos ut ilizando PHP, pero vam os a usar una que es m uy práct ica para el ent endim ient o
del lenguaj e, ya que adem ás de ver algunas funciones adicionales, se ut iliza un bucle para leer cada línea, lo que desm ient e
el t em or que se t iene por la dificult ad de m anej ar est as est ruct uras.
Para est e ej em plo supondrem os que el archivo a leer es archivo.t xt , y que t endrá algún cont enido para m ost rar, ya que eso
es lo que nos int eresa.

<?
$archivo = file("[Link]");
$lineas = count($archivo);

for($i=0; $i < $lineas; $i++){


echo $archivo[$i];
}
?>

Exist en ot ras form as de leer archivos, com o ya m encionam os m ás arriba, pero est a es una de las m ás sencillas.
Lo prim ero que hacem os es declarar la variable $archivo que genera un array con cada una de las líneas del archivo ( por 132
m edio de la función file( ) ) .
Luego $lineas hace uso de la función count ( ) , que cuent a el núm ero de elem ent os de un array, en est e caso, el array que se
generó con las líneas del archivo. De ahí deducim os, que el núm ero de elem ent os del array es el núm ero de líneas del
archivo.

Finalm ent e, se ej ecut a un bucle hast a que se llegue al final del archivo ( t ot al de núm ero de líneas) y por cada it eración se
escribe en pant alla el cont enido de la línea que se est á leyendo.
Com o ves, es una form a m uy sencilla y út il de leer archivos.

PHP y MySQL
m ySQL es uno de los sist em as de bases de dat os m ás populares en el m ercado, y PHP se int egra a la perfección con él, de
t al m odo, que la m ayor part e de los host s incluyen est a dupla.
Para la creación de t ablas y bases se debe acceder al shell del m ysql, o usar un adm inist rador vía web com o el phpMyAdm in
que puede ser descargado grat uit am ent e desde el web.
Para est a inform ación cont act a con t u host ing. Aquí sólo verem os cóm o conect arnos a la base de dat os y t om ar los dat os de
una t abla hast a t erm inar los regist ros.

<?php

function conectar($servidor, $usuario, $password, $base_datos){


if (!($link=mysql_connect($servidor,$usuario,$password))){
exit();
}
if(!(mysql_select_db($base_datos,$link))){
exit();
}
return $link;
}

$conexion = conectar("","usuariomysql","passmysql","basededatos");
$sql = mysql_query("select nombre, email from amigos order by nombre",$conexion);

while($row = mysql_fetch_array($sql)){
$nombre = $row["nombre"];
$email = $row["email"];
echo "<a href='[Link]
}
mysql_free_result($sql);
mysql_close($conexion);
?>

La linea resalt ada cont iene los dat os de acceso a m ysql. Debes consult ar eso con t u host ing, son sim plem ent e el nom bre de
usuario, password y t u base de dat os. El servidor por lo general es localhost , o lo dej as en blanco.

Ent rando en el código en sí, prim ero vem os una función que se conect a y selecciona la base de dat os ( conect ar( ) ) . Luego la
accedem os en una variable ( $conexion) .

La variable $sql cont iene la sent encia sql a ej ecut ar. Para procesarla, se hace uso de la función del m ysql,
m ysql_query( sent encia, id_conexion) . En est e caso suponem os que hay una t abla llam ada am igos que podría cont ener a
nuest ros cont act os, y t om am os de ella el nom bre y el em ail ( filas) .

Luego se ej ecut a el bucle while que se ej ecut a hast a llegar al final de los regist ros, y asignam os, durant e la it eración, dos
variables: $nom bre que cont iene la fila nom bre del regist ro que se est á m ost rando, lo m ism o que $em ail. Luego dam os una
salida HTML t radicional con un enlace al em ail y el nom bre del cont act o.

Liberam os la m em oria con m ysql_free_result ( ) y cerram os la conexión.

Con m ysql se pueden hacer cosas m ás com plej as, pero aquí sólo t rat am os de int roducir al PHP, y m ysql porque est e es el
caso.

133
Tu t or ia l de ASP

I N TROD UCCI ON



I nt roducción
Personal Web Server

VBSCRI PT



I nt roducción
Funciones Básicas

OBJETOS



Response


Request


Server
Session

BASES D E D ATOS



Ut ilizando ASP y Access
I nt roducción al SQL

I n t r odu cción

Tut orial básico sobre la im plem ent ación de ASP en t u servidor web. Resum en de la est ruct ura del lenguaj e y uso de las bases de
dat os.

Ca r a ct e r íst ica s

Verem os algunas de las caract eríst icas m ás im port ant es de est a t ecnología, las ot ras las descubrirem os a m edida que se avanza
en est e t ut orial.



La sigla ASP significa Act ive Server Pages.


Microsoft es el creador.


Se ej ecut a en el servidor donde est a aloj ada la pagina web.


El client e ( navegador del usuario) no not a diferencias con una pagina norm al ( HTML) .


Por m edio de ASP se puede t ener acceso a bases de dat os.


Para su im plem ent ación se ut iliza lenguaj e script com o VBScript o JScript .


Se puede ut ilizar HTML y ASP en una m ism a pagina.
Es t ot alm ent e am pliable gracias a que es com pat ible con la t ecnología Act iveX.

Com o Fu n cion a

Aquí est án pasa a paso com o funciona una pagina ASP.

1. Un usuario por m edio del navegador solicit a una pagina ASP.


2. Est a solicit ud llega al servidor el cual t iene aloj ada la página pedida.
3. Est e servidor procesa la pagina ASP y devuelve código HTML.
4. El usuario visualiza la página en su navegador.

Not en que para el usuario no exist e diferencia en ASP y HTML por que a su navegador siem pre llega código HTML puro, el único
que requiere un t rabaj o ext ra es el servidor el cual t iene que procesar el código ASP y t ransform arlo en HTML para su post erior
envío al client e.

134
Com o u t iliz a r lo

Para ut ilizarlo necesit am os un servidor que procese nuest ras paginas ASP, para ello exist e el I nt ernet I nform at ion Sever baj o
Windows NT o 2000 y baj o Windows 95/ 98 est a el Personal Web Server que viene el CD de I nst alación de Windows 98 o en el CD
del Visual St udio.

Pe r son a l W e b Se r ve r

El Personal Web Server es un servidor que nos perm it e t rabaj ar con paginas ASP en nuest ra PC sin necesidad de subir las
paginas ASP al servidor para realizar las pruebas, es decir, arm am os t odo el sit io en nuest ra PC, lo probam os con el Personal
Web Server ( PWS) y si t odo va bien lo subim os.

Para ut ilizar el PWS necesit am os t ener Windows 95/ 98/ Me, si t enem os com o SO Windows NT o 2000 t am bién podem os ut ilizar el
PWS pero en est e caso es preferible ut ilizar I nt ernet I nform at ion Server ( I I S) dado que es m as funcional y robust o. Pueden
conseguir el PWS desde el sit io de Microsoft o en los CDs de I nst alación de Windows 98, Visual Basic o Visual St udio.

A la hora de inst alar el PWS hay que seguir los pasos de una inst alación t ípica de un program a, pero hay que prest ar at ención en
el m om ent o que nos pide el direct orio de publicación web, es decir el direct orio en donde se guardaran nuest ras paginas web se
puede dej ar el que nos ofrece el PWS por defect o o lo podem os m odificar, si lo m odificam os, por ej em plo ponem os que el
direct orio de publicación web es " C: \ Paginas Webs" t enem os que guardar nuest ras pagina dent ro de est e direct o.

Una ves inst alado reiniciam os la PC y al volver t endrem os un icono en la barra de not ificación de Windows desde est e icono
podem os iniciar el PWS, aclarem os que el PWS t iene dos est ados I niciado y Det enido, obviam ent e nuest ro sit io solo funcionara
cuando est e el PWS iniciado.

Bueno una ves abiert o el PWS nos vam os al sect or llam ado " Avanzada" desde acá configuram os las opciones avanzadas del
servidor, lo m as im port ant e es la configuración del direct orio, seleccionam os " Hom e" y hacem os click en "Modificar Propiedades",
aquí seleccionam os el direct orio que habíam os elegido com o publicación web, apret am os " Acept ar" y volvem os a las opciones
avanzadas. Ahora dest ildam os " Habit ar Docum ent o Predet erm inado" y habilit am os " Perm it ir Exploración de direct orios" ,
volvem os a la sección "Principal" y hacem os click en el link para abrir nuest ro sit e.

VBScr ipt - I n t r odu cción

Por m edio de VBScript podem os crear nuest ras paginas ASP, debem os t ener en cuent a que ant es de escribir cualquier código ASP
debem os abrir nuest ro código con el sím bolo '< % ' y al finalizar cerrarlo con '% > '

<%
'este es un comentario
[Link] ("Mi Primer Pagina ASP")
%>

Podem os abrir archivo nuevo agregarle el código ant erior guardarlo com o " [Link]" dentro de nuest ro direct orio de publicación
web abrir el PWS y ver el result ado en el navegador.

VBScript es un lenguaj e script derivado de Visual Basic así que t am bién hereda sus funciones básicas a cont inuación verem os
algunas de las m as ut ilizadas.

VBScr ipt - Fu n cion e s bá sica s

Si est as fam iliarizado con Visual Basic podes pasar est a part e dado que los funciones básicas son iguales en am bos lenguaj es, y
si no conoces Visual Basic acá va una ayuda.

Va r ia ble s

La form a de declaran variables es por m edio de la palabra 'Dim ', aclarem os que la declaración de variables no es necesaria, salvo
que al inicio de nuest ra pagina ASP pongam os la palabra clave 'Opt ion Explicit ' que hace que la declaración de variables sea
necesaria si no nos daría un error.

<%
Option Explicit

Dim I 'declaramos la variable


135
I= 14 ' le asignamos un valor
[Link] (I) 'mostramos su valor en el navegador
%>

Con dicion a le s

El condicional m ás ut ilizado en cualquier lenguaj e es el fam oso I F, VBScript no podía quedarse afuera, el m odo de uso es poner la
palabra clave 'I f' después la condición a evaluar, luego 'Then' y el código a ej ecut ar si se cum ple la condición dada, al finalizar se
cierra el bloque 'I f' con la palabra clave 'End I f'

<%
Dim I

I = 14

If I = 14 Then
[Link] ("La variable I es igual a 14")
End If
%>

Tam bién exist e la alt ernat iva 'Else' ( sino) , es decir sino se cum ple la condición hacer lo siguient e, veam os un ej em plo

<%
Dim I

I = 14

If I = 14 Then
[Link] ("La variable I es igual a 14")
Else
[Link] ("La variable I es distinta a 14")
End If
%>

Fíj ense que pusim os 'I = 14' t am bién podem os hacer ot ro t ipo de condición com o puede ser dist int o 'I < > 14', m ayor 'I > 14',
m enor 'I < 14', m ayor o igual 'I > = 14', m enor o igual 'I < = 14'

Bu cle s

VBScript posee un bucle llam ador 'For' que repit e una acción la cant idad de veces indicada

<%
Dim I

For I = 1 to 5
[Link] ("Esto se repite 5 veces")
Next
%>

Podem os m odificar el num ero 5 y poner un 10 y lo repet irá 10 veces, t am bién podem os m odificar el num ero 1 por el 3 y el 5 por
el 6, est o hará que el bucle se repit a 3 veces, '3 t o 6' ( desde 3 hast a 6) , t am bién podem os indicar el increm ent o que t endrá por
m edio de la palabra clave 'st ep'

<%
Dim I

For I = 1 to 10 step 2
[Link] ("Esto se repite de dos en dos, i = " & i)
Next
%>

Gracias a est o podem os hacer un bucle inverso por ej em plo de 10 a 1

<%
Dim I
136
For I = 10 to 1 step -1
[Link] ("i = " & i)
Next
%>

La palabra clave 'Next ' indica el final del bucle, es decir se repit e t odo lo que est a ent re el 'For' y 'Next '

W h ile ..W e n d

Est e bucle a diferencia del 'For' repit e una acción siem pre que se cum pla una condición, veam os un ej em plo

<%
Dim I

I = 0 'inicializa i igual a 0

While I <> 10 'repita mientras i sea distinto a 10


[Link] ("i = " & i) 'muestra por pantalla el valor de i
I = I + 1 'incrementa i en uno
Wend
%>

Cuando agregam os la palabra clave 'Wend' est am os diciendo que repit a t odo el código incluido ent re While y Wend

Obj e t o Re spon se

Est e obj et o ASP es del t ipo int egrado, es decir no t enem os que crear una inst ancia del m ism o para poder ut ilizarlo, su función es
enviar inform ación al client e ( navegador) .

PROPI ED AD ES

Bu ffe r

Esta propiedad es del tipo booleana (true/ false) e indica si la pagina se almacena en el buffer del servidor antes de ser enviada, es decir si esta true
envía la pagina al cliente recién cuando este toda cargada y si esta false la envía a medida que la procesa. Se debe utilizar antes de haber enviado
algún resultado al cliente. Si el servidor utilizado tiene la versión de ASP 2.0 el valor predeterminado de esta propiedad es false y en cambio la
versión es la 3.0 (Windows 2000) el valor predeterminado es true.

Ejemplo

<%[Link] = TRUE%>

Ex pir e s

Esta propiedad indica el tiempo, en minutos, que la pagina se guarda en el caché del navegador, si este valor se pone a 0 no se utiliza el caché del
navegador

Ejemplo

<% [Link] = 5%>

Ex pir e sAbsolu t e

Esta propiedad indica hasta que día y hora la pagina se guarda en el caché del navegador.

Ejemplo

<% [Link]=#May 5, 2001 [Link]# %>

Cook ie s

Crea una cookie en la maquina del usuario. Una cookie es un archivo con formato de texto en el cual el se puede guardar información. Las cookies
por lo general se utilizan para controles de acceso, personalización de páginas y estadísticas. El siguiente ejemplo crea una cookie llamada 'fecha' la
cual contiene el valor devuelto por la función 'date' que nos devuelve la fecha actual 137
Ejemplo

<% [Link]("fecha") = date %>

Esta cookie se mantiene en la maquina del usuario hasta que termine su sesión, borre las del navegador o se cumpla el tiempo establecido para esa
cookies, a continuación veremos la forma de establecer la duración de una cookie

<% [Link]("fecha").expires="2/12/2001"%>

Esto hace que la cookie se borre en la fecha indicada, si creamos otra cookie llamada 'fecha' esta sobrescribirá a la otra, si quieres ver la forma de
recuperar el valor de una cookie hace click aquí.

M ETOD OS

En d

Este método detiene el proceso de la pagina ASP y envía lo ya procesado al navegador

Ejemplo

<%[Link]%>

Flu sh

Este método envía el contenido del buffer al navegador siempre y cuando la propiedad Buffer se true, si la propiedad Buffer es igual a false se
producirá un error

Ejemplo

<%[Link]%>

Re dir e ct ( ca de n a _ u r l)

Este método redirecciona la pagina actual a la pasada como parámetro.

Ejemplo

<%[Link] "otra_pagina.asp"%>

W r it e ( ca de n a )

Este método escribe en el navegador la cadena pasada como parámetro, tengan en cuenta que también se pueden enviar etiquetas HTML y
concatenar variable con el operador & (VBScript).

Ejemplo

<%[Link] ("<b>hola!!!</b>%>

Obj e t o Re qu e st

Est e obj et o ASP es del t ipo int egrado, es decir no t enem os que crear una inst ancia del m ism o para poder ut ilizarlo, por m edio de
est e obj et o podes t ener acceso a la inform ación que el navegador pasa al servidor.

PROPI ED AD ES ( COLECCI ON ES)

For m

Esta propiedad es una colección que contiene todos los elementos de un formulario (< form> ) pasado al archivo ASP con el método POST (< form
method= 'post'> ), la forma de acceder a el valor de un elemento del formulario es la siguiente...

<%=[Link]("nombre_elemento")%> 138
Ejemplo

--------------[Link]----------------
<HTML>
<HEAD>
</HEAD>
<BODY>
<form action="procesa_formulario.asp" method="POST">
Nombre:<input type="Text" name="nombre" maxlength="20"><br>
Apellido:<input type="Text" name="apellido" maxlength="30"><br>
<input type="Submit" name="Submit" value="Enviar">
</form>
</BODY>
</HTML>
--------------procesa_formulario.asp--------
<HTML>
<HEAD>
</HEAD>
<BODY>
<% [Link] ("nombre:" & [Link]("nombre"))%>
<% [Link] ("apellido:" & [Link]("apellido")) %>
</BODY>
</HTML>

Cook ie s

Recupera una cookie almacenada en la maquina del usuario. Una cookies es un archivo con formato de texto en el cual el se puede guardar
información. Las cookies por lo general se utilizan para controles de acceso, personalización de páginas y estadísticas. El siguiente ejemplo recupera
la cookie llamada 'fecha' que creamos anteriormente.

Ejemplo

<% [Link] [Link]("fecha") %>

Debido a la naturaleza de las cookies y a que nunca podemos garantizar que una cookie almacenada anteriormente todavía exista debemos
manejarnos con cautela y no almacenar en ellas datos críticos.

Qu e r ySt r in g

Esta colección contiene todos los valores pasados como parámetros a una pagina ASP. La formas de pasar parámetros a una pagina ASP son varias
una es por medio de formularios utilizando el método 'GET' y la otra es generándolo 'manualmente'...

http:/ / www.servidor_xxx.com/ pagina_asp.asp?nombre= jose&apellido= perez

Esa es la manera de pasar parámetros a una pagina ASP, luego del la dirección URL se pone el signo '?' y a continuación todos los parámetros con
sus respectivos valores separados por el símbolo '&'.

Ejemplo

-----------------------pasa_parametros.asp-------------------
<HTML>
<HEAD>
</HEAD>
<BODY>
<A HREF="lee_parametros.asp?nombre=jose">click acá! </A>
</BODY>
</HTML>

-----------------------lee_parametros.asp----------------------
<%
[Link] ([Link]("nombre") & "<br>")
%>

Se r ve r Va r ia ble s
139
Esta colección nos da acceso a todas las variables de entorno del servidor.
Ejemplo

<%
[Link] ([Link]("REMOTE_ADDR"))
[Link] ([Link]("SERVER_SOFTWARE"))
%>

Obj e t o Se r ve r

Est e obj et o ASP es del t ipo int egrado, es decir no t enem os que crear una inst ancia del m ism o para poder ut ilizarlo, por m edio de
est e obj et o podes t ener acceso a funciones út iles del servidor.

PROPI ED AD ES

Scr ipt Tim e ou t

Esta propiedad determina el tiempo máximo en segundos que se espera para ejecutar la pagina ASP. Si la pagina tarda mas segundos en ser
procesada se produce un error. El valor predeterminado es 90 segundos.

Ejemplo

<% [Link] = 25 %>

M ETOD OS

Cr e a t e Obj e ct ( id_ obj e t o)

Este es uno de los métodos más importantes y nos permite crear objetos a partir de los cuales vamos a trabajar. Como único parámetro se
especifica el nombre del objeto a crear. Al crear el objeto este se le asigna a la variable establecida por medio de la palabra clave SET, esta variable
hereda todos los métodos, propiedades y eventos del objeto creado.

Ejemplo

<% Set BDD = [Link]("[Link]") %>

Ex e cu t e ( pa t h )

Este método ejecuta una pagina ASP dentro de otra, su único parámetro es la ruta de la pagina a ejecutar. Este método solo esta disponible en la
versión 3.0 de ASP.

Ejemplo

----------pagina_llama.asp-------
<HTML>
<BODY>

Hola <%[Link]("[Link]")%> !

</BODY>
</HTML>

----------[Link]----------
<%
[Link] "Pedro"
%>

140
H TM LEn code ( ca de n a )

Este método evita que la cadena pasada como parámetro sea interpretada como lenguaje HTML.

Ejemplo

<% [Link] [Link]("<b>sin negrita</b>") %>

M a pPa t h ( pa t h )

Devuelve la ruta completa del archivo pasado como parámetro.

Ejemplo

<% [Link] [Link]("calendario\[Link]") %>

Obj e t o Se ssion

Est e obj et o ASP es del t ipo int egrado, es decir no t enem os que crear una inst ancia del m ism o para poder ut ilizarlo, el m ism o
sirve para com part ir inform ación de un usuario ent re las paginas del sit io. Por defect o el obj et o session se crea al ingresar el
usuario a nuest ro sit io y se dest ruye cuando lo abandona o cuando pasan 20 m inut os sin act ividad del usuario.

PROPI ED AD ES

Se ssion I D

Esta propiedad devuelve un I D que identifica a un usuario. Este I D es único, no se puede modificar y lo crea automáticamente el servidor.

Ejemplo

<% [Link] "ID Session = " & [Link] %>

Tim e ou t

Esta propiedad determina el tiempo en minutos que durara la sesión del usuario antes de ser destruida, por defecto su valor es de 20 minutos.

Ejemplo

<% [Link] = 30 %>

M ETOD OS

Aba n don

Este método provoca el abandono forzado de la sesión, destruye todas las variables de sesión .

Ejemplo

< % [Link] % >

VARI ABLES D E SESI ON

Una utilidad muy buena que nos permite el objeto session es crear variables y poder compartirlas en todas la paginas de nuestro sitio algo así como
una variable global pero con una diferencia bastante grande dado que cada usuario que ingrese a nuestra pagina tendrá un valor distinto en cada
variable. En el ejemplo que sigue a continuación se muestra la forma de uso.

Ejemplo

----------pagina_1.asp-------
<HTML> 141
<BODY>

<%Session("Dia") = "Lunes"%>

</BODY>
</HTML>

----------pagina_2.asp----------
<%
[Link] Session("día")
%>

Ba se s de D a t os - Ut iliza n do ASP y Ba se s de D a t os Acce ss.

Est a es una breve explicación de com o ut ilizar ASP para t ener acceso a una base de dat os, lo prim ero que debem os crear es la
base de dat os, en est e caso de Access con el nom bre de 't em as.m db', ahora dent ro de est a base de dat os crearem os una t abla
llam ada 'Tem asMusicales' y que t enga los siguient es cam pos...

CAMPOS TI POS DE DATOS


Id Auto numérico
Titulo Texto
Genero Texto

I nt roduce algunos dat os para poder ut ilizarla. Bueno ya t enem os la base de dat os con inform ación adent ro, lo que vam os a hacer
ahora es desde ASP ver t odo el cont enido de la t abla que hem os creado. Para ello cream os un archivo ASP con el nom bre
'm uest ra_t em [Link]' y en su int erior agregam os el siguient e código...

<%

Dim BDD ' variable que se encargara de la base de datos


Dim TABLA ' variable que se encarga de la tabla

'creamos los objetos que manejan la base de datos y la tabla


Set BDD = [Link]("[Link]")
Set TABLA = [Link]("[Link]")

'abrimos la base de datos


[Link] ("PROVIDER=[Link].4.0;DATA SOURCE=" + [Link]("[Link]"))

'abrimos la tabla
[Link] "TemasMusicales", BDD ' indicamos el nombre de la tabla y la base de datos

'ahora recorremos toda la tabla y mostramos los datos


While NOT [Link] 'recorre la tabla hasta que EOF sea verdadero
[Link] "titulo:" & TABLA("Titulo") & "<br>"
[Link] "genero:" & TABLA("Genero") & "<br>"
Wend

'cerramos todo y liberamos los objetos


[Link]
[Link]

Set BDD = Nothing


Set TABLA = Nothing

%>

Bueno con est e código se pueden ver t odos los dat os que cont iene nuest ra base de dat os.

142
Ba se s de D a t os - I n t r odu cción a l SQL

Est a es una breve int roducción al lenguaj e de consult as est ruct uradas SQL, solo verem os com o realizar consult as sobre una t abla
de una base de dat os. Prim ero veam os el form at o de la t abla de Access con la que vam os a t rabaj ar

CAMPOS TI POS DE DATOS


Id Autonumérico
Marca Texto
Color Texto

Est a t abla llevara el nom bre de 'Aut os' y en su int erior cont endrá la inform ación de una cant idad X de aut os, t e recom iendo que
llenes la t abla con dat os, podes repet ir las m arcas y los colores.

<%

Dim BDD ' variable que se encargara de la base de datos


Dim TABLA ' variable que se encarga de la tabla
Dim SQL 'variable que contendrá la consulta SQL

'creamos los objetos que manejan la base de datos y la tabla


Set BDD = [Link]("[Link]")
Set TABLA = [Link]("[Link]")

'abrimos la base de datos


[Link] ("PROVIDER=[Link].4.0;DATA SOURCE=" + [Link]("[Link]"))

%>

Not en que declaram os una variable llam ada 'SQL' en la cual vam os a poner la cadena que form e la consult a a la t abla 'Aut os', así
que ent re el código ant erior y el que est a a cont inuación deben asignarle a la variable 'SQL' la consult a a realizar.

<%

[Link] SQL, BDD ' hacemos la consulta

'ahora recorremos toda la tabla y mostramos los datos


While NOT [Link] 'recorre la tabla hasta que EOF sea verdadero
[Link] "marca:" & TABLA("Titulo") & "<br>"
[Link] "color:" & TABLA("Genero") & "<br><br>"
Wend

'cerramos todo y liberamos los objetos


[Link]
[Link]

Set BDD = Nothing


Set TABLA = Nothing

%>

Bueno, realizarem os nuest ra prim er consult a, seleccionarem os t odos los aut os de color roj o, para est o t enem os que arm ar la
consult a, recuerden que el código que hay a cont inuación va ent re m edio de los 2 ant eriores

SQL = "SELECT * FROM Autos WHERE Color = 'Rojo'"

Bien, expliquem os est o, " SELECT * ..." significa seleccionar t odos los cam pos ( * ) , " FROM Aut os..." desde la t abla Aut os " WHERE
Color = 'Roj o'" donde color es igual a Roj o.

Com o ves es bast ant e int uit ivo y legible, si sabes ingles m ucho m ás. Ahora realizarem os una consult a buscando t odos los aut os
de m arca BMW.

SQL = "SELECT * FROM Autos WHERE Marca = 'BMW'"

Fácil no. Ahora veam os com o hacer si querem os seleccionar t odos los aut os BMW de color Roj o
143
SQL = "SELECT * FROM Autos WHERE Color = 'Rojo' AND Marca = 'BMW'"

Not en que agregam os el operador AND ( Y) es decir, Color igual a roj o Y con la m arca BMW, ahora veam os lo cont rario,
buscarem os t odos los BMW pero que no sean de color roj o

SQL = "SELECT * FROM Autos WHERE Marca = 'BMW' AND NOT Color = 'Rojo'"

Y si querem os que t odo est o aparezca ordenado debem os agregar la palabra 'ORDER BY' y especificar el cam po por el cual
querem os ordenar

SQL = "SELECT * FROM Autos WHERE Marca = 'BMW' AND NOT Color = 'Rojo' ORDER BY Marca"

Podem os especificar m ás de un cam po para ordenar, para est o debem os separarlos por com as

SQL = "SELECT * FROM Autos WHERE Marca = 'BMW' AND NOT Color = 'Rojo' ORDER BY Marca, Color"

Y la form a de m ost rarlos, ascendent e o descendent e

SQL = "SELECT * FROM Autos WHERE Marca = 'BMW' AND NOT Color = 'Rojo' ORDER BY Marca, Color
DESC"

144
Programación: CGI: Introducción

Common Gateway Interface

CGI no es más que una forma de comunicar información entre un servidor de web y un programa ejecutable nativo que
está en la misma máquina que dicho servidor. Un CGI permite pasar información en ambos sentidos (parámetros y
resultados). No es un lenguaje, sólo una forma de pasar información. Lo mismo que la línea de comandos del sistema
operativo. De ahí lo de "interfaz". Un programa CGI puede estar hecho en cualquier cosa siempre que:

1) Se ejecute en la máquina del servidor


2) Sea capaz de leer variables de entorno y la entrada estándar del sistema operativo (concepto cuasi universal)
3) Sea capaz de escribir en la salida estándar del sistema operativo
4) El servidor sea capaz de ejecutarlo

Para crear el CGI se puede usar Visual Basic, Perl, Rexx, Clipper, Visual C, Borland C, Delphi, etc. Una vez creado el
CGI en tu ordenador, lo pasas al servidor y lo compilas allí. El hecho de que CGI esté universalmente soportado ayuda
a que el código fuente de un programa CGI pueda recompilarse y funcionar en cualquier entorno. No obstante, eso
dependerá mucho de qué lenguaje se use para desarrollar el programa. Por ejemplo, ISAPI sólo funciona en Windows.

Como crear un CGI usando Perl

Como Perl no es un lenguaje compilado como C, nos saltaremos la ardua tarea de compilar nuestro código fuente.
Simplemente, crearemos un fichero de texto llamado [Link]. Deberíamos usar el procesador de textos más simple
que tengamos a fin de que no nos salve carácteres extra en el fichero como hacen Word y otros procesadores de texto.
Se supone que vamos a usar Notepad o WordPad de Windows.

Contenido del fichero [Link]:

#!/usr/bin/perl
print "content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>Aprendiendo a crear CGIs</TITLE>\n";
print "</HEAD>\n";
print "<BODY>\n";
print "Enhorabuena. Acabo de crear un CGI ¡y funciona!\n";
print "</BODY></HTML>\n";

Fíjate que en un CGI lo primero que hay que poner es la cabecera, en este caso : Content-type: text/html\n\n
El \n al final de la cabecera es un retorno de linea. Siempre debe de haber 2.

Pasando el CGI a tu servidor

Debemos de pasar el fichero '[Link]' al directorio de nuestra página web. Abrimos una sesión FTP hacia el
directorio de nuestra página web y copiamos el fichero '[Link]' allí.

Ya tenemos el CGI en nuestro servidor web. Si ahora vamos a un navegador y tecleamos la dirección donde se
encuentra el CGI lo ejecutaremos. Ejemplo: [Link]

Sin embargo, veremos el código fuente del fichero como si fuese un texto normal. Tranquilos, no pasa nada. Ahora lo
solucionamos.

Solucionando los problemas

La respuesta es sencilla: el navegador no sabe que eso es un CGI. No tenemos más que cambiar la extensión de txt
por cgi. La razón de no haberlo hecho antes, es que nuestro programa de FTP debe transferir los archivos con formato
ASCII, es decir, simples ficheros de texto, si intentamos copiar directamente el fichero con el nombre [Link], casi
seguro que no nos va a funcionar porque lo intenará transferir en formato BINARIO. Para solucionar esto sin poner
extensión txt al CGI podemos configurar nuestro programa de FTP para que reconozca la extensión .cgi como ASCII

En los sistemas UNIX, ningún programa funciona hasta que le demos permiso de ejecución. Para darle permiso, se
puede usar el programa de FTP. En el caso del Cute FTP, una vez vemos el fichero al que queremos darle el permiso
de ejecución, pinchamos en él con el botón derecho del ratón y seleccionamos 'File Attributes' del menú emergente.

Ahora hay que darle permiso de lectura o lectura/escritura a nuestro CGI '[Link]'. Deberíamos recibir un mensaje
advirtiéndonos que hemos cambiado los atributos del fichero.

Si ejecutamos ahora el CGI desde nuestro navegador, deberíamos ver el esperado mensaje de enhorabuena.
145
Programación: CGI: Instalación

Probando los CGI's

Ante todo debes tener en cuenta que un CGI debe instalarse en el servidor ya que es un programa. Es decir que a
diferencia de un documento HTML, no basta con pasarlo al servidor. Normalmente hay que dar cierta información al
CGI sobre nuestro servidor Web, donde se localizan ciertos ficheros, etc. Un CGI que tomes de cualquier sitio
dificilmente va a funcionar "tal cual". Las diferencias entre las configuraciones de los servidores hacen algunas veces
imposible "portar" un programa de un servidor a otro. Sobre todo la diferencia entre servidores Windows y Unix algunas
veces es tremenda. En muchas ocasiones puede ser bastante complejo adaptar a sistemas Windows CGIs creados
para sistemas UNIX (o viceversa). Mi recomendación es que, siempre que sea posible, creeis los CGIs pensando en
ambas plataformas. Si la portabilidad se ataca durante el periodo de creación del CGI el ahorro de tiempo es
considerable. Para hacer portables los CGIs creados en Perl entre ambas plataformas hay que tener en cuenta varias
cosas. Entre ellas cabe destacar:

• El salto de línea en sistemas Unix es diferente al del los sistemas Windows (en UNIX es \n mientras que en


sistemas Windows es \r\n)
La trayectoria ("path") de un fichero en sistemas UNIX es de la forma /directorio/subdirectorio/fichero mientras


que en sistemas Windows es de la forma X:\directorio\subdirectorio\fichero
En UNIX exite el ejecutable de sistema "sendmail" que puede aprovecharse para que el CGI envie correos
electrónicos de forma sencilla. En sistemas Windows no existe sendmail (aunque en ocasiones el sistema
puede tener instalados programas similares) por lo que el envio de correos electrónicos debe hacerse
generalemente estableciendo una comunicación directa con un servidor de SMTP.

Así pues, lo más indicado para probar CGIs en modo local (antes de pasarlos al servidor Web que aloja vuestras
páginas) es instalar en vuestro ordenador el sistema operativo que tenga vuestro servidor, y a ser posible el mismo
servidor Web (además del interprete Perl). El servidor Web es imprescindible ya que un CGI no funciona fuera del
mismo (a diferencia de un documento HTML que es legible por el navegador aunque no se encuentre en un servidor
Web). No obstante, si se tienen claras las diferencias entre los sistemas UNIX y Windows es posible probar muchos de
los CGIs en sistemas Windows y, tras los cambios pertinentes, pasarlos al servidor UNIX. Naturalmente, no todos
estamos dispuestos a instalar un servidor Web en nuestro ordenador y aún somos menos los dispuestos a instalar
LINUX para probar los CGIs por tanto la persona que sólo instala CGIs de forma ocasional suele probar el mismo en el
servidor Web que aloja sus páginas. Esta es una de las razones por las que Perl está tan extendido, ya que no se tiene
que compilar el CGI cada vez que se haga una modificación (normalmente porque no funciona el CGI). Por esta misma
razón (la de no tener que compilar) es bueno el Perl. Por cierto: PERL ([Link] esta disponible para (casi)
todas las plataformas. En el caso de Windows es aconsejable usar ActivePerl

Entorno Linux

La mayoría de los servidores que albergan páginas web usan UNIX como sistema operativo. Linux es su clon para
ordenadores personales que mantiene muchas de las características de su "padre". Una, la que nos interesa, la
ejecución en nuestra máquina local de páginas web con todas las características de un servidor UNIX.

Linux puede ejecutar scripts Perl y shell de forma nativa, por lo que las páginas que usa éstos, se ven automáticamente
sin ningún cambio en la configuración del sistema operativo. Con sólo usar un navegador para ver la página, ya se
ejecutarán.
El servidor Web Apache se instala por defecto al instalar Linux y por regla general los CGIs deben instalarse en el
directorio /home/httpd/cgi-bin, mientras que los documentos HTML deben estar en /home/httpd/htdocs

Entorno Windows

Para ejecutar scripts Perl bajo Win32, debe instalar el programa ActivePerl que se encuentra en el Sitio de ActiveState:
[Link]

Para instalarlo debe ejecutar el archivo ActivePerl y seguir las indicaciones del asistente, el cual lo guiará a través de
los distintos pasos. Perl es instalado por defecto en C:\Perl

Para poder ejecutar CGIs creados en Perl, además deberás instalar algun servidor Web (como por ejemplo "Internet
Information Server"). Tras esto hay que configurar el servidor Web para que permita la ejecucion de CGIs Dentro del
programa de administración del IIS, seleccionamos el sitio web que tenemos asignado, y elegimos propiedades.
Después vamos a la pestaña directorio particular, y pulsamos el botón configuración. De aquí pasamos a una nueva
ventana, donde elegimos la pestaña asignaciones para la aplicación. Esto se utiliza para que el servidor admita los
archivos '.pl' (en Windows muchas veces es necesario que los cgis creados en Perl tengan extensión .pl y no .cgi), y se
hace agregando un nuevo elemento, y añadiendo los siguientes datos:

146
Ejecutable: c:\perl\bin\[Link] %s %s
Extensión: pl
Método exclusión: PUT, DELETE
Motor de secuencias de comandos (desactivado)
Comprobar si el archivo existe (activado)

Una vez realizadas estas modificaciones, solo nos queda poner en marcha los tres sitios que acabamos de definir, y ya
está todo listo para activar tres ventanitas de navegador, un WordPad y comenzar a programar y a volcar nuestras
creaciones sin problemas.

Programación: CGI: Programación

En este tutorial crearemos un script CGI que envíe un correo y devuelva una página que indique que el correo ha sido
enviado. Sin embargo, los conceptos serán bastante geniales para permitir que el script pueda ser adaptado a
cualquier proyecto donde sea necesario enviar un correo desde un script. También veremos brevemente como
examinar las áreas de texto línea por línea.

Como siempre, cuando empezamos, necesitaremos un formulario.

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">


<html>
<!--Javier Pérez Delgado (jperez@[Link]) All Rights Reserved -->
<head>
<link rev=made href="[Link]
<title>Enviar correo desde un script CGI</title>
</head>
<body>
<P>Este formulario encía correo a la dirección de la persona mostrada.</P>
<form method="POST" action="[Link]
<P>Tu dirección: <INPUT NAME="De" SIZE=36></P>
<P>Tu URL: <INPUT NAME="xurl" SIZE=36></P>
<P>Subject: <INPUT NAME="subject" SIZE=40></P>
<P>Mensaje:</P>
<P><TEXTAREA name="body" rows=10 cols=60></TEXTAREA></P>
<P><input type="submit" value="Enviar mansaje">
<input type="reset" value="Borrar todo"></P>
</FORM>
</P>
</body>
</html>

Ahora pasaremos al script. Como siempre deberá empezar con una llamada al perl, algunos comentarios y una
llamada a la rutina ReadParse, en la librería [Link]. También haremos verificaciones de que el cuerpo del mensaje
no está vacío, y de que la dirección contiene una arroba (@). Otra validación será para comprobar que de pasan
argumentos, lo pondremos porque la gente tiene tendencia a llamar a los scripts de correo sin argumentos (eg: no
desde un formulario), no entiendo por qué. Para comprobar que no hay argumentos, simplemente examinaremos si el
vector %in que la librería [Link] nos devuelve tiene alguna tecla. Recuerda, que ningún argumento, significa que no
nos han pasado nada, sin embargo, alguien puede pasar los argumentos en blanco, de aquí las dos comprobaciones.
La manera de comprobar los valores de las teclas del vector es usar la función keys(). Esta función espera un array
asociativo como argumento. Simplemente comprobaremos que devuelve algo, imprimiendo un mensaje de error si no
hay teclas. El código pude ser este:

if (!keys(%in)) {
# niguna tecla ha sido pasada, imprimir mensaje de error, y si es apropiado salir.
}

Date cuenta de que el signo '!' al principio de la llamada a keys(), significa 'no' o negación. Quiere decir que si keys() no
devuelve nada (falso), será negado para que sea cierto y el if se ejecute. Ahora que hemos validado las entradas, y se
pueden realizar más comprobaciones, necesitaremos enviar la carta. Para ello necesitaremos un programa que acepte
una carta del stdin. Luego usaremos sendmail en el ejemplo. Si no estás en un entorno Unix, necesitarás otro
programa apropiado para hacerlo. Como no conozco otro tipo de sistemas, no puedo hacer ninguna recomendación.

Usar este programa será similar a escribir en un fichero. Necesitamos abrir el programa para aceptar la entrada,
escribir al FILEHANDLE. Abrir un programa que espera entradas por el stdin es bastante fácil em Perl. Además, es
muy fácil pasar el argumento de la línea de comandos. En este ejemplo, abriremos sendmail, y diremos que busque en
147
la carta la dirección de destino.

open(MAIL,"|/usr/lib/sendmail -t");

Como se puede observar, es igual que una llamada a fichero, pero los símbolos '>' o '<' han sido sustituidos por un '|'
(tubería). Esto indica que lo que hay detrás de la tubería es un ejecutable, y que lo que imprimamos en este
FILEHANDLE se deberá pasar como entrada a el programa ejecutable.

Nota: No he comprobado si la operación anterior terminó con éxito, pero deberíamos hacerlo. La manera más sencilla
de hacerlo, es apoyarnos en que el comando open devuelve true cuando ha tenido éxito. Solo debemos hacer un OR
entre el comando open y otro comando conociendo que ese comando será ejecutado si el open falla. El ejemplo de
abajo realiza un OR con el comando die. Este comando imprime un mensaje de error y sale del programa.

open(MAIL,"|/usr/lib/sendmail -t") || die "La llamada a sendmail ha fallado";

El imprimir la carta funciona como esperamos. Recuerda, sin embargo, que estamos imprimiendo un trozo de e-mail,
por lo que deberemos poner las cabeceras adecuadas, un línea en blanco y el cuerpo del mensaje. Puedes echar un
vistazo a un e-Mail que hayas recibido y comprobar las cabeceras. Describiré abajo lo más importante. Los
comentarios serán de ayuda.

# Esta es la línea 'para'. Si tenemos el nombre y la dirección, escribiremos


# primero el nombre y luego la dirección entre <>
print MAIL "To: $in{'De'}\n";

# Esta es la línea 'De'. Pondremos el mismo nombre en la línea 'De' y en la 'para'


# Recuerda que no hay seguridad comprobando el email, por ello estas líneas
# pueden ser falsificadas. NO FALSIFIQUES EL EMAIL, no es divertido y en algunos lugares
# es un delito.
print MAIL "From: $in{De}\n";

# Esta es la línea 'contestar a'. Esta línea se incluye debido a que algunos programas
# son bastante tontos y no siempre responden a la línea 'De'.
# Al menos respetarán esta línea.
print MAIL "Reply-To: $in{De}\n";

# Lo siguiente son cabeceras X. Son creadas por el usuario y pueden contener


# todo lo que desees. Incluyo una línea de descripción
# también he escrito las líneas REMOTE_HOST, REMOTE_ADDR, y REMOTE_USER para
# ayudar al seguimiento (traking) de la carta.
# Solo escribo la línea X-URL si el usuario ha dado una url. Este tipo
# de comprobación probablemente hecha también en el X-Remote-Host y X-Remote-User

print MAIL "X-mailer: [Link], a cgi-bin script at [Link] /[Link]\n";


print MAIL "X-Remote-Host: $ENV{'REMOTE_HOST'} ($ENV{'REMOTE_ADDR'})\n";
print MAIL "X-Remote-User: $ENV{'REMOTE_USER'}\n";
print MAIL "X-disclaimer: La línea De: puede estar falsificada ";
print MAIL "No confiar en un 100% sobre la integridad de este mail. ";
print MAIL "No somos responsables de este correo de ninguna manera\n";
if ($in{xurl} ne "") {
print MAIL "X-URL: $in{xurl}\n";
}

# Finalmente escribimos la famosa línea del asunto.


# Presatr atención en la segunda nueva línea. Esta es la línea
# que va a separar el encabezado del cuerpo del mensaje.
print MAIL "Subject: $in{subject} (WWW generated email)\n\n";

# Ahora vamos a escribir elcuerpo del mensaje.


print MAIL $in{'body'};

Solo quedan dos cosas. Primero debemos cerrar la conexión con sendmail. Segundo debemos imprimir una página
enseñando al usuario la carta que envía.

Para cerrar la conexión, usaremos el comando close, justo como en cualquier otro manejador:

close(MAIL);

Imprimir la respuesta no es diferente a las otras páginas generadas dinámicamente que ya hemos creado
anteriormente. Deberemos dividir el campo TEXTAREA en líneas colocando un <BR> al final de cada una. Esto se
148
hace principalmente para demostrar como se divide un campo de texto. Recuerda sin embargo que html no respeta las
nuevas líneas. Con ello se consigue el poder hacer los párrafos de manera más clara, pero el beneficio de hacerlo es
cuestionable.

El valor del campo body (cuerpo del mensaje), no es más que un conjunto de frases separadas con un retorno de
carro. Podemos usar la función split() para separarlas. Esta función necesita dos parámetros: la cadena o carácter para
separar y la variable a separar, y retorna un array con los elementos separados. Usaremos split en un bucle foreach:

foreach $l (split('\n',$in{'body'})) {
print "$l<BR>\n";
}

Como se puede ver separa la variable $in{'body'} en partes cada nueva línea, y la imprime seguida de un <BR>.

Ejemplos de CGI en un servidor Apache sobre LINUX

Introducción

Tendremos que instalar el servidor Apache y posteriormente configurarlo correctamente para que se puedan ejecutar
los archivos CGI.
El objetivo es poder apreciar el funcionamiento de dos formularios dados con anterioridad.

Será importante comprobar los permisos de escritura para poder almacenar los datos en un fichero plano.

El servidor tendrá que estar configurado para trabajar en localhost. Le asignaremos un puerto distinto al puerto por
defecto (80).

Entorno

Inicialmente dispondremos de una máquina con sistema operativo linux pero sin ningún servidor web instalado.
La idea es realizar la práctica para trabajo local.

Implementación

MakeFile

El MakeFile es un archivo de procesamiento por lotes encargado de establecer algunos parámetros en la compilación
de archivos.
Utilizar este archivo no es exclusivamente necesario. Puesto que podríamos compilar directamente con el gcc.
El motivo de usar esto es simplemente para ahorrarnos tener que escribir todos los parámetros de compilación cada
vez que deseamos compilar.

A continuación mostramos las principales líneas de este archivo con una corta explicación:
149
Make File

/ / I ndicam os los archivos ha com pilar


all: com anda llist ar_com andes

...

/ / Realiza el linkaj e del CGI com anda


com anda: com anda.o ut il.o
$( CC) com anda.o ut il.o - o ../ cgi- bin/ com anda

/ / Realiza el linkaj e del CGI llist ar_com andes


llist ar_com andes: llist ar_com andes.o ut il.o
$( CC) llist ar_com andes.o ut il.o - o ../ cgi- bin/ llist ar_com andes
...

Como podemos ver el archivo genera un procesamiento por lotes añadiendo todas las opciones de compilación.
De este modo solo tendremos que ejecutar make cada vez que deseemos compilar los CGI.

Compilar los CGI

/ / Ent ram os en el direct orio que cont iene los CGI


cd apache/ cgi- bin/

/ / Ej ecut am os el Mak eFile


m ake

/ / Com pila y Linka los ar chivos


gcc - c com anda.c
gcc com anda.o ut il.o - o ../ cgi- bin/ com anda
gcc - c llist ar_com andes.c
gcc - c llist ar_com andes.o ut ils.o - o ../ cgi- bin/ llist ar_com andes

Comanda

El CGI comanda será el encargado de almacenar los datos del pedido recibido y almacenarlos dentro de un archivo
denominado [Link] .
Este archivo es el que mantendrá el estado para que al hacer el listado de pedidos podamos observar los datos.

Será necesario que la carpeta /cgi-bin/ tenga los permisos de escritura correspondientes. Puesto que sino el CGI no
podría modificar este archivo.

Los datos serán enviados por el cliente mediante el método GET. El servidor almacena los datos y posteriormente
muestra un resultado al cliente.

/ / Definim os una est r uct ura para alm acenar el dat o y valor
/ / enviados por el client e...
t ypedef st ruct {
char nam e[ 128] ;
char val[ 128] ;
} ent ry;

/ / Declaram os los m ét odos y funciones que vam os a ut ilizar ...


void get word( char * word, char * line, char st op) ;
char x2c( char * what ) ;
void unescape_url( char * url) ;
void plust ospace( char * st r) ;
void m odel_pr eu( char * m odel_preu, char * m odel, int * preu) ;

/ / Est r uct ura ut ilizada para alm acenar los dat os en el archivo...
t ypedef st ruct {
int n_t aules;
char m odel_t aula[ 128] ;
int preu_t aula;
int n_cadir es;
char m odel_cadira[ 128] ;
int preu_cadira;
int n_llum s;
char m odel_llum [ 128] ;
int preu_llum ;
} t com anda;

void escriure_com anda( FI LE* f, const t com anda* com anda) ;

150
/ / Cuerpo principal del program a...
m ain( int argc, char * argv[ ] ) {
ent ry ent ries[ 10000] ;
regist er int x, m = 0;
char * cl;
char m odel[ 100] ;
t com anda com anda; / / Dat os ha alm acenar...
int preu_t ot al;
FI LE * f; / / archivo para alm acenar...

/ / Env iam os la cabezera HTML


print f( " Cont ent - t ype: t ex t / ht m l% c% c" ,10,10) ;

/ / En caso que no nos env íen los dat os vía GET m ost ram os un error...
if( st r cm p( get env ( " REQUEST_METHOD" ) ," GET" ) ) {
print f( " This scr ipt should be referenced wit h a METHOD of GET.\ n" ) ;
print f( " I f you don't underst and t his, see t his " ) ;
print f( " < A HREF= \ " ht t p: / / [Link]/ SDG/ Soft ware/ Mosaic/ Docs/ fill- out - form s/ overview .ht m l\ " > form s
overview< / A> .% c" ,10) ;
exit ( 1) ;
}

/ / Obt enem os la variable de ent orno QUERY_STRI NG par a obt ener los dat os enviados
cl = get env ( " QUERY_STRI NG" ) ;
if( cl = = NULL) {
print f( " No query infor m at ion t o decode.\ n" ) ;
exit ( 1) ;
}

/ / Separam os cada uno de los cam pos recibidos, split por &...
/ / Después alm acenam os los dat os r ecibidos dent ro de una est ruct ura t em poral
for( x = 0; cl[ 0] ! = '\ 0'; x+ + ) {
m = x;
get word( ent r ies[ x ] .val, cl, '&') ;
plust ospace( ent ries[ x] .v al) ;
unescape_url( ent r ies[ x ] .val) ;
get word( ent r ies[ x] .nam e, ent r ies[ x] .v al, '= ') ;
}

/ / Alm acenam os t odos los cam pos recibidos dent ro de la est r uct ura
for( x = 0; x < m ; x+ + ) {
if( ! st r cm p( ent ries[ x] .nam e, " n_t aules" ) ) {
com anda.n_t aules = at oi( ent ries[ x] .val) ;
}
if( ! st r cm p( ent ries[ x] .nam e, " m odel_pr eu_t aula" ) ) {
m odel_preu( ent ries[ x ] .val, com anda.m odel_t aula, &com anda.preu_t aula) ;
}
if( ! st r cm p( entries[ x] .nam e, " n_cadires" ) ) {
com anda.n_cadires = at oi( ent ries[ x ] .val) ;
}
if( ! st r cm p( ent ries[ x] .nam e, " m odel_pr eu_cadira" ) ) {
m odel_preu( ent ries[ x ] .val, com anda.m odel_cadira, &com anda.preu_cadir a) ;
}
if( ! st r cm p( entries[ x] .nam e, " n_llum s" ) ) {
com anda.n_llum s = at oi( ent ries[ x ] .val) ;
}
if( ! st r cm p( ent ries[ x] .nam e, " m odel_pr eu_llum " ) ) {
m odel_preu( ent ries[ x ] .val, com anda.m odel_llum , &com anda.preu_llum ) ;
}
}

/ / Verificam os la consist encia de los dat os recibidos...


if( com anda.n_t aules = = 0 && com anda.n_cadires = = 0 && com anda.n_llum s = = 0) {
print f( " < H1> Com anda buida! < / H1> % c" , 10) ;
print f( " No s'ha donat cap quant it at m és gran de 0% c" , 10) ;
} else {
/ / Cream os el archivo donde alm acenarem os los dat os recibidos...
f = fopen( " com andes.t xt " , " a" ) ;
if( ! f) {
print f( " < H1> Error en guardar com anda! < / H1> % c" , 10) ;
print f( " No s'ha pogut obrir el fit xer on es guarden les dades de les com andes% c" , 10) ;
exit ( 1) ;
}
/ / Escribim os la est r uct ura de dat os que cont iene la infor m ación recibida...
escriure_com anda( f, &com anda) ;
fclose( f) ;

/ / Enviam os un aviso al client e indicandole el ex it o de la operación...


print f( " < H1> Dades de la com anda< / H1> % c" , 10) ;
151
print f( " < ul> % c" , 10) ;
/ / Most ram os los dat os recibidos...
if( com anda.n_t aules > 0) {
print f( " < li> < code> % d t aules m odel % s am b preu % d< / code> % c" , com anda.n_t aules,
com anda.m odel_t aula, com anda.preu_t aula, 10) ;
}
if( com anda.n_cadires > 0) {
print f( " < li> < code> % d cadir es m odel % s am b preu % d< / code> % c" , com anda.n_cadir es,
com anda.m odel_cadira, com anda.preu_cadira, 10) ;
}
if( com anda.n_llum s > 0) {
print f( " < li> < code> % d llum s m odel % s am b preu % d< / code> % c" , com anda.n_llum s,
com anda.m odel_llum , com anda.preu_llum , 10) ;
}
print f( " < / ul> % c" , 10) ;
print f( " < br> % c" , 10) ;
preu_t ot al = com anda.n_t aules* com anda.preu_t aula +
+ com anda.n_cadires* com anda.preu_cadira +
+ com anda.n_llum s* com anda.preu_llum ;
print f( " Preu t ot al: % d% c" , preu_t ot al, 10) ;
}

/ / Most ram os el link para volver...


print f( " < br> % c" , 10) ;
print f( " < br> % c" , 10) ;
print f( " < a hr ef= \ " / m [Link] m l\ " > Tornar a la plana principal< / a> % c" , 10) ;
}

/ / Copiam os una cadena dent ro de la est ruct ura...


void m odel_pr eu( char * m odel_preu, char * m odel, int * preu) {
char st r_preu[ 100] ;
int x = ind( m odel_preu, '- ') ;
/ * x ! = - 1* /
m em cpy( m odel, m odel_pr eu, x ) ;
st rcpy( st r_preu, &m odel_preu[ x+ 1] ) ;
* preu = at oi( st r_preu) ;
}

/ / Escr ibe los dat os de la est r uct ura dent ro del archivo
/ / pasado por parám et ro...
void escriure_com anda( FI LE* f, const t com anda* com anda) {
fprint f( f, " % d\ n" , com anda- > n_t aules) ;
fprint f( f, " % s\ n" , com anda- > m odel_t aula) ;
fprint f( f, " % d\ n" , com anda- > preu_t aula) ;
fprint f( f, " % d\ n" , com anda- > n_cadires) ;
fprint f( f, " % s\ n" , com anda- > m odel_cadir a) ;
fprint f( f, " % d\ n" , com anda- > preu_cadira) ;
fprint f( f, " % d\ n" , com anda- > n_llum s) ;
fprint f( f, " % s\ n" , com anda- > m odel_llum ) ;
fprint f( f, " % d\ n" , com anda- > preu_llum ) ;
fprint f( f, " \ n" ) ;
}

Llistar_comandes

El CGI llistar_Comandes es el encargado de abrir el fichero de texto que contiene todos los pedidos y mostrar un
listado al cliente.

Previamente el usuario tendrá que loginarse para ser autentificado por el servidor. Los datos se enviaran mediante el
método POST puesto que es más seguro.

/ / Est r uct ura para alm acenar t em poralm ent e el cam po y valor
/ / enviados por el usuar io...
t ypedef st ruct {
char * nam e;
char * val;
} ent ry;

/ / Declaración de m ét odos y funciones...


char * m ak eword( char * line, char st op) ;
char * fm akew ord( FI LE * f, char st op, int * len) ;
char x2c( char * what ) ;
void unescape_url( char * url) ;
void plust ospace( char * st r) ;

/ / Declaración de las const ant es usuar io y password...


define USERI D " pxc"
152
define PASSWORD " abc"

/ / Est ruct ura del fichero de t ext o a leer...


t ypedef st ruct {
int n_t aules;
char m odel_t aula[ 128] ;
int preu_t aula;
int n_cadir es;
char m odel_cadira[ 128] ;
int preu_cadira;
int n_llum s;
char m odel_llum [ 128] ;
int preu_llum ;
} t com anda;

/ / Declaración de funciones de lect ura...


int llegir_com anda( FI LE * f, t com anda * com anda) ;
int r ead_line( FI LE * f, char * st r) ;

/ / Cuerpo principal del program a...


m ain( int argc, char * argv[ ] ) {
ent ry ent ries[ MAX_ENTRI ES] ;
regist er int x,m = 0;
int cl;
char * user id;
char * passw ord;
FI LE * f;
t com anda com anda;
/ / Env iam os la cabecera HMTL...
print f( " Cont ent - t ype: t ex t / ht m l% c% c" ,10,10) ;

/ / Com probam os con que m ét odo nos envían los dat os...
if( st r cm p( get env ( " REQUEST_METHOD" ) ," POST" ) ) {
print f( " This scr ipt should be r eferenced w it h a METHOD of POST.\ n" ) ;
print f( " I f you don't underst and t his, see t his " ) ;
print f( " < A HREF= \ " ht t p: / / ww [Link]/ SDG/ Soft war e/ Mosaic/ Docs/ fill- out - form s/ overview .ht m l\ " > form s
overview< / A> .% c" ,10) ;
exit ( 1) ;
}

/ / Com probam os el t ipo de codificación...


if( st r cm p( get env ( " CONTENT_TYPE" ) ," applicat ion/ x - www - form - urlencoded" ) ) {
print f( " This scr ipt can only be used t o decode for m result s. \ n" ) ;
exit ( 1) ;
}

cl = at oi( get env( " CONTENT_LENGTH" ) ) ;

/ / Separam os los cam pos y valores enviados por el usuar io...


for( x = 0; cl && ( ! feof( st din) ) ; x+ + ) {
m = x;
ent ries[ x ] .val = fm akeword( st din, '&', &cl) ;
plust ospace( ent ries[ x] .v al) ;
unescape_url( ent r ies[ x ] .val) ;
ent ries[ x ] .nam e = m ak eword( ent r ies[ x] .val, '= ') ;
}

/ / Recogem os los cam pos usuario y passw ord...


for( x = 0; x < m ; x+ + ) {
if( ! st r cm p( entries[ x] .nam e, " userid" ) ) {
userid = ent r ies[ x ] .val;
}
if( ! st r cm p( entries[ x] .nam e, " password" ) ) {
password = ent r ies[ x ] .val;
}
}

/ / Com probam os que el passw ord y usuario sean correct os...


if( ! st r cm p( user id, USERI D) && ! st r cm p( password, PASSWORD) ) {
/ / Abrim os el fichero de t ext o...
f = fopen( " com andes.t x t " , " r" ) ;
if( ! f) { / / No exist en pedidos en el archivo...
print f( " < H1> No hi ha cap com anda< / H1> % c" , 10) ;
} else { / / Pasam os a leer el archivo...
print f( " < H1> Llist at de com andes< / H1> % c" , 10) ;
print f( " < br> % c" , 10) ;

/ / Leem os los pedidos cont enidos en el fichero y enviam os


/ / Los dat os al client e...
while( llegir_com anda( f, &com anda) ) {
153
print f( " < hr> % c" , 10) ;
print f( " < ul> % c" , 10) ;
if( com anda.n_t aules > 0) {
print f( " < li> < code> % d t aules m odel % s am b preu % d. Tot al: % d< / code> % c" ,
com anda.n_t aules, com anda.m odel_t aula, com anda.preu_t aula,
com anda.n_t aules* com anda.preu_t aula, 10) ;
}
if( com anda.n_cadir es > 0) {
print f( " < li> < code> % d cadir es m odel % s am b preu % d. Tot al: % d< / code> % c" ,
com anda.n_cadires, com anda.m odel_cadir a, com [Link] eu_cadira,
com anda.n_cadires* com anda.preu_cadira, 10) ;
}
if( com anda.n_llum s > 0) {
print f( " < li> < code> % d llum s m odel % s am b preu % d. Tot al: % d< / code> % c" ,
com anda.n_llum s, com anda.m odel_llum , com anda.preu_llum ,
com anda.n_llum s* com anda.preu_llum , 10) ;
}
print f( " < / ul> % c" , 10) ;
print f( " Preu t ot al: % d% c" , com anda.n_t aules* com anda.preu_t aula +
com anda.n_cadires* com anda.preu_cadira +
+ com anda.n_llum s* com anda.preu_llum ,
10) ;
}
print f( " < hr> % c" , 10) ;
fclose( f) ;
}

} else { / / El usuar io o el password son incorrect os...


print f( " < H1> Error de login! < / H1> % c" , 10) ;
print f( " El usernam e i/ o el password son incorrect es% c" , 10) ;
}

/ / Visualizar link de volver ...


print f( " < br > % c" , 10) ;
print f( " < br > % c" , 10) ;
print f( " < a href= \ " / m [Link] m l\ " > Tornar a la plana principal< / a> % c" , 10) ;
}

/ / Leem os el ar chivo de pedidos y lo int roducim os dent ro de la est r uct ura...


int llegir_com anda( FI LE * f, t com anda * com anda) {
char st r [ 128] ;

if ( ! read_line( f, st r ) ) ret ur n 0;
com anda- > n_t aules = at oi( st r ) ;
read_line( f, st r) ;
st rcpy( com anda- > m odel_t aula, st r ) ;
read_line( f, st r) ;
com anda- > preu_t aula = at oi( st r) ;

read_line( f, st r) ;
com anda- > n_cadir es = at oi( st r) ;
read_line( f, st r) ;
st rcpy( com anda- > m odel_cadira, st r ) ;
read_line( f, st r) ;
com anda- > preu_cadira = at oi( st r) ;

read_line( f, st r) ;
com anda- > n_llum s = at oi( st r) ;
read_line( f, st r) ;
st rcpy( com anda- > m odel_llum , st r ) ;
read_line( f, st r) ;
com anda- > preu_llum = at oi( st r) ;

read_line( f, st r) ;

ret urn 1;
}

/ / Leer una cadena de caract eres del archivo...


int r ead_line( FI LE * f, char * st r) {
int i = 0;
char c = fget c( f) ;
if( c = = EOF) ret urn 0;
while( c ! = '\ n') {
st r[ i] = c;
i+ + ;
c = fget c( f) ;
}
st r[ i] = '\ 0';
ret urn 1;
}
154
Resultados

Hemos conseguido que toda la práctica funcione con completa normalidad.

CGI

Esta práctica sirve de gran utilidad para aprender los principios básicos de la tecnología CGI.

Ventajas de usar CGI

- Al ser un CGI es un algoritmo compilado, eso hace que sea más rápido en su ejecución puesto que no es
interpretado, solo ejecutado.

Inconvenientes de usar CGI

- Tener que escribir mucho para hacer pequeñas tareas como esta práctica.
- Problemas de seguridad. Cada CGI se ejecuta en un hilo diferente.
Si un cliente ejecuta reiteradamente un mismo CGI abrirá muchos hilos de ejecución en el servidor.
El servidor puede llegar a caer por falta de recursos.
- Las salidas HTML están integradas dentro del código. Es difícil de mantener.

Apache

El apache permite trabajar de forma transparente. Es decir, no es necesario tener en cuenta el servidor a la hora de
programar.

Nuestra opinión es que parece ser un servidor complejo a la hora de realizar configuraciones.
Otros servidores como el IIS (Internet Informacion Server) parecen más intuitivos en este sentido.

Conclusiones

El trabajo realizado pasa por una primera fase de documentación para poder aprender el funcionamiento de los CGI.
Empezamos estudiando los ejemplos anteriores.

Después pasamos ha instalar el servidor Apache siguiendo los pasos indicados en la memoria de la práctica.
Seguidamente verificamos los formularios y elaboramos la programación de los CGI.

Por último realizamos las pruebas de funcionamiento y la documentación de la práctica.

155
APÉN DI CES

156
I n st a la ción de u n se r vidor W e b ( I I S)
Si querem os crear un servidor Web, uno de los m ej ores pasos para em pezar es inst alarnos el ent orno de desarrollo en nuest ra propia
m áquina.

La plat aform a Windows, t rae consigo el serv idor I I S ( I n t e r n e t I n for m a t ion Se r ve r ) y os vam os a enseñar com o inst alarlo.

Lo prim ero que debem os hacer ir al panel de cont rol y pinchar la opción de inst alar com ponent es Windows.

En la siguient e vent ana ( com o lo t engo en I ngles) el W in dow s 2 0 0 0 Pr ofe sion a l aparece com o Add/ Re m ove W in dow s Com pon e n t e s

Nos aparece una vent ana .. y seleccionalos en I I S

157
Es posible que nos pida el CD original

Y así sin hacer m ás, ya t enenem os inst alado un serv idor Web.

Vam os ahora a rev isar que nos ha aparecido nuevo el el sist em a.

Si exam inam os el m e n u de a dm in ist r a ción

Verem os que dent ro de est os t res elem ent os hay nuevos com ponent es .. en serv icios podem os ver que ha aparecido uno nuevo

Para adm inist rar nuest ro sist em a, vam os a pinchar en Pe r son a l W e b M a n a ge r

158
Est a herram ient a, perm it e a usuarios principiant es adm inist rar su sist em a, com probar los accesos, et c... Luego verem os com o ut ilizar
opciones m ás avanzadas con I n t e r n e t Se r vice s M a n a ge r .

Com o podem os ver, t odo lo que querem os publicar en nuest ro Web, debe est ar colgando de la carpet a c:\ in e t pu b\ w w w r oot

Ahora vam os a ver com o queda desde un navegador nuest ro servidor.

Abrim os un nav egador y escribim os: h t t p:/ / loca lh ost y vem os la página que aparece

159
Podem os observar que ha aparecido una página por defect o .... loca lst a r t .a sp

Si se pregunt a porque ... solo t iene que ir a la lenguet a Adva n ce ( Avanzado) en su Personal Web Manager

donde se puede ver que el sist em a busca aut om át icam ent e una página llam ada D e fa u lt .h t m o D e fa u lt .a sp o iisst a r t .a sp
160
Vam os a crear nuest ra propia página y la vam os a colgar de nuest ro serv idor... para ello, vam os a usar un program a conocido por casi t odo
el m undo ... el MsWord

Dam os a guardar com o .... delault .ht m

Por lo que si recargam os la página ... podem os ver

Ahora, usando el Word vam os a crear un docum ent o m ás com plet o


161
Asi quedaría en m i navegador

Ahora vam os a ver m ás cosas ..... com o por ej em plo las acciones avanzadas de las que hem os hablado ...en est e caso v em os I n t e r n e t
I n for m a t ion Se r vice s ( recordad que accedem os desde el m enu de serv icios adm inist rat ivos)

162
Si pulsam os el bot ón de r e ch o y pr opie da de s donde vem os opciones avanzadas de adm inist ración

Podem os cam biar configuraciones ... com o por ej em plo el num ero de usuarios que van a acceder .... para m ej orar el rendim ient o del
sist em a en general ...

163
Con figu r a r e l I I S pa r a qu e fu n cion e con PH P.

El I nt ernet I nform at ion Server ( I I S desde ahora) por defect o solo adm it e la ej ecución de script s ASP ( .asp) y por supuest o
paginas HTML t radicionales, por m edio de est e art iculo podrem os configurar nuest ro I I S para que t am bién soport e script s PHP.

I n st a la r PH P
Prim ero y principal necesit am os t ener inst alado el m ot or PHP, para est o debem os baj ar la ult im a versión de PHP para Windows
desde [Link] .

N OTA: Algunos paquet es de inst alación configuran de form a aut om át ica el I I S para que funcione con PHP, por lo general los
paquet es que encont ram os en archivos ZI P no lo hacen así que t om arem os en cuent a est os archivos para el art iculo.

Una ves que baj o nuest ro archivo .ZI P lo descom prim im os, en nuest ro caso lo harem os en “ C: \ ” cosa de que quede t odo
inst alado baj o la carpet a “ C: \ PHP”

Con figur a n do PH P
Una ves inst alado necesit am os localizar y abrir el archivo “ PHP.I NI - DI ST” que se ubica dent ro de la carpet a “ C: \ PHP” o en la que
hayan inst alado el PHP.

Una ves abiert o buscam os la línea...

;cgi.force_redirect = 1

Le est ablecem os a 0 el valor y le quit am os el com ent ario, ósea quedaría así…

cgi.force_redirect = 0

Est o es necesario para que nuest ros script s PHP funcionen baj o el I I S. Una ves echo est e cam bio debem os guardar el archivo en
la carpet a de Windows ( C: \ WI NDOWS o C: \ WI NNT) baj o el nom bre [Link] si nos pide sobrescribir el archivo ponem os que “ SI ” .

Con figur a n do e l I I S
Ya t enem os inst alado y configurado el PHP solo falt a indicarle a el I I S que lo adm it a com o “ Engine” para est o abrim os nuest ro
I I S...

Seleccionam os el “ Default Web sit e” apret am os el bot ón derecho y elegim os “ Propiedades/ Propert ies” y seleccionam os la solapa
“ Hom e Direct ory/ Direct orio Part icular” y hacem os click en el bot ón “ Configuración”

164
Dent ro de “ Configuracion” elegim os la solapa “ App Mapping/ Asignaciones” y hacem os click en “ Add/ Agregar”

En el prim er cam po indicam os la rut a del int erpret e de PHP en nuest ro caso “ C: \ PHP\ [Link]” y en el segundo la ext ensión que
t ienen nuest ros script s PHP, por lo general “ .php”

Re a liza n do un Te st
Bien, para com probar que t odo salió bien podem os crear un archivo llam ado “ t est .php” que lo ubicam os en la carpet a de
publicación web, en el int erior del archivo ponem os lo siguient e...

<?
phpinfo();
?>

Est a función devolverá t oda la inform ación relacionada con PHP así que si lo ej ecut am os en nuest ro navegador
( ht t p: / / localhost / t est .php) y vem os una pant alla com o la siguient e es que salió t odo bien...

165
WI N N T

166
LA CONSOLA DE RECUPERACIÓN

Vamos a ver en este artículo qué es la Consola de Recuperación y cómo usarla correctamente, ya que se puede
convertir en nuestra mejor aliada, sobre todo cuando no es posible acceder a nuestro equipo en “modo seguro”.

La Consola de Recuperación puede llevarnos a engaño por su aspecto austero de línea de comandos, pero puede ser
utilizada para recuperarnos de serios problemas de inicio, accediendo a ella como usuario con derechos administrativos.

La ejecución de la Consola de Recuperación se puede llevar a cabo de dos maneras:



Iniciándola directamente desde el CD de Windows XP
Instalándola en nuestro sistema y accediendo a ella desde el menú de inicio

INICIO DE LA CONSOLA DESDE EL CD DE WINDOWS XP

• Cambiamos la secuencia de arranque de nuestro equipo desde las opciones “Advance BIOS Features” de
nuestra BIOS y colocamos el CD como primer dispositivo de lectura en el arranque o reinicio “First Boot Device”

• Colocamos el CD de Windows XP en su bandeja y reiniciamos nuestro equipo

• Pulsamos cualquier tecla para iniciar desde CD (verás un aviso en el extremo inferior de la pantalla “Presiona
cualquier tecla para iniciar desde el CD”)

• Esperamos a la carga de archivos

• Aparecerá la pantalla de instalación de Windows XP y seleccionamos la opción del medio “Para recuperar una
instalación de Windows XP usando la consola de recuperación, presiona la tecla R”

• Si tenemos multiarranque, seleccionaremos el sistema a recuperar mediante el numeral correspondiente al que


esté asociado en la pantalla

• Te solicitará posteriormente la contraseña de administrador que pusiste cuando instalaste el sistema por primera
vez (OJO, la consola NO activa el “num lock”, si tu contraseña tiene números y usas el teclado numérico de la
derecha del teclado, actívalo)

• Más adelante se describen los comandos, pero si quieres verlos desde la pantalla de la Consola de
Recuperación, escribe “help”. Una vez obtenidos, puedes ver una descripción de los mismos escribiendo “help
comando”

• Para salir de la Consola de Recuperación y reiniciar el equipo, escribiremos “exit”.

INSTALACIÓN DE LA CONSOLA DE RECUPERACIÓN EN EL MENU DE INICIO

• Colocamos el CD de Windows XP en su unidad y desde “Inicio – Ejecutar”, escribimos:

X:\i386\[Link] /cmdcons

Donde “X” corresponde a la letra de la unidad donde se encuentra el CD.

• Aparecerá un mensaje del programa de instalación que describe la opción de la Consola de Recuperación, el
espacio que requiere en el disco duro y la pregunta:

Desea instalar la Consola de Recuperación?

• Pulsamos “SI” y la próxima vez que arranquemos nuestro equipo, tendremos en el menú de arranque la opción
de la Consola de Recuperación.

167
• Una de las mayores ventajas de la Consola de Recuperación respecto, por ejemplo, al “modo seguro”, es que
esta nos permite acceder incluso en el caso que existan archivos corruptos, y desde la misma es posible realizar
las siguientes opciones:

o Copiar, cambiar, reemplazar, cambiar el nombre de archivos y carpeta de XP


o Activar o desactivar Servicios o dispositivos
o Crear y dar formato a unidades
o Reparar el sector de arranque
o Reparar el sistema desde un CD

RESTRICCIONES

Solo será posible acceder a los archivos que se encuentren en las siguientes ubicaciones:

• El directorio raíz de cualquier volumen

• La carpeta %SystemRoot% y las carpetas que cuelgan de ella donde XP se haya instalado (C:\Windows por
regla general)

• La carpeta Cmdcons de la Consola de Recuperación y sus subcarpetas (sólo si hemos instalado la Consola de
Recuperación como opción en el menú de inicio)

• Los archivos y carpetas que se encuentran en discos extraíbles (CD, ZIP,disquetes)

REPARAR ARCHIVOS DE ARRANQUE DAÑADOS

Archivo [Link] esta dañado o no aparece:


desde la Consola de Recuperación, escribimos:



bootcfg/scan para ver las instalaciones de XP disponibles en todos los discos


bootcfg/rebuild para reemplazar automáticamente el archivo [Link] existente
bootcfg/add para añadir una instalación de XP a [Link] sin cambiar las entradas existentes.

Archivos críticos del sistema están dañados o no están:

Podemos restaurar los archivos Ntldr, [Link], [Link] y controladores en función de su ubicación, si
el archivo está en el CD de XP podemos usar el comando “copy” especificando origen y destino.
Windows abre automáticamente los archivos comprimidos, en el caso que estos se encuentren en un archivo
“*.cab” deberemos utilizar el comando “expand”.

Otro sistema ha reemplazado el código del sector de arranque:

Escribiremos:

Fixboot

Para rescribir el código del sector de arranque, deberemos reiniciar el sistema.

ACTIVAR-DESACTIVAR SERVICIO Y CONTROLADORES

Debemos saber que no todos los servicios de XP pertenecen al sistema, algunos de ellos son instalados por terceros, por
ejemplo, Nvidia, así como los controladores.
Algunas veces estos servicios y controladores de terceros, no están escritos o programados de manera eficiente y
causan problemas en XP generando reinicios o paradas del sistema incluso entrando al mismo en “modo seguro”.

Con la Consola de Recuperación, podremos por ejemplo desactivar un servicio si sospechamos que es el causante del
problema y no podemos acceder al sistema en “modo seguro”.

Listsvc Con este comando, podemos ver una lista de los servicios y controladores del sistema y su estado
actual

Disable Con este comando, seguido del nombre del controlador o servicio, podremos detenerlo. Este comando
define el tipo de inicio del servicio como “service_disabled”, así que antes de ejecutarlo deberemos consultar el
valor del tipo de inicio actual del servicio a deshabilitar: service_boot_start, service_system_start,
service_auto_start o service_demand_start y tomar nota del mismo para el caso de volverlo a activar.

168
Enable Con este comando, seguido del nombre del servicio o controlador, más el valor del tipo de inicio que
anotamos al deshabilitarlo, podremos volver a activar el servicio o controlador deshabilitado, una vez
comprobado que no es el causante de nuestro problema.

COMANDOS DE LA CONSOLA DE RECUPERACIÓN

Attrib

Cambia los atributos de archivo de un único archivo o directorio. Este comando establece o quita los atributos de sólo
lectura, sistema, oculto y comprimido asignados a los archivos o a los directorios.

El comando attrib con los parámetros que se enumeran a continuación sólo está disponible cuando se utiliza la Consola
de recuperación. El comando attrib con distintos parámetros está disponible desde el símbolo del sistema.

attrib [+r|-r] [+s|-s] [+h|-h] [+c|-c] [[unidad:][rutaDeAcceso] nombreDeArchivo]

Parámetros

+r Establece el atributo de archivo de sólo lectura.

-r Quita el atributo de archivo de sólo lectura.

+s Establece el atributo de archivo del sistema.

-s Quita el atributo de archivo del sistema.

+h Establece el atributo de archivo oculto.

-h Quita el atributo de archivo oculto.

+c Establece el atributo de archivo comprimido.

-c Quita el atributo de archivo comprimido.

[[unidad:][rutaDeAcceso] nombreDeArchivo] Especifica la ubicación y el nombre del archivo o el directorio que


desea procesar. Puede cambiar los atributos para sólo un archivo o un directorio cada vez.

Nota

• Puede cambiar varios atributos para un archivo o un directorio determinados con un único comando.

Batch

Ejecuta los comandos especificados en un archivo de texto. El comando batch sólo está disponible cuando se utiliza la
Consola de Recuperación, que se puede iniciar desde el CD de instalación.

batch archivoDeEntrada [archivoDeSalida]

Parámetros

archivoDeEntrada

Especifica el archivo de texto que contiene la lista de comandos que se van a ejecutar. archivoDeEntrada puede
constar de una letra de unidad seguida de un signo de dos puntos, un nombre de directorio, un nombre de
archivo o una combinación de ellos.

archivoDeSalida

Si se especifica alguno, almacena el resultado de los comandos en el archivo citado. Si no se especifica este
parámetro, el resultado se presentará en la pantalla.

169
Ejemplo

El ejemplo siguiente ejecuta el archivo de proceso por lotes C:\Trabajos\[Link] y almacena el resultado en el archivo
C:\Trabajos\[Link]:

batch c:\trabajos\[Link] c:\trabajos\[Link]

Nota

• Un archivo por lotes no puede contener un comando batch anidado.

Bootcfg

Utilice el comando bootcfg para la configuración y recuperación de inicio ([Link] en la mayoría de los equipos).

El comando bootcfg con los parámetros que se enumeran a continuación sólo está disponible cuando se utiliza la
Consola de recuperación.
El comando bootcfg con distintos parámetros está disponible desde el símbolo del sistema.

Uso:

bootcfg /default

Establece la entrada de inicio predeterminada.

bootcfg /add

Agrega una instalación de Windows a la lista de inicio.

bootcfg /rebuild

Se repite en todas las instalaciones de Windows y permite al usuario elegir qué elementos agregará.

Nota

o Antes de utilizar bootcfg /rebuild debe haber hecho previamente una copia de seguridad del archivo
[Link] mediante bootcfg /copy.

bootcfg /scan

Analiza todos los discos para encontrar instalaciones de Windows y muestra los resultados.

Nota

o Estos resultados se almacenan estáticamente durante la sesión actual. Si la configuración del disco
cambia durante esta sesión, deberá reiniciar el equipo y volver a examinar los discos para poder obtener
un recorrido actualizado.

bootcfg /list

Enumera las entradas ya incluidas en la lista de inicio.

bootcfg /disableredirect

Deshabilita la redirección en el cargador de inicio.

bootcfg /redirect [velocidadBaudiosPuerto] | [utilizarConfiguracionBios]

Habilita la redirección en el cargador de inicio con la configuración especificada.

170
Ejemplo:

bootcfg /redirect com1 115200

bootcfg /redirect useBiosSettings

Chdir (Cd)

Muestra el nombre del directorio actual o cambia la carpeta actual.

El comando chdir o cd con los parámetros que se enumeran a continuación sólo está disponible cuando se utiliza la
Consola de recuperación. El comando chdir con distintos parámetros está disponible desde el símbolo del sistema.

chdir [unidad:][rutaDeAcceso] [..]

o bien

cd [unidad:][rutaDeAcceso] [..]

Parámetros

ninguno

Si utiliza el comando chdir sin parámetros, muestra el nombre de la carpeta y la unidad actuales. Si lo utiliza
solamente con una letra de unidad (por ejemplo, cd C:), chdir muestra el directorio actual de la unidad
especificada.

[unidad:][rutaDeAcceso]

Especifica la unidad (si es distinta de la unidad actual) y el directorio a los que desea cambiar.

[..]

Especifica que desea cambiar a la carpeta principal. Utilice un espacio en blanco entre chdir y el signo de dos
puntos.

Notas

• Chdir trata los espacios como delimitadores. Utilice comillas alrededor de un nombre de directorio que contenga
espacios en blanco. Por ejemplo:

cd "caché de controladores"

• Chdir funciona únicamente dentro de los directorios del sistema de la instalación actual de Windows, en los
medios extraíbles, en el directorio raíz de cualquier partición de disco duro o en los orígenes de la instalación
local.

Chkdsk

Crea y muestra un informe de estado del disco duro. El comando chkdsk también enumera y corrige los errores del
disco.

El comando chkdsk con los parámetros que se enumeran a continuación sólo está disponible cuando se utiliza la
Consola de recuperación. El comando chkdsk con distintos parámetros está disponible desde el símbolo del sistema.

chkdsk [unidad:] [/p] [/r]

Parámetros

ninguno

Si se utiliza sin parámetros, chkdsk muestra el estado del disco de la unidad actual.

unidad: 171
Especifica la unidad que se desea comprobar mediante chkdsk.

/p

Realiza una comprobación exhaustiva aunque la unidad no esté marcada para que se ejecute chkdsk. Este
parámetro no realiza cambios en la unidad.

/r

Encuentra los sectores defectuosos y recupera la información que sea legible. Implica /p.

Nota

• El comando chkdsk requiere el archivo [Link]. Si no lo puede encontrar en el directorio de inicio


(\%systemroot%\System32, de forma predeterminada), lo buscará en el CD de instalación de Windows. Si
dispone de un equipo de inicio múltiple, asegúrese de especificar este comando desde la unidad que contiene
Windows.

Cls

Borra la pantalla.

La pantalla mostrará únicamente el símbolo del sistema y el punto de inserción.

cls

Parámetros

Ninguno

Copy

Copia un archivo a otra ubicación. El comando copy con los parámetros que se enumeran a continuación sólo está
disponible cuando se utiliza la Consola de recuperación. El comando copy con distintos parámetros está disponible
desde el símbolo del sistema.

copy origen [destino]

Parámetros

origen

Especifica el nombre y la ubicación del archivo que se va a copiar. Origen puede constar de una letra de unidad y
un signo de dos puntos, un nombre de directorio, un nombre de archivo o una combinación de ellos.

destino

Especifica la ubicación y el nombre del archivo o el conjunto de archivos donde se colocará la copia. Destino
puede constar de una letra de unidad y un signo de dos puntos, un nombre de carpeta, un nombre de archivo o
una combinación de ellos.

Notas

• El origen puede ser medios extraíbles, cualquier directorio contenido en los directorios del sistema de la
instalación actual de Windows, el directorio raíz de cualquier unidad, los orígenes de instalación local o el


directorio Cmdcons.
El destino puede ser cualquiera de las mismas ubicaciones que el origen, salvo los medios extraíbles. Si no se


especifica un destino, la copia se realizará de forma predeterminada en el directorio actual.


Los archivos comprimidos del CD de instalación de Windows se descomprimen a medida que se copian.
Copy no acepta caracteres comodín.

172
Delete (Del)

Elimina un archivo. El comando delete o del con los parámetros que se enumeran a continuación sólo está disponible
cuando se utiliza la Consola de recuperación. El comando delete o del con distintos parámetros está disponible desde el
símbolo del sistema.

delete [unidad:][rutaDeAcceso] nombreDeArchivo

o bien

del [unidad:][rutaDeAcceso] nombreDeArchivo

Parámetros

[unidad:][rutaDeAcceso] nombreDeArchivo

Especifica la ubicación y el nombre del archivo que desea eliminar.

Nota

• Delete funciona únicamente dentro de los directorios del sistema de la instalación actual de Windows, en los
medios extraíbles, en el directorio raíz de cualquier partición de disco duro o en los orígenes de la instalación
local.

Dir

Muestra una lista de los archivos y subdirectorios de un directorio. El comando dir con los parámetros que se enumeran
a continuación sólo está disponible cuando se utiliza la Consola de recuperación.
El comando dir con distintos parámetros está disponible desde el símbolo del sistema.

dir [unidad:][rutaDeAcceso][nombreDeArchivo]

Parámetros

[unidad:][rutaDeAcceso]

Especifica la unidad y el directorio cuya lista desea ver.

[nombreDeArchivo]

Especifica el archivo o el grupo de archivos cuya lista desea ver. Pueden utilizarse varios nombres de archivo.
Los nombres de archivo pueden separarse mediante espacios en blanco, comas o signos de punto y coma.
Puede utilizar caracteres comodín (? y *) con el parámetro nombreDeArchivo para mostrar un grupo de archivos.

Dir también muestra la etiqueta de volumen y el número de serie del disco, así como el número total de archivos
enumerados, su tamaño acumulado y el espacio libre (en bytes) que queda en el disco. Para cada archivo y
subdirectorio, dir muestra la extensión del nombre de archivo, el tamaño en bytes del archivo, la fecha y la hora en que
se modificó por última vez el archivo y los siguientes atributos, si procede:

Abreviatura Atributo

d Directorio

h Archivo oculto

s Archivo del sistema

e Cifrado

r Sólo lectura

a Archivos listos para archivar

c Comprimidos

p Punto de análisis repetido


173
Nota

• Dir funciona únicamente dentro de los directorios del sistema de la instalación actual de Windows, en los medios
extraíbles, en el directorio raíz de cualquier partición de disco duro y en los orígenes de la instalación local.

Disable

Deshabilita un servicio o un controlador de dispositivo del sistema de Windows XP, Windows 2000 o Windows NT 4.0. El
comando disable sólo está disponible cuando se utiliza la Consola de recuperación.

disable {nombreDeServicio] | [nombreDeControladorDeDispositivo}

Parámetros

nombreDeServicio

El nombre del servicio del sistema que desea deshabilitar.

nombreDeControladorDeDispositivo

El nombre del controlador de dispositivo que desea deshabilitar.

Ejemplo

El siguiente ejemplo deshabilita el servicio Registro de sucesos:

disable eventlog

Notas

• El comando disable establece el tipo de inicio como SERVICE_DISABLED para el servicio o el controlador que


especifique.
Cuando utilice el comando disable para deshabilitar un servicio del sistema o un controlador de dispositivo, el
nombre del tipo de inicio anterior correspondiente al servicio del sistema o al controlador de dispositivo aparecerá
en la pantalla. Debe anotar este nombre por si tiene que restaurar el tipo de inicio a su configuración anterior


mediante el comando enable.
Hay cinco tipos de inicio: Los tres primeros, SERVICE_AUTO_START, SERVICE_DISABLED y
SERVICE_DEMAND_START, corresponden a los tipos de inicio estándar (Automático, Deshabilitado y Manual)
que puede configurar mediante Servicios en la herramienta administrativa Administración de equipos. Los dos
últimos, SERVICE_BOOT_START y SERVICE_SYSTEM_START, se utilizan normalmente para configurar el
modo en que se cargan los controladores de dispositivo; por ejemplo, cuando se inicia el equipo o cuando se
inicia Windows.

Diskpart

Crea y elimina particiones de discos duros. El comando diskpart sólo está disponible cuando se utiliza la Consola de
recuperación.

diskpart [/add | /delete] [nombreDeDispositivo | nombreDeUnidad | nombreDePartición] [tamaño]

Parámetros

ninguno

Si se utiliza sin parámetros, el comando diskpart inicia la versión en modo de caracteres de Windows de
diskpart.

/add

Crea una partición nueva.

/delete
174
Elimina una partición existente.

nombreDeDispositivo

El dispositivo en el que desea crear o eliminar una partición. El nombre se puede obtener del resultado del
comando map. He aquí un ejemplo de un nombre de dispositivo:

\Device\HardDisk0

nombreDeUnidad

La partición que desea eliminar, por letra de unidad. Sólo se utiliza con /delete. A continuación se muestra un
ejemplo de nombre de unidad:

D:

nombreDePartición

La partición que desea eliminar, por nombre de partición. Se puede utilizar en lugar de nombreUnidad. Sólo se
utiliza con /delete. He aquí un ejemplo de nombre de partición:

\Device\HardDisk0\Partition1

tamaño

El tamaño, en megabytes (MB), de la partición que desea crear. Sólo se utiliza con /add.

Ejemplos

Los siguientes ejemplos eliminan una partición:

diskpart /delete \Device\HardDisk0\Partition3

diskpart /delete F:

El siguiente ejemplo agrega una partición de 20 MB al disco duro:

diskpart /add \Device\HardDisk0 20

Enable

Habilita o inicia un servicio un controlador de dispositivo del sistema de Windows XP, Windows 2000 o Windows NT 4.0.
El comando enable sólo está disponible cuando se utiliza la Consola de recuperación.

enable {nombreDeServicio | nombreDeControladorDeDispositivo} [tipoDeInicio]

Parámetros

nombreDeServicio

El nombre del servicio del sistema que desea habilitar.

nombreDeControladorDeDispositivo

El nombre del controlador de dispositivo que desea habilitar.

tipoDeInicio

El tipo de inicio que desea designar para el servicio o el controlador de dispositivo. Entre los tipos de inicio
válidos se incluyen:



SERVICE_BOOT_START
SERVICE_SYSTEM_START
175


SERVICE_AUTO_START
SERVICE_DEMAND_START

Ejemplo

El siguiente ejemplo establece el tipo de inicio para el servicio Registro de sucesos como Automático o
SERVICE_AUTO_START:

enable eventlog service_auto_start

Notas

• Si no designa un tipo de inicio, el comando enable muestra el tipo de inicio actual para el servicio o el controlador


de dispositivo que especificó en nombreDeServicio.
Cuando utilice el comando enable para cambiar un tipo de inicio, el nombre del tipo de inicio anterior aparecerá
en la pantalla. Debe anotar este nombre por si tiene que restaurar el tipo de inicio a su configuración anterior.

Exit

Cierra la Consola de recuperación y reinicia el equipo. El comando exit está disponible cuando utiliza la Consola de
recuperación.

exit

Parámetros

ninguno

Expand

Extrae un archivo de un archivo comprimido. Utilice este comando para extraer un archivo de controlador de un archivo
contenedor (.cab) o un archivo comprimido.

El comando expand con los parámetros que se enumeran a continuación sólo está disponible cuando se utiliza la
Consola de recuperación.
El comando expand con distintos parámetros está disponible desde el símbolo del sistema.

expand origen [/F:especificaciónDeArchivo}] [destino] [/d] [/y]

Parámetros

origen

Especifica el archivo que se va a expandir. Utilice este atributo si el archivo de origen sólo contiene un archivo.
Origen puede constar de una letra de unidad y un signo de dos puntos, un nombre de directorio, un nombre de
archivo o una combinación de ellos. No puede utilizar caracteres comodín.

/f:especificaciónDeArchivo

Si el origen contiene más de un archivo, especifica el nombre del archivo que desea extraer. Puede utilizar
caracteres comodín para los archivos que desea extraer.

destino

Especifica el directorio de destino y el nombre de archivo para el archivo extraído, o cada uno por separado.

/d

Muestra una lista de los archivos incluídos en el archivo contenedor sin expandirlo y sin extraer dichos archivos
del mismo.

/y

Suprime la pregunta de si desea sobrescribir archivos cuando expande o extrae archivos.


176
Ejemplos

El siguiente ejemplo extrae el archivo [Link] del archivo contenedor Drivers de un CD de instalación y lo copia a
C:\Windows\System\Drivers:

expand d:\i386\[Link] /f:[Link] c:\Windows\system\drivers

El siguiente ejemplo expande el archivo comprimido Access.cp_:

expand d:\i386\acces.cp_ c:\Windows\system32\[Link]

El siguiente ejemplo enumera todos los archivos incluidos en el archivo contenedor Drivers del CD de instalación:

expand /d d:\i386\[Link]

Importante

• El archivo contenedor Driver, que alberga la mayoría de los controladores suministrados por Windows, incluye
miles de archivos. El proceso de expansión de todos los archivos desde este archivo contenedor al disco duro
tardará algunos minutos y ocupará mucho espacio en disco. Se recomienda que de este archivo sólo extraiga el
archivo que necesite.

Notas



Si no se ha especificado el destino, el archivo se copiará al directorio actual.
No puede especificar como destino un medio extraíble, por ejemplo una unidad de disco o un CD-ROM.

Fixboot

Escribe un nuevo sector de inicio de partición en la partición del sistema. El comando fixboot sólo está disponible
cuando se utiliza la Consola de recuperación.

fixboot [unidad]

Parámetro

unidad

La unidad en la que se escribirá un sector de inicio. Reemplaza la unidad predeterminada, que es la partición del
sistema en la que ha iniciado la sesión. A continuación se muestra un ejemplo de unidad:

D:

Ejemplo

El siguiente ejemplo escribe un nuevo sector de inicio de partición en la partición del sistema de la unidad D:

fixboot d:

Nota

• Si utiliza el comando fixboot sin ningún parámetro, se escribirá un nuevo sector de inicio de partición en la
partición del sistema en la que inició la sesión.

Fixmbr

Repara el registro de inicio maestro del disco de inicio. El comando fixmbr sólo está disponible cuando se utiliza la
Consola de recuperación.

fixmbr [nombreDeDispositivo]

177
Parámetro

nombreDeDispositivo

El dispositivo (unidad) en el que se desea escribir un nuevo registro de inicio maestro. El nombre se puede
obtener del resultado del comando map. He aquí un ejemplo de un nombre de dispositivo:

\Device\HardDisk0.

Ejemplo

El siguiente ejemplo escribe un nuevo registro de inicio maestro en el dispositivo especificado:

fixmbr \Device\HardDisk0

Notas

• Si no especifica un nombreDeDispositivo, se escribirá un nuevo registro de inicio maestro en el dispositivo de


inicio, que es la unidad en la que se carga el sistema principal.
Si se detecta una firma de tabla de particiones no estándar o no válida, el sistema le preguntará si desea seguir.
Si no tiene problemas de acceso a las unidades, no debe continuar. Si escribe un registro de inicio maestro en la
partición del sistema, podría dañar la tablas de particiones e imposibilitar el acceso a las particiones.

Format

Formatea la unidad especificada con el sistema de archivos especificado. El comando format con los parámetros que se
enumeran a continuación sólo está disponible cuando se utiliza la Consola de recuperación.
El comando format con distintos parámetros está disponible desde el símbolo del sistema.

format [unidad:] [/q] [/fs:sistemaDeArchivos]

Parámetros

unidad:

Especifica la unidad que desea formatear. No puede formatear un disquete desde la Consola de recuperación.

/q

Realiza un formateo rápido de la unidad. No se comprueba si existen zonas dañadas en la unidad, por lo que
sólo debe utilizar este parámetro en aquellas unidades que haya formateado previamente.

/fs:sistemaDeArchivos

Especifica el sistema de archivos que se va a utilizar: FAT, FAT32 o NTFS. Si no especifica ningún sistema de
archivos, se utilizará el formato del sistema de archivos existente.

Help

Proporciona información en pantalla acerca de los comandos de la Consola de recuperación.

help [nombreDeComando]

Parámetro

ninguno

Enumera los comandos disponibles en la Consola de recuperación.

nombreDeComando

Proporciona información acerca del comando, incluidos los parámetros que puede utilizar con el comando.

178
Nota

• Existen dos maneras de obtener Ayuda en pantalla acerca de un comando. Puede especificar el nombre del
comando a continuación del comando help o puede escribir el nombre del comando seguido del modificador /?
en el símbolo del sistema. Por ejemplo, puede escribir cualquiera de los comandos siguientes para obtener
información acerca del comando extract:

help extract
extract /?

Listsvc

Enumera los servicios y los controladores disponibles en el equipo. El comando listsvc sólo está disponible cuando se
utiliza la Consola de recuperación.

listsvc

Parámetros

Ninguno

Logon

Inicia una sesión en una instalación de Windows. El comando logon sólo está disponible cuando se utiliza la Consola de
recuperación.

logon

Parámetros

ninguno

Notas

• El comando logon enumerará todas las instalaciones detectadas de Windows y solicitará la contraseña del


administrador local de dicha instalación para iniciar la sesión.
Después de tres intentos fallidos de inicio de sesión se cerrará la Consola de recuperación y se reiniciará el
equipo.

Map

Muestra la asignación de letras de unidad a nombres de dispositivos físicos. Esta información es útil cuando ejecuta los
comandos fixboot y fixmbr. El comando map sólo está disponible cuando se utiliza la Consola de recuperación.

map [arc]

Parámetro

arc

Indica al comando map que muestre nombres de dispositivo Informática avanzada de RISC (ARC) en lugar de
los nombres de dispositivo. A continuación se muestra un ejemplo de nombre de dispositivo ARC:

multi(0)disk(0)rdisk(0)partition(1)

El nombre de dispositivo equivalente es:

\Device\HardDisk0\Partition1

Ejemplo

El siguiente ejemplo asigna los nombres de dispositivo físico a las letras de unidad utilizando nombres de dispositivo
ARC:
179
map arc

Notas



Si no utiliza el parámetro arc, el comando map muestra los nombres de dispositivo de Windows.
El comando map muestra también el tipo de sistema de archivos y el tamaño de cada disco en megabytes (MB).

Mkdir (Md)

Crea un directorio o un subdirectorio. El comando mkdir con los parámetros que se enumeran a continuación sólo está
disponible cuando se utiliza la Consola de recuperación. El comando mkdir con distintos parámetros está disponible
desde el símbolo del sistema.

mkdir [unidad:]rutaDeAcceso

o bien

md [unidad:]rutaDeAcceso

Parámetros

unidad:

Especifica la unidad en la que desea crear el nuevo directorio.

rutaDeAcceso

Especifica el nombre y la ubicación del nuevo directorio. No puede utilizar caracteres comodín.

Nota

• Mkdir funciona únicamente dentro de los directorios del sistema de la instalación actual de Windows, en los
medios extraíbles, en el directorio raíz de cualquier partición de disco duro o en los orígenes de la instalación
local.

More

Presenta el contenido de un archivo de texto. Utilice el comando more o type para examinar un archivo de texto sin
modificarlo. El comando more con los parámetros que se enumeran a continuación sólo está disponible cuando se utiliza
la Consola de recuperación.
El comando more con distintos parámetros está disponible desde el símbolo del sistema.

more [unidad:][rutaDeAcceso] nombreDeArchivo

o bien

type [unidad:][rutaDeAcceso] nombreDeArchivo

Parámetro

[unidad:][rutaDeAcceso] nombreDeArchivo

Especifica la ubicación y el nombre del archivo que desea examinar.

Si utiliza una unidad NTFS y el nombre de archivo contiene espacios en blanco, deberá escribir el nombre de
archivo entre comillas (").

Net use

Conecta un recurso compartido de red a una letra de unidad. El comando net use con los parámetros que se enumeran
a continuación sólo está disponible cuando se utiliza la Consola de recuperación.
El comando net use con distintos parámetros está disponible desde el símbolo del sistema.

180
Sintaxis

net use [\\nombreDeEquipo\nombreDeRecursoCompartido [/user:[nombreDeDominio\] nombreDeUsuario]


contraseña] | [letraDeUnidad:] [/d]

Parámetros

\\nombreDeEquipo\nombreDeRecursoCompartido

Especifica el nombre del servidor y del recurso compartido. Si nombreDeEquipo contiene caracteres en blanco,
escriba entre comillas el nombre completo del equipo, desde las dos barras diagonales inversas (\\) hasta el final
del nombre del equipo. El nombre de equipo puede tener entre 1 y 15 caracteres.

/user:

Especifica el nombre de usuario con el que se realiza la conexión.

nombreDeDominio

Nombre de dominio que debe utilizarse al validar las credenciales del usuario.

NombreDeUsuario

Especifica el nombre de usuario con el que se iniciará la sesión.

Contraseña

Especifica la contraseña necesaria para tener acceso al recurso compartido. Déjela en blanco para que se le pida
la contraseña. Los caracteres de la contraseña no se muestran en la pantalla a medida que los escribe.

/d

Indica que esta conexión se va a desconectar.

Rename (Ren)

Cambia el nombre de un archivo. El comando rename con los parámetros que se enumeran a continuación sólo está
disponible cuando se utiliza la Consola de recuperación.
El comando rename con distintos parámetros está disponible desde el símbolo del sistema.

rename [unidad:][rutaDeAcceso] nombreDeArchivo1 nombreDeArchivo2

o bien

ren [unidad:][rutaDeAcceso] nombreDeArchivo1 nombreDeArchivo2

Parámetros

[unidad:][rutaDeAcceso] nombreDeArchivo1

Especifica la ubicación y el nombre del archivo cuyo nombre desea cambiar. No puede utilizar caracteres
comodín.

nombreDeArchivo2

Especifica el nuevo nombre del archivo. No es posible indicar una unidad o una ruta de acceso nueva cuando se
cambia el nombre de archivos.

Rmdir (Rd)

Quita (elimina) un directorio. El comando rmdir con los parámetros que se enumeran a continuación sólo está disponible
cuando se utiliza la Consola de recuperación.
El comando rmdir con distintos parámetros está disponible desde el símbolo del sistema.
181
rmdir [unidad:]rutaDeAcceso

o bien

rd [unidad:]rutaDeAcceso

Parámetros

[unidad:]rutaDeAcceso

Especifica la ubicación y el nombre del directorio que desea eliminar. No puede utilizar caracteres comodín.

Notas



El directorio debe estar vacío o el comando no se ejecutará correctamente.
Rmdir funciona únicamente dentro de los directorios del sistema de la instalación actual de Windows, en los
medios extraíbles, en el directorio raíz de cualquier partición de disco duro o en los orígenes de la instalación
local.

Set

Muestra y establece las variables de entorno de la Consola de recuperación. El comando set es un comando opcional
que debe utilizarse con plantillas de seguridad.

El comando set con los parámetros que se enumeran a continuación sólo está disponible cuando se utiliza la Consola de
recuperación.
El comando set con distintos parámetros está disponible desde el símbolo del sistema.

set [variable=[cadena]]

Parámetros

variable

Especifica la variable que desea establecer o modificar.

La Consola de recuperación admite las siguientes variables de entorno:

Variable Descripción
Permite el uso de caracteres comodín con algunos comandos (como el
AllowWildCards
comando del).
AllowAllPaths Permite el acceso a todos los archivos y directorios del sistema.
AllowRemovableMedia Permite copiar archivos a medios extraíbles, como un disco.
NoCopyPrompt No pregunta nada al sobrescribir un archivo existente.

cadena

Especifica la cadena que desea asociar a la variable especificada.

Ejemplos

El siguiente ejemplo le permite utilizar caracteres comodín con algunos comandos de la Consola de recuperación:

set allowwildcards=true

El siguiente ejemplo desactiva la pregunta cuando va a sobrescribir archivos:

set nocopyprompt=true

Notas

• Cuando se utiliza sin parámetros, el comando set muestra las variables de entorno actuales. 182
• El comando set está deshabilitado de forma predeterminada. Para habilitar el comando set, utilice las plantillas
de seguridad. El atributo Habilitar el comando Set para la Consola de recuperación se encuentra en el árbol
de la consola, bajo Directiva de equipo local/Configuración del equipo/Configuración de Windows/Configuración


de seguridad/Directivas locales/Opciones de seguridad.
Todas las variables de entorno están establecidas de forma predeterminada como FALSE (Falso).

Systemroot

Establece el directorio actual en la carpeta raíz del sistema de la instalación de Windows en la que inició la sesión. El
comando systemroot sólo está disponible cuando se utiliza la Consola de recuperación.

systemroot

Parámetros

Ninguno

Type

Presenta el contenido de un archivo de texto. Utilice el comando type o more para examinar un archivo de texto sin
modificarlo. El comando type con los parámetros que se enumeran a continuación sólo está disponible cuando se utiliza
la Consola de recuperación. El comando type con distintos parámetros está disponible desde el símbolo del sistema.

type [unidad:][rutaDeAcceso] nombreDeArchivo

o bien

more [unidad:][rutaDeAcceso] nombreDeArchivo

Parámetro

[unidad:][rutaDeAcceso] nombreDeArchivo

Especifica la ubicación y el nombre del archivo que desea examinar.

Si utiliza una unidad NTFS y el nombre de archivo contiene espacios en blanco, deberá escribir el nombre de archivo
entre comillas.

ENLACES RELACIONADOS

Descripción de la consola de recuperación de Windows XP


[Link]

CÓMO: Instalar y utilizar la consola de recuperación de Windows XP


[Link]

CÓMO: Agregar más capacidades a la consola de recuperación mediante Directiva de grupo en Windows XP
[Link]

CÓMO: Permitir que el administrador inicie sesión automáticamente en la consola de recuperación

[Link]

An Error Message May Be Displayed When You Attempt to Log on to the Recovery Console
[Link]

HOW TO: Enable Administrator to Log On Automatically in Recovery Console.


[Link]

Eliminar la consola de recuperación


[Link]

183
LOS SERVICIOS EN WINDOWS XP PROFESIONAL

Un servicio no es más que un programa que da soporte a otros programas,


digamos que es una aplicación especializada en una tarea concreta.

Estos servicios se administran desde la MMC (Microsoft Management


Console), para acceder a dicha consola sólo tenemos que ejecutar el siguiente
comando “services”:

Inicio – Ejecutar – [Link]

Desde la consola de servicios es posible detener, pausar, reanudar o reiniciar


dichos servicios aunque en la mayoría de ellos deberá loguearse como Usuario
Avanzado o Administrador.

Mucho se ha comentado en los foros acerca de la utilidad de estos servicios y


de si era o no conveniente la deshabilitación de algunos de ellos, SIEMPRE
hemos recomendado NO deshabilitar ninguno, pues la mayoría de servicios
están interrelacionados entre sí, y el hecho de deshabilitar uno de ellos puede
ocasionar que los que estén con él interactuando, dejen de funcionar o lo
hagan de manera irregular.

Para saber un poco más de este asunto, veamos como se puede determinar el
nombre de los servicios y su dependencia con el resto.
Si dentro de la consola de MMC pulsamos sobre el nombre de algún servicio y
hacemos clic con el botón derecho del ratón sobre el mismo y ejecutamos
“propiedades”, en el cuadro de dialogo que aparece y en su apartado de “ruta
de acceso al ejecutable” de su pestaña “General”, podremos ver el nombre del
ejecutable exacto que ha generado la llamada de dicho servicio; es muy normal
que distintos servicios estén iniciados por un mismo ejecutable (por ejemplo el
conocido por todos “svchost”)

Dentro del cuadro de dialogo que estamos comentando y en la pestaña


“Dependencias” se nos mostrará eso mismo, la dependencia que algunos
servicios puedan tener con otros servicios, ni que decir tiene que de aparecer la
frase “sin dependencias” es que ese servicio en cuestión no depende de algún
otro en ese momento.

La mayor parte de los servicios se ejecutan automáticamente al inicio y se


detienen como parte del proceso de apagado al estar así configurados.
Es posible, en la mayoría de ellos, detenerlos, pausarlos o ponerlos en marcha
de manera manual. Esto puede ser útil por ejemplo cuando la cola de impresión
se ha quedado atascada, en casos como este, pausarlo y volverlo a poner en
marcha, suele ser más útil que pararlo definitivamente y perder los trabajos que
estuvieran en la cola de impresión.

Las opciones están disponibles como ya hemos comentado pulsando sobre el


nombre del servicio, haciendo clic con el botón derecho del ratón sobre el
mismo, y ejecutando “propiedades” en la pestaña “General” (Estado del

184
servicio). Que se permita su ejecución dependerá de los permisos que tenga
asignado el usuario.

EL SERVICIO DE ALERTA

Podemos hacer que XP nos envíe alertas administrativas que nos pueden
advertir de problemas de seguridad de acceso entre otros.
Vamos a ver como configurar nuestro equipo para ello:

Inicio – Ejecutar – regedit

Buscamos la siguiente clave:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Alerter\
Parameters

Creamos un valor REG_MULTI_SZ

Y lo denominamos AlertNames (si es que no existe ya), desde la consola MMC


definimos el servicio para que se ejecute de manera automática.

El principal objetivo de mi artículo es dar a conocer los principales servicios que


se instalan en XP Pro o que son instalados por otros fabricantes, es por ello
que puedan aparecer en el siguiente listado servicios que no tengáis o no
aparezca alguno que sí está en el vuestro, por ejemplo el servicio “Fax” solo
aparecerá si lo tenéis instalado, o en el caso de tarjetas graficas que instalan
sus propios servicios como “Nvidia”.
Incluyo también el nombre del servicio entre paréntesis, el archivo ejecutable
responsable de su puesta en marcha y una breve descripción del mismo:

Esquema:

- Nombre de pantalla (Nombre del servicio)


Ejecutable
Descripción

-Acceso a dispositivo de interfaz humana (HidServ)


Ejecutable:
[Link]
Descripción:
Habilita el acceso de entrada genérico a los Dispositivos de interfaz
humana (HID), que activa y mantiene el uso de botones de acceso
directo predefinidos en los teclados, controles remotos y otros
dispositivos multimedia. Si este servicio se detiene, los botones de
acceso directo controlados por este servicio dejarán de funcionar. Si este
servicio está deshabilitado, cualquier servicio que explícitamente
dependa de él no podrá iniciarse.

185
-Actualizaciones automáticas (Wuauserv)
Ejecutable:
[Link]
Descripción:
Habilita la descarga e instalación de actualizaciones críticas de
Windows. Si el servicio está deshabilitado, el sistema operativo se puede
actualizar manualmente en el sitio Web de Windows Update.

-Adaptador de rendimiento de WMI (WmiApSrv)


Ejecutable:
[Link]
Descripción:
Proporciona información de la biblioteca de rendimiento desde los
proveedores HiPerf de WMI.

-Administración de aplicaciones (AppMgmt)


Ejecutable:
[Link]
Descripción:
Ofrece servicios de instalación de software como Asignar, Publicar y
Quitar.

-Administrador de carga (uploadmgr)


Ejecutable:
[Link]
Descripción:
Administra transferencias síncronas y asíncronas de archivos entre
clientes y servidores en la red. Si se detiene este servicio, dichas
transferencias no tendrán lugar. Si se deshabilita el servicio, no se podrá
iniciar ninguno de los servicios que dependen explícitamente de él.

-Administrador de conexión automática de acceso remoto (RasAuto)


Ejecutable:
[Link]
Descripción:
Crea una conexión a una red remota siempre que un programa hace
referencia a un nombre o dirección DNS o NetBios remoto.

-Administrador de conexión de acceso remoto (RaMan)


Ejecutable:
[Link]
Descripción:
Crea una conexión de red.

-Administrador de cuentas de seguridad (SamSs)


Ejecutable:
[Link]
Descripción:
Almacena información de seguridad de cuentas de usuario locales.

186
-Administrador de discos lógicos (dmserver)
Ejecutable:
[Link]
Descripción:
Detecta y supervisa unidades de disco duro nuevas y envía información
del volumen de disco al Servicio de administración de discos lógicos
para su configuración. Si se detiene este servicio, la información de
estado y configuración de discos dinámicos puede quedar
desactualizada. Si se deshabilita este servicio, no se podrá iniciar
ninguno de los servicios que dependan explícitamente de él.

-Administrador de sesión de Ayuda de escritorio remoto (RDSessMgr)


Ejecutable:
[Link]
Descripción:
Administra y controla la Asistencia remota. Si se detiene este servicio,
Asistencia remota no estará disponible. Antes de detener el servicio, vea
la ficha Dependencias en el cuadro de diálogo Propiedades.

-Adquisición de imágenes de Windows (WIA) (stisvc)


Ejecutable:
[Link]
Descripción:
Proporciona servicios de digitalización de imágenes para escáneres y
cámaras.

-Almacenamiento protegido (ProtectedStorage)


Ejecutable:
[Link]
Descripción:
Ofrece almacenamiento protegido para datos importantes, como claves
privadas, para impedir el acceso de servicios, procesos o usuarios no
autorizados.

-Aplicación del sistema COM+ (COMSSysApp)


Ejecutable:
[Link]
Descripción:
Administra la configuración y el seguimiento de los componentes del
Modelo de objetos componentes (COM+). Si se detiene el servicio, la
mayoría de los componentes COM+ no funcionarán correctamente. Si se
deshabilita este servicio, no se podrá iniciar ningún servicio que dependa
específicamente de él.

-Audio de Windows (AudioSrv)


Ejecutable:
[Link]
Descripción:
Administra dispositivos de audio para programas basados en Windows.
Si se detiene este servicio, los dispositivos de audio y efectos no

187
funcionarán correctamente. Si se deshabilita este servicio, cualquier
servicio que dependa explícitamente de él tendrá un error al iniciar.

-Ayuda de NetBIOS sobre TCP/IP (LmHosts)


Ejecutable:
[Link]
Descripción:
Habilita la compatibilidad con NetBIOS a través del servicio TCP/IP
(NetBT) y la resolución de nombres NetBIOS.

-Ayuda y soporte técnico (Helpsvc)


Ejecutable:
[Link]
Descripción:
Habilita la ejecución del Centro de ayuda y soporte técnico en este
equipo. Si se detiene este servicio, el Centro de ayuda y soporte técnico
no estará disponible. Si se deshabilita este servicio, no se podrá iniciar
ninguno de los servicios que dependan explícitamente de él.

-Cliente de seguimiento de vínculos distribuidos (TrkWks)


Ejecutable [Link]
Descripción:
Mantiene vínculos entre archivos NTFS dentro de un equipo o entre
equipos en un dominio de red.

-Cliente DHCP (Dhcp)


Ejecutable:
[Link]
Descripción:
Administra la configuración de la red registrando y actualizando
direcciones IP y nombres DNS.

-Cliente DNS (Dnscache)


Ejecutable [Link]
Descripción:
Resuelve y almacena en caché los nombres del sistema de nombres de
dominio (DNS) para este equipo. Si se detiene este servicio, este equipo
no podrá resolver nombres DNS ni ubicar controladores de dominio en
Active Directory. Si se deshabilita este servicio, no se podrá iniciar
ninguno de los servicios que dependen explícitamente de él.

-Cliente Web (WebClient)


Ejecutable
[Link]
Descripción:
Habilita los programas basados en Windows para que creen, tengan
acceso y modifiquen archivos basados en Internet. Si este servicio se
detiene, estas funciones no estarán disponibles. Si este servicio está
deshabilitado, cualquier servicio que explícitamente dependa de él no
podrá iniciarse.

188
-Cola de impresión (Spooler)
Ejecutable
[Link]
Descripción:
Carga archivos en la memoria para imprimirlos después.

-Compatibilidad de cambio rápido de usuario (FastUserSwitching)


Ejecutable
[Link]
Descripción:
Proporciona administración para aplicaciones que necesitan asistencia
en un entorno de usuarios múltiples.

-Conexión de seguridad a Internet (ICF) / Conexión compartida a Internet (ICS)


(SharedAccess)
Ejecutable:
[Link]
Descripción:
Ofrece servicios de traducción de direcciones, direccionamiento,
resolución de nombres y/o servicios de prevención de intrusión para una
red doméstica o de pequeña empresa.

-Conexiones de red (Netman)


Ejecutable
[Link]
Descripción:
Administra objetos en la carpeta Conexiones de red y acceso telefónico,
donde se pueden ver conexiones de red de área local y remotas.

-Configuración inalámbrica rápida (WZCSVC)


Ejecutable
[Link]
Descripción:
Proporciona configuración automática para los adaptadores 802.11

-Coordinador de transacciones distribuidas de Microsoft (MSDTC)


Ejecutable
[Link]
Descripción:
Coordina las transacciones que se extienden a varios administradores
de recursos, como bases de datos, colas de mensajes y sistemas de
archivos. Si se detiene este servicio, estas transacciones no se
producirán. Si se deshabilita el servicio, no se podrá iniciar ningún
servicio que dependa específicamente de él.

-DDE de red (NetDDE)


Ejecutable:
[Link]
Descripción:

189
Ofrece transporte y seguridad en la red para el Intercambio dinámico de
datos (DDE) para los programas que se ejecutan en el mismo equipo o
en diferentes equipos. Si este servicio se detiene, se deshabilitarán el
transporte y la seguridad DDE. Si este servicio está deshabilitado,
cualquier servicio que explícitamente dependa de él no podrá iniciarse.

-Detección de hardware shell (ShellHWDetection)


Ejecutable:
[Link]
Descripción:
No hay descripción

-DSDM de DDE de red (NetDDEdsdm)


Ejecutable:
[Link]
Descripción:
Administra los recursos de red Intercambio dinámico de datos (DDE). Si
este servicio se detiene, se deshabilitarán los recursos compartidos de
red DDE. Si este servicio está deshabilitado, cualquier servicio que
explícitamente dependa de él no podrá iniciarse.

-Enrutamiento y acceso remoto (RemoteAccess)


Ejecutable: [Link]
Descripción:
Ofrece servicios de enrutamiento a empresas en entornos de red de
área local y extensa.

-Escritorio remoto compartido de NetMeeting (mnmsrvc)


Ejecutable:
[Link]
Descripción:
Permite a los usuarios autorizados acceder remotamente a su escritorio
Windows usando NetMeeting.

-Estación de trabajo (lanmanworkstation)


Ejecutable:
[Link]
Descripción:
Crea y mantiene conexiones de cliente de red a servidores remotos. Si
se detiene el servicio, estas conexiones no estarán disponibles. Si se
deshabilita el servicio, no se podrá iniciar ninguno de los servicios que
dependan explícitamente de él.

-Examinador de equipos (Browser)


Ejecutable:
[Link]
Descripción:
Mantiene una lista actualizada de equipos en la red y proporciona esta
lista a los equipos designados como exploradores. Si se detiene este
servicio, esta lista no se actualizará o mantendrá. Si se deshabilita el

190
servicio, no se podrá iniciar ninguno de los servicios que dependan
explícitamente de él.

-Extensiones de controlador de Instrumental de administración de Windows


(Wmi)
Ejecutable:
[Link]
Descripción:
Proporciona información de administración de sistemas a y desde
controladores.

-Fax (Fax)
Ejecutable:
[Link]
Descripción:

-Horario de Windows (W32Time)


Ejecutable:
[Link]
Descripción:
Mantiene la sincronización de fecha y hora en todos los clientes y
servidores de la red. Si se detiene este servicio, no estará disponible la
sincronización de fecha y hora. Si se deshabilita este servicio, no se
podrá iniciar ninguno de los servicios que dependen explícitamente de
él.

-Host de dispositivo Plug and Play universal (upnphost)


Ejecutable:
[Link]
Descripción:
Proporciona compatibilidad para albergar dispositivos Plug and Play
universales.

-Inicio de sesión en red (Netlogon)


Ejecutable:
[Link]
Descripción:
Admite la autenticación de paso de sucesos de inicio de sesión de
cuenta para los equipos en un dominio.

-Inicio de sesión secundario (seclogon)


Ejecutable:
[Link]
Descripción:
Habilita los procesos de inicio en credenciales alternas. Si se detiene
este servicio, se deshabilitará este tipo de acceso de inicio de sesión. Si
este servicio está deshabilitado, cualquier servicio que explícitamente
dependa de él no podrá iniciarse.

191
-Instantáneas de volumen (VSS)
Ejecutable:
[Link]
Descripción:
Administra e implementa Instantáneas de volumen usadas para copias
de seguridad y otros propósitos. Si este servicio se detiene, las
instantáneas se deshabilitarán para la copia de seguridad y ésta dará un
error. Si este servicio está deshabilitado, cualquier servicio que
explícitamente dependa de él no podrá iniciarse.

-Instrumental de administración de Windows (winmgmt)


Ejecutable:
[Link]
Descripción:
Proporciona una interfaz común y un modelo de objeto para tener
acceso a la información de administración acerca de un sistema
operativo, dispositivos, aplicaciones y servicios. Si se detiene este
servicio, la mayoría del software basado en Windows no funcionará
correctamente. Si este servicio está deshabilitado, cualquier servicio que
explícitamente dependa de él no podrá iniciarse.

-Llamada a procedimiento remoto(RPC) (RpcSs)


Ejecutable:
[Link]
Descripción:
Ofrece el asignador de punto final y otros servicios RPC diversos.

-Localizador de llamadas a procedimiento remoto (RPC) (RpcLocator)


Ejecutable:
[Link]
Descripción:
Administra la base de datos de servicios de nombres RPC.

-Medios de almacenamiento extraíbles (NtmSvc)


Ejecutable:
[Link]
Descripción:
No hay descripción

-Mensajero (Messenger)
Ejecutable:
[Link]
Descripción:
Transmite mensajes del servicio de alertas y el comando net send entre
clientes y servidores. Este servicio no está relacionado con Windows
Messenger. Si se detiene el servicio, no se transmitirán los mensajes de
alerta. Si se deshabilita el servicio, no se podrá iniciar ninguno de los
servicios que dependan explícitamente de él.

192
-MS Software Shadow Copy Provider (SwPrv)
Ejecutable:
[Link]
Descripción:
Administra instantáneas de volumen basadas en software y tomadas por
el Servicio de instantáneas de volumen. Si se detiene el servicio, no se
podrán administrar las instantáneas de volumen basadas en software. Si
se deshabilita el servicio, no se podrá iniciar ninguno de los servicios que
dependen explícitamente de él.

-NLA (Network Location Awareness) (Nla)


Ejecutable:
[Link]
Descripción:
Recopila y almacena información de configuración y ubicación de redes,
e informa a las aplicaciones cuando esta información cambia.

-Notificación de sucesos del sistema (SENS)


Ejecutable:
[Link]
Descripción:
Registra sucesos del sistema como los de inicio de sesión en Windows,
red y energía, y los notifica a los suscriptores de sucesos del sistema
COM+.

-NVIDIA Driver Helper Service (NVsvc)


Ejecutable:
[Link]
Descripción:
No hay descripción

-Plug and Play (PlugPlay)


Ejecutable:
[Link]
Descripción:
Habilita un equipo para que reconozca y adapte los cambios de
hardware con el menor esfuerzo por parte del usuario. Si se detiene o
deshabilita este servicio, el sistema se volverá inestable.

-Portafolios (ClipSrv)
Ejecutable:
[Link]
Descripción:
Habilita el Visor del Portafolios para almacenar información y compartirla
con equipos remotos. Si se detiene el servicio, el Visor del Portafolios
no podrá compartir información con los equipos remotos. Si se
deshabilita este servicio, cualquier servicio que explícitamente dependa
de él no podrá iniciarse.

193
-Programador de tareas (Schedule)
Ejecutable:
[Link]
Descripción:
Habilita un usuario para que configure y programe tareas automáticas en
este equipo. Si se detiene este equipo, estas tareas no se ejecutarán en
sus horas programadas. Si este servicio está deshabilitado, cualquier
servicio que explícitamente dependa de él no podrá iniciarse.

-Proveedor de compatibilidad con seguridad LM de Windows NT (NtlmSsp)


Ejecutable:
[Link]
Descripción:
Ofrece seguridad a programas de llamada a procedimiento remoto
(RPC) que utilizan transportes diferentes de conductos con nombres.

-QoS RSVP (RSVP)


Ejecutable:
[Link]
Descripción:
Ofrece funcionalidad de señalización de red y control del tráfico local
para programas y subprogramas de control compatibles con QoS.

-Registro de sucesos (Eventlog)


Ejecutable:
[Link]
Descripción:
Habilita mensajes de registro de sucesos emitidos por programas
basados en Windows y componentes para que se vean en Visor de
sucesos. Este servicio no se puede detener.

-Registro remoto (RemoteRegistry)


Ejecutable:
[Link]
Descripción:
Habilita usuarios remotos para que modifiquen la configuración del
Registro en este equipo. Si se detiene este servicio, cualquier usuario en
este equipo puede modificar el Registro. Si este servicio está
deshabilitado, cualquier servicio que explícitamente dependa de él no
podrá iniciarse.

-Registros y alertas de rendimiento (SysmonLog)


Ejecutable:
[Link]
Descripción:
Recopila información de rendimiento de equipos locales o remotos de
acuerdo a parámetros de programación configurados previamente, luego
guarda la información en un registro o emite una alerta. Si se detiene el
servicio, no se recopilará la información de rendimiento. Si se deshabilita

194
el servicio, no se podrá iniciar ninguno de los servicios que dependan
explícitamente de él.

-Servicio COM de grabación de CD de IMAPI (ImapiService)


Ejecutable:
[Link]
Descripción:
Administra la grabación de CD usando la interfaz de programación de
aplicaciones de grabación de imágenes (IMAPI). Si se detiene este
servicio, el equipo no podrá grabar los CD. Si está deshabilitado, los
servicios que dependan de éste no se iniciarán.

-Servicio de alerta ([Link])


Ejecutable:
[Link]
Descripción:
Notifica a usuarios y equipos seleccionados de alertas administrativas. Si
se detiene el servicio, los programas que utilizan alertas administrativas
no las recibirán. Si el servicio se deshabilita, no se podrá iniciar ninguno
de los servicios que dependen explícitamente dependen de él.

-Servicio de descubrimientos SSDP (SSDPSRV)


Ejecutable:
[Link]
Descripción:
Habilita el descubrimiento de dispositivos UPnP en su red doméstica.

-Servicio de Index Server (cisvc)


Ejecutable:
[Link]
Descripción:
Indexa el contenido y las propiedades de archivos en equipos locales y
remotos; ofrece acceso inmediato a archivos a través de un lenguaje de
consulta flexible.

-Servicio de informe de errores (ERSvc)


Ejecutable:
[Link]
Descripción:
Permite informar de errores para servicios y aplicaciones que se
ejecutan en entornos no estándar.

-Servicio de puerta de enlace de capa de aplicación (ALG)


Ejecutable:
[Link]
Descripción:
Proporciona soporte a otros complementos de protocolo para Conexión
compartida a Internet y Servidor de seguridad de conexión a Internet.

195
-Servicio de restauración de sistema (Srservice)
Ejecutable:
[Link]
Descripción:
Realiza funciones de restauración del sistema. Para detener el servicio,
desactive Restaurar sistema en la ficha de Restaurar sistema en
propiedades de Mi PC

-Servicio de transferencia inteligente en segundo plano (BITS)


Ejecutable:
[Link]
Descripción:
Usa el ancho de banda de la red inactiva para transferir datos.

-Servicio del administrador de discos lógicos (dmadmin)


Ejecutable:
[Link]
Descripción:
Configura las unidades de disco duro y volúmenes. El servicio sólo se
ejecuta para procesos de configuración y a continuación se detiene.

-Servicio del número de serie de medio portátil (WmdmPmSp)


Ejecutable:
[Link]
Descripción:
Recupera el número de serie de cualquier reproductor de medio portátil
conectado al equipo. Si este servicio se interrumpe, puede que los
contenidos protegidos no se descarguen en el dispositivo.

-Servicios de cifrado (CryptSve)


Ejecutable:
[Link]
Descripción:
Proporciona tres servicios de administración: Servicio de catálogo de
base de datos, que confirma las firmas de archivos de Windows; Servicio
de raíz protegida, que agrega y quita certificados de entidades emisoras
de raíz de confianza de este equipo; y el Servicio de claves, que ayuda a
inscribir este equipo a certificados. Si se detiene este servicio, sus
servicios de administración mencionados no funcionarán correctamente.
Si se deshabilita este servicio, no se podrán iniciar ninguno de los
servicios que dependen explícitamente de él.

-Servicios de Terminal Server (TermService)


Ejecutable:
[Link]
Descripción:
Permite que varios usuarios se conecten de forma interactiva a un
equipo y que se muestren los escritorios y aplicaciones de equipos
remotos. El acoplamiento de Escritorio remoto (incluido Escritorio remoto

196
para administradores), Cambio rápido de usuarios, Asistencia remota y
Terminal Server.

-Servicios IPSEC (PolicyAgent)


Ejecutable:
[Link]
Descripción:
Administra la directiva de seguridad IP e inicia el controlador
ISAKMP/Oakley (IKE) y de seguridad IP.

-Servidor (lanmanserver)
Ejecutable:
[Link]
Descripción:
Ofrece compatibilidad con uso compartido de archivos, impresoras y
canalizaciones con nombres en la red para este equipo. Si se detiene el
servicio, estas funciones no estarán disponibles. Si se deshabilita el
servicio, no se podrá iniciar ninguno de los servicios que dependan
explícitamente de él.

-Servidor de seguridad de conexión a Internet IPv6 (Ip6FwHlp)


Ejecutable:
[Link]
Descripción:
Proporciona servicios de prevención de intrusiones para redes
domésticas o en oficinas pequeñas.

-Sistema de alimentación ininterrumpida (UPS)


Ejecutable:
[Link]
Descripción:
Administra un sistema de alimentación ininterrumpida (UPS) conectado
al equipo.

-Sistema de ayuda de tarjeta inteligente (ScardDrv)


Ejecutable:
[Link]
Descripción:
Ofrece compatibilidad con tarjetas lectoras de tarjetas inteligentes
heredadas (no plug and play) usadas por el equipo. Si este servicio se
detiene, el equipo no será compatible con la tarjeta lectora heredada. Si
este servicio está deshabilitado, cualquier servicio que explícitamente
dependa de él no podrá iniciarse.

-Sistema de sucesos COM+ (EventSystem)


Ejecutable:
[Link]
Descripción:
Admite el Servicio de notificación de eventos del sistema (SENS), que
proporciona la distribución automática de eventos a los componentes del

197
Modelo de objetos componentes (COM). Si se detiene este servicio,
SENS se cerrará y no podrá ofrecer notificaciones de inicio ni de cierre
de sesión. Si se deshabilita el servicio, no se podrá iniciar ningún
servicio que dependa específicamente de él.

-Tarjeta inteligente (ScardSvr)


Ejecutable:
[Link]
Descripción:
Administra el acceso a una tarjeta inteligente de la que el equipo hace
lectura. Si este servicio se detiene, el equipo no podrá leer las tarjetas
inteligentes. Si este servicio está deshabilitado, cualquier servicio que
explícitamente dependa de él no podrá iniciarse.

-Telefonía (TapiSrv)
Ejecutable:
[Link]
Descripción:
Ofrece compatibilidad con la API de telefonía (TAPI) para programas que
controlan dispositivos de telefonía y conexiones de voz basadas en IP en
el equipo local y, a través de la LAN, en servidores que utilizan también
el servicio.

-Telnet (TlnSvr)
Ejecutable:
[Link]
Descripción:
Permite que un usuario remoto inicie sesión en el equipo y ejecute
programas, y sea compatible con varios clientes de Telnet TCP/IP,
incluyendo los equipos basados en UNIX y Windows. Si este servicio se
detiene, es posible que el acceso al usuario remoto no esté disponible.
Si este servicio está deshabilitado, cualquier servicio que explícitamente
dependa de él no podrá iniciarse.

-Temas (Themes)
Ejecutable:
[Link]
Descripción:
Proporciona administración de temas de experiencia de usuario.

-Windows Installer (MSIServer)


Ejecutable:
[Link]
Descripción:
Instala, repara y quita software de acuerdo con las instrucciones
contenidas en archivos MSI.

198
Enlaces relacionados

Solucionar problem as de la Microsoft Managem ent Console ( MMC)


[Link]

Mensaj e de error " Espacio insuficient e en disco" que I nicia MMC


[Link]

Com o crear y guardar una Consola Personalizada usando Microsoft


Managem ent Console en Windows XP
[Link]

NOTA: Este artículo es de libre distribución siempre que no se modifique su


contenido y se cite su procedencia y autor.

Alejandro Curquejo
Microsoft MVP
Windows Cliente
[Link]@[Link]

199
Gu ía bá sica de se gu r ida d pa r a W in dow s N T

W indows NT fue, según Microsoft , diseñado y desarrollado con la seguridad en m ent e " por lo t ant o -
podríam os pensar - no t engo que preocuparm e de su seguridad" ; e st o e s fa lso.

Lo prim ero es que ningún program a nos va dar la solución a la seguridad definit iva y t ot al ( y el que lo
prom et a m ient e) . Todos t ienen fallos y vulnerabilidades que para cuando son parcheados, el program a será
t ildado de obsolet o. Lo segundo es que la seguridad de un sist em a depende en gran m edida de nuest ras
polít icas y de la configuración del sist em a.

Est a guía t rat a de las recom endaciones de configuración que debes t ener si est ás usando Windows NT. No
es obj et ivo de est a guía el enseñarle a usar Windows NT, aunque si se hace una pequeña int roducción con
concept os básicos para unificar t érm inos.

I N D I CE:

1.- Concept os básicos.


2.- Polít icas de passwords y cuent as.
3.- Perm isos y derechos de usuario.
4.- Com part ición de recursos de red.
5.- Seguridad del regist ro.
6.- Audit orías.
7.- Seguridad de los Prot ocolos. Seguridad de los servicios.
8.- Services Pack
9.- Para acabar...

1 .- Con ce pt os Bá sicos:

D om in io
Es un grupo lógico de m áquinas que com part en cuent as de usuarios y seguridad de los recursos. Un dom inio
est á int egrado por una m áquina NT se r vidor de dom in io que adm inist ra las cuent as y recursos del dom inio
en cuest ión, y/ o servidores y / o est aciones de t rabaj o. Los usuarios de un m ism o dom inio t endrán un inicio de
sesión único en el se r vidor de l dom in io para acceder a los recursos de cualquier part e de la red, una cuent a
única para acceder a las m áquinas del dom inio...

Cu e n t a s de u sua r ios

En las cuent as de los usuarios se est ablecen dat os com o el propiet ario de la m ism a, cont raseña de acceso,
localización de su direct orio de inicio de sesión, grupo al que pert enece et c. Windows NT dist ingue las
cu e n t a s loca le s y las cue nt a s de dom inio:

• Cu e nt a loca l de usu a r io: pert enecen a una única est ación Windows NT. El
procedim ient o de login de las m ism as se valida en una base de dat os local de la
est ación. La herram ient a adm inist rat iva de la est ación para crearlas, m odificarlas,
borrarlas y est ablecer polít icas de seguridad es el Adm in ist r a dor de u su a r ios o el
Adm inist r a dor de usua r ios pa r a dom inios.
200
• Cu e nt a de dom in io : pert enecen al dom inio en cuest ión. El procedim ient o de login
requiere, adem ás del nom bre de usuario y cont raseña, el dom inio al que se est á
haciendo login. La validación se hace en una base de dat os exist ent e en el servidor de
dom inio. La herram ient a adm inist rat iva del servidor para crearlas, m odificarlas,
borrarlas y est ablecer polít icas de seguridad del dom inio es el Adm in ist r a dor de
u su a r ios pa r a dom in ios.

Tant o si se hace login en un t ipo de cuent a u ot ro, para acceder al m enú de seguridad de la est ación o el
servidor ( para cam biar el password, bloquear el t erm inal, o cierre de sesión e incluso del sist em a) t eclear
CRTL+ ALT+ SUPR

Las cuent as que por defect o crea NT son la de I nvit a do ( guest ) , deshabilit ada por defect o - , y la del
Adm in ist r a dor , para configuración y cont rol de usuarios y recursos.

Cu e n t a s de gr upos

Las cuent as de usuarios se organizan en grupos. Cuando se añade un usuario a un grupo, el usuario t endrá
los de r e chos y pe r m isos asignados a ese grupo.

Windows NT dist ingue dent ro del concept o de grupo, dos cat egorías: gr u pos loca le s y globa le s.

• Gr upo loca l: lo form an cuent as locales de usuarios y grupos globales de ot ros dom inios.


Se usan para asignar a grupos de usuarios perm isos para acceder a un recurso.
Gr u po globa l: lo form an únicam ent e cuent as de dom inio. Aunque los grupos globales
pueden usarse para asignar perm isos a los recursos, su funcionalidad principal es
agrupar las cuent as de un dom inio. Para lo prim ero es m ej or añadir los grupos globales
com o locales.

NT crea por defect o ciert os grupos locales - con ciert os derechos ya adquiridos, globales y de sist em a. Los
grupos locales que exist en por defect o en cualquier m áquina NT son:



Usua r ios: Usuarios norm ales con cuent a.


Adm in ist r a dor e s: Usuarios con derechos para adm inist rar el sist em a.


I n vit a dos: Usuarios sin cuent as que t ienen derechos m uy lim it ados.
Ope r a dor e s de copia de se gu r ida d: Usuarios con derechos de copia de seguridad y
rest auración de archivos.

Si es servidora de dom inio, adem ás de los ant eriores grupos locales, NT crea:



Ope r a dor e s de cue n t a s: Usuarios con derechos para adm inist rar cuent as de usuarios.


Ope r a dor e s de se r vidor e s: Usuarios con derechos para adm inist rar servidores.
Ope r a dor e s de im pr e sión : Usuarios con derechos para adm inist rar im presoras

y los siguient es grupos globales:



Adm in s de dom in io


Usua r ios de dom in io
I nvit a dos de dom inio

Los usuarios se conviert en en m iem bros de los grupos de sist em a aut om át icam ent e al acceder a la red. Los
grupos de sist em a en cualquier m áquina NT son:

• TODOS: incluye a t odos los usuarios que acceden a la red. No se puede cont rolar quién


pert enece a est e grupo, pero sí los perm isos y derechos de est e grupo.
CREATOR OWNER ( propiet ario) : usuario que creó el recurso o es propiet ario del m ism o.

Es convenient e revisar qué derechos t ienen t odos est os grupos por defect o dent ro del m enú de polít icas de
derechos de usuarios

2 .- Polít ica s de pa ssw or ds y cue n t a s:

201
El adm inist rador de la red debe est ablecer una polít ica de passwords en la que se especifique:



Una duración m áxim a de la cont raseña ( aconsej able unos 90 días) .


Una longit ud m ínim a ( aconsej able un m ínim o de 8 caract eres) .


Un hist órico de la cont raseña ( unos 5 passwords) .
Un bloqueo aut om át ico t ras sucesivos fallos de login ( unos 5 fallos de login) .

La polít ica se est ablece dent ro del m enú de Adm inist rador de usuarios para dom inios- > Direct ivas- > Cuent as-
> Plan de cuent as

Para desbloquear una cuent a, acceder dent ro del m enú de:


Adm inist rador de usuarios para dom inios- > Usuario- > Propiedades- > Cuent a desact ivada

Tam bién es út il est ablecer en el Adm in ist r a dor de u su a r ios pa r a dom in ios rest ricciones de:



Horas de login al dom inio.


Est aciones desde las que se puede acceder al dom inio.


Expiración de la cuent a si es t em poral.
Rest ricción de acceso dial- in.

así com o t em plat es para las cuent as de nueva creación.

3 .- Pe r m isos y de r e ch os de u sua r io:

Los de r e chos de u sua r io definen qué pueden hacer los usuarios . Algunos de los derechos m ás com unes
son:



El derecho de inicio de una sesión local.


Derechos de adm inist ración de audit oría.


Derecho de apagar el equipo.


Derecho de acceder al equipo desde la red ( Log On) .
Derecho de hacer copias de seguridad o de recuperación de ficheros.

Para configurar los derechos de usuarios , se elige Derechos de usuarios del m enú Direct ivas del
Adm inist rador de usuarios de Dom inio y se aut orizan para cada derecho los usuarios o grupos apropiados.

Hay que t ener en cuent a que:

Es convenient e elim inar al grupo TODOS el derecho de LogOn ( acceso desde red)

Los perm isos definen qué recursos pueden usar los usuarios o grupos de usuarios , ent endiendo por recurso
un fichero, direct orio o una im presora. Los perm isos cont rolan el acceso a direct orios y ficheros locales, y
com part idos en la red y son configurados por el adm inist rador o por el propiet ario de los m ism os. Hay
perm isos est ándar y perm isos individuales. Los perm isos est ándar son una com binación de los perm isos
individuales.

Pe r m isos pa r a dir e ct or ios

Pe r m isos e st á nda r Pe r m isos in dividua le s Pe r m isos pa r a nu e vos fich e r os


Sin acceso Ninguno Ninguno
List ar R,X -
Lect ura R,X R,X
Añadir W,X -
Añadir y Lect ura R,W,X R,X
Cam bio R,W,X,D R,W,X,D
Cont rol t ot al Todo Todo

202
Pe r m isos pa r a fich e r os

Pe r m isos e st á nda r pa r a a r ch ivos Pe r m isos in dividua le s


Sin acceso Ninguno
Lect ura R,X
Cam bio R,W,X,D
Cont rol t ot al Todos

En un sist em a de ficheros NTFS, el adm inist rador puede configurar los perm isos de ficheros y direct orios
pulsando con el bot ón derecho del rat ón sobre el fichero o direct orio que se que desee prot eger, y luego la
secuencia:
propiedades - > seguridad - > perm isos .

N OTA: ¡¡¡Cuando se form at ea un volum en con NTFS, el grupo TODOS adquiere Cont rol Tot al del volum en! ! !

Así, los direct orios syst em root ( norm alm ent e C: winnt ) , syst em root syst em 32 y syst em root em p, t ienen
derechos de CONTROL TOTAL , CAMBI O Y CONTROL TOTAL respect ivam ent e al grupo TODOS.

Para corregirlo, una vez com probado que el ADMI NI STRADOR t iene CONTROL TOTAL sobre los m ism os,
cam biar a sólo LECTURA syst em root sin propagar est os cam bios a los subdirect orios, y syst em root syst em 32 a
sólo LECTURA propagándolos, con la precaución de poner perm iso de CAMBI O a TODOS a winnt syst em 32RAS
y winnt syst em 32spoolPrint er.

De la m ism a m anera, el volum en C: donde se encuent ran ficheros relacionados con el arranque de la
m áquina, debería ser form at eado NTFS y los ficheros crít icos deberían t ener:

C: oot .ini - > Cont rol t ot al para Adm inist radores y Sist em a.
C: t det ect .com - > Cont rol t ot al para Adm inist radores y Sist em a.
C: aut [Link] - > Cont rol t ot al para Adm inist radores y Sist em a y Lect ura a Todos.
C: [Link] - > Cont rol t ot al para Adm inist radores y Sist em a y Lect ura a Todos.

4 . - Com pa r t ición de r e cu r sos de r e d:

Para com part ir recursos a la red solo t endrem os que pinchar con el bot ón derecho sobre un direct orio o una
im presora y verem os una opción que será com part ir. Nos aparecerá un m enú desde donde podrem os
com part ir el recurso. Pulsarem os ahora en perm isos...

Los recursos de la red se com part en de form a segura con los siguient es perm isos:

• CON TROL TOTAL: perm it e m odificar perm isos, t om ar en propiedad y perm isos de


CAMBI O
CAM BI O: perm it e crear direct orios, añadir ficheros, m odificar dat os y perm isos de ést os,


borrar ficheros y direct orios, y perm isos de READ.


LECTURA: perm it en list ar direct orios, ficheros.
SI N ACCESO: est e perm iso sobreescribe cualquier ot ro y deniega el acceso al recurso.

OJO!!! : est os perm isos sólo son efect ivos cuando se hace login en la red; en nada influyen si el usuario
accede localm ent e. Para los accesos locales se usan los perm isos NTFS. El grupo TODOS t iene asignado
aut om át icam ent e CONTROL TOTAL ant e cualquier recurso com part ido. Nunca debe pues com part ir direct orios
que cont engan inform ación crít ica del sist em a.

A diferencia de los perm isos NTFS, no se pueden asignar diferent es perm isos a dist int os ficheros de un m ism o
direct orio com part ido.

Cuando se com binan los perm isos de recursos com part idos y los perm isos en un volum en NTFS, prevalece el
m ás rect rict ivo.
203
5 .- Se gu r ida d de l r e gist r o:

El regist ro es una base de dat os que m ant iene inform ación sobre la configuración hardware, soft ware y de
ent orno de la m áquina. Se puede ver con REGEDT32. Windows NT 4.0 no perm it e el acceso rem ot o al regist ro
por defect o. Es convenient e pues:

• Deshabilit ar el acceso rem ot o al regist ro, chequeando la exist encia de la siguient e


ent rada en el regist ro:

HKEY_LOCAL_MACHI NESYSTEMCurrent Cont rolSet Cont rolSecurePipeServerswinreg

• Deshabilit ar ( poner a 0) si es necesario el apagado del equipo en la opción


Shut downWit hout Logon de:

HKEY_LOCAL_MACHI NESOFTWAREMicrosoft Windows NTCurrent VersionWinlogon



Prot eger adecuadam ent e el regist ro de usuarios no aut orizados.
Hacer copias periódicas del m ism o con la ut ilidad [Link]

6 .- Audit or ía s.

El Sist em a de audit orías de Windows NT perm it e rast rear sucesos que ocurren en una m áquina NT, servidor
de dom inio o est ación o servidor NT . Las audit orías son esenciales para m ant ener la seguridad de los
servidores y redes. Perm it en un seguim ient o de las act ividades realizadas por los usuarios .

La polít ica de audit orías se est ablece en cada m áquina NT. Se pueden realizar t res t ipos de audit orías en NT:

a ) Au dit or ía de cue n t a s de usua r io: rast rea los sucesos de seguridad y escribe apunt es en el regist ro de
seguridad. Se act iva en Adm inist rador de usuarios en dom inios - > Direct ivas - > Audit oría. PLAN DE
AUDI TORI AS.

Los event os que se pueden audit ar son:



Logon y logoff en la red


Acceso a ficheros , direct orios o im presoras


Ej ercicio de los derechos de un usuario


Seguim ient o de procesos
Tirada o arranque del sist em a...

b) Au dit or ía de l sist e m a de a r ch ivos: rast rea sucesos del sist em a de archivos. Se act iva est a opción en
Propiedades, t ras pulsar con el bot ón derecho sobre el fichero o direct orio que se desee audit ar y luego
seleccione Seguridad - > Audit orías.

Los event os que se pueden audit ar son: LECTURA, ESCRI TURA, EJECUCI óN, ELI MI NACI óN, CAMBI O DE
PERMI SOS Y TOMA DE POSESI óN.

Para audit ar ficheros y direct orios, ést os deben est ar localizados en un volum en NTFS.

c) Audit or ía de im pr e sor a s: prim ero se est ablece la polít ica de audit orías haciendo doble click en la
im presora en cuest ión, dent ro del m enú I m presoras, y luego seleccionar Seguridad - > Audit orías.

Algunos de los event os que se pueden audit ar son: uso de la im presora, cancelar t rabaj os de im presión,
cont rol t ot al de la im presora...

Se debe t ener derechos de adm inist rador para configurar propiedades de audit oría.

204
Una vez que se act iva una audit oría se ut iliza el Visor de sucesos dent ro de Herram ient as adm inist rat ivas para
ver los event os audit ados.

Se debería t ener cuidado y prot eger los archivos de audit oría que est án alm acenados en el direct orio
winnt syst em 32CONFI G en los archivos:



[Link] : Regist ro de sucesos en aplicaciones.


[Link] : Regist ro de sucesos de seguridad.
[Link] : Regist ro de sucesos del sist em a.

Algo m u y im por t a n t e a la hora de m irar los regist ros es que la m áquina t enga la hora correct a, ya que si
t enem os que com parar con los regist ros de ot ras m áquinas, si am bas no est án sincronizadas será m uy difícil.
Para est o podem os usar NTP ( Net work Tim e Prot ocol) que sirve para poner en hora ordenadores. La Unidad
Técnica de Com unicaciones ofrece est e servicio a t odas las m áquinas de la UAM y podrás encont rar m ás
inform ación pulsando aquí. Lo único que necesit as es un soft ware que puedes baj art e pincharlo aquí y
configurarlo.

7 .- Se gu r ida d de los Pr ot ocolos. Se gur ida d de los se r vicios.

Debem os usar solo los prot ocolos que vayam os a necesit ar. En principio y salvo que t engam os necesidad de
usar m ás prot ocolos, podríam os dej ar solo dos:



Net BEUI
TCP/ I P

Con est os dos prot ocolos son solo de dos t ipos los servicios que est am os ofreciendo a la red:

• SMB: ( Bloques de M ensaj es de Servidor) de Microsoft que son servicios de archivos y


red. Est os servicios est án inst alados por defect o norm alm ent e.
Servicios TCP/ I P e I nt ernet com o servidores Web y FTP. Se pueden inst alar de m odo
opcional.

Est os son algunos de los puert os TCP/ I P que podem os inst alar en una m áquina NT:

Servicio / Puert o / Prot ocolo Descripción


FTP / 21 / t cp Servidor FTP.
SMTP / 25 / t cp Gest iona la dist ribución del correo de la m áquina.
DNS / 53 / t cp- udp Servidor de nom bres ( DNS)
GOPHER / 70 / t cp Sist em a de indexación de los servidores FTP ( obsolet o)
HTTP ( WWW) / 80 / t cp Servidor WWW
POP2 / 109 / t cp Servidor de correo Pop versión 2
POP3 / 110 / t cp Servidor de correo Pop versión 3
NEWS / 119 / t cp Servidor de News
NETBI OS / 137- 138- 139 / t cp- udp Windows for Workgroups

Conviene t ener abiert os el m enor núm ero de servicios. Al ser est os opcionales, no vienen inst alados por
defect o y hay que inst alarlos a post eriori. Salvo que se necesit en y que se sepa lo que se est á haciendo,
conviene no inst alar ninguno.

Tam bién se pueden configurar las opciones de seguridad TCP/ I P para perm it ir o bloquear la dirección del ( los)
puert o( s) que se necesit en según los servicios que se quieran ej ecut ar. Para hacer est o, siga la siguient e
secuencia:

Panel de Cont rol - > Red - > Prot ocolos - > Prot ocolo TCP/ I P - > Propiedades - > Avanzadas
Marque: Act ivar seguridad

205
Pulse el bot ón Configurar
Seleccione el adapt ador correspondient e y m arque el núm ero de puert o/ s del servicio/ s que quiera perm it ir.

8 .- Se r vice s Pa ck

Los Services Pack ( SP) no son m ás que un conj unt o de parches que Microsoft saca de vez en cuando para
solucionar fallos, bugs, dar nuevas funcionalidades, et c... Lo bueno de est os parches es que de una sola vez
aplicas t odos ( a veces m ás de 100) rápida y fácilm ent e.

Todo NT debería t ener inst alado al m enos el SP5. En la act ualidad ya ha salido el SP6a. La versión española
del SP6a t am bién est á disponible.

I M PORTAN TE: N u n ca inst alar un SP en ingles en un NT en español. Nos causará un sinfín de problem as y
en algunos casos habrá que reinst alar el sist em a.

Puedes baj art e el SP que necesit es aquí:

SP5 SP6 a
Ca st e lla n o SP5i386-español SP6ai386-español
I n gle s SP5i386-ingles SP6i386-ingles

9 .- Pa r a a ca ba r ...

• No conviene que NT est é inst alado en una m áquina con arranque dual, ya que est o haría que


m uchas de sus garant ías de seguridad perdieran efect ividad.
Es casi obligado que la part ición sea NTFS, no encont rarem os ninguna razón para inst alar NT en


una part ición FAT.
Conviene dar a cada uno de los usuarios del sist em a unas ciert as norm as sobre el uso de la
m áquina que podría em pezar con la frase de " Todo lo que no est a explícit am ent e perm it ido,
est a prohibido" y cont inuar explicando t odo lo que est á perm it ido. Si se dej an las cosas claras


desde un principio, no ahorrarem os m uchos quebraderos de cabeza.
Adm inist rador no hay m ás que uno. Aunque NT perm it e que haya varios adm inist radores para
t areas det erm inadas, es m uy im port ant e delim it ar est as t areas al m áxim o si son de una
persona las que adm inist ran la m áquina. A m edida que el núm ero de adm inist radores t iende a


infinit o, la funcionalidad en la m áquina t iende a cero.
Los usuarios solo deben t ener los privilegios necesarios para ser usuarios. En un exceso de celo,
podem os com et er el error de lim it ar dem asiado los privilegios de los usuarios. Est o hace que el
usuario no pueda usar la m áquina norm alm ent e y perdam os de vist a el obj et ivo por el que
hacem os t odo est o. Por ot ro lado, si los usuarios t ienen excesivos privilegios ( algunos
adm inist radores irresponsables lo perm it en para no t ener que hacer las cosas ellos y que las
hagan los usuarios) nos podem os encont rar que por desconocim ient o, experim ent ación o


m aldad se cause daño al sist em a.
Com o decíam os arriba, una buena polít ica de passwds es convenient e: obligar a cam biar el
passwd cada 3 m eses, chequear las passwd de los usuarios cont ra diccionarios para encont rar


passwds fáciles, no dej ar repet ir passwds, et c.
Por últ im o decir que est a guía no es por supuest o exhaust iva, así que donde est a no llegue,
puede pedir m ás inform ación a soport [Link]@uam .es. De t odas form as recom endam os
com o recet a general, una búsqueda exhaust iva de inform ación, una buena dosis de sent ido
com ún y un pellizco de paranoia.

206
V ARI OS

207
Código de color e s pa r a ca ble s de r e d con con e ct or e s RJ4 5

N or m a de ca ble a do “5 6 8 - B” ( Ca ble n or m a l o pa r a le lo)


Est a norm a o est ándar est ablece el siguient e y m ism o código
de colores en am bos ext rem os del cable:
Cone ct or 1 N º PinÅÆN º Pin Cone ct or 2
Blanco/ Naranj a Pin 1 a Pin 1 Blanco/ Naranj a
Naranj a Pin 2 a Pin 2 Naranj a
Blanco/ Verde Pin 3 a Pin 3 Blanco/ Verde
Azul Pin 4 a Pin 4 Azul
Blanco/ Azul Pin 5 a Pin 5 Blanco/ Azul
Verde Pin 6 a Pin 6 Verde
Blanco/ Marrón Pin 7 a Pin 7 Blanco/ Marrón
Marrón Pin 8 a Pin 8 Marrón
Est e cable lo usarem os para redes que t engan “ Hub” o
“ Swit ch” , es decir, para unir los Pc´ s con las roset as y ést as
con el Hub o Swit ch.
NOTA: Siem pre la “ pat illa” del conect or RJ45 hacia abaj o y de
izqda. ( pin 1) a dcha. ( pin 8)

N or m a de ca ble a do “5 6 8 - A” ( Ca ble “Cr uza do”)


Est a norm a o est ándar est ablece el siguient e código de
colores en cada ext rem o del cable:
Con e ct or 1 ( 5 6 8 - B) N º Pin N º Pin Con e ct or 2 ( 5 6 8 - A)
Blanco/ Naranj a Pin 1 Pin 1 Blanco/ Verde
Naranj a Pin 2 Pin 2 Verde
Blanco/ Verde Pin 3 Pin 3 Blanco/ Naranj a
Azul Pin 4 Pin 4 Azul
Blanco/ Azul Pin 5 Pin 5 Blanco/ Azul
Verde Pin 6 Pin 6 Naranj a
Blanco/ Marrón Pin 7 Pin 7 Blanco/ Marrón
Marrón Pin 8 Pin 8 Marrón
Est e cable lo usarem os para redes ent re 2 Pc´ s o para
int erconexionar Hubs o Swit chs ent re sí.
NOTA: Siem pre la “ pat illa” del conect or RJ45 hacia abaj o y de
izqda. ( pin 1) a dcha. ( pin 8)

208
Código de color e s pa r a r ose t a s “m u r a le s” RJ4 5

209
ASCII
Hex Símbolo ASCII Hex Símbolo ASCII Hex Símbolo ASCII Hex Símbolo

0 0 NUL 16 10 DLE 32 20 (espacio) 48 30 0


1 1 SOH 17 11 DC1 33 21 ! 49 31 1
2 2 STX 18 12 DC2 34 22 " 50 32 2
3 3 ETX 19 13 DC3 35 23 # 51 33 3
4 4 EOT 20 14 DC4 36 24 $ 52 34 4
5 5 ENQ 21 15 NAK 37 25 % 53 35 5
6 6 ACK 22 16 SYN 38 26 & 54 36 6
7 7 BEL 23 17 ETB 39 27 ' 55 37 7
8 8 BS 24 18 CAN 40 28 ( 56 38 8
9 9 TAB 25 19 EM 41 29 ) 57 39 9
10 A LF 26 1A SUB 42 2A * 58 3A :
11 B VT 27 1B ESC 43 2B + 59 3B ;
12 C FF 28 1C FS 44 2C , 60 3C <
13 D CR 29 1D GS 45 2D - 61 3D =
14 E SO 30 1E RS 46 2E . 62 3E >
15 F SI 31 1F US 47 2F / 63 3F ?

ASCII Hex Símbolo ASCII Hex Símbolo ASCII Hex Símbolo ASCII Hex Símbolo

64 40 @ 80 50 P 96 60 ` 112 70 p
65 41 A 81 51 Q 97 61 a 113 71 q
66 42 B 82 52 R 98 62 b 114 72 r
67 43 C 83 53 S 99 63 c 115 73 s
68 44 D 84 54 T 100 64 d 116 74 t
69 45 E 85 55 U 101 65 e 117 75 u
70 46 F 86 56 V 102 66 f 118 76 v
71 47 G 87 57 W 103 67 g 119 77 w
72 48 H 88 58 X 104 68 h 120 78 x
73 49 I 89 59 Y 105 69 i 121 79 y
74 4A J 90 5A Z 106 6A j 122 7A z
75 4B K 91 5B [ 107 6B k 123 7B {
76 4C L 92 5C \ 108 6C l 124 7C |
77 4D M 93 5D ] 109 6D m 125 7D }
78 4E N 94 5E ^ 110 6E n 126 7E ~
79 4F O 95 5F _ 111 6F o 127 7F �

Tabla de ASCII estándar, nombres de entidades HTML, ISO 10646, ISO 8879, ISO 8859-1 alfabeto romano
numero 1
Soporte para browsers: todos los browsers

ASCII HTML HTML


Dec Hex Símbolo Numero Nombre Descripción

32 20 &#32; espacio
33 21 ! &#33; signo de cierre de exclamación / admiración
34 22 " &#34; &quot; comillas dobles
35 23 # &#35; signo de número
36 24 $ &#36; signo de dólar
37 25 % &#37; signo de porcentaje
38 26 & &#38; &amp; signo "&" / ampersand
39 27 ' &#39; comilla / apóstrofe
40 28 ( &#40; paréntesis izquierdo
41 29 ) &#41; paréntesis derecho
42 2A * &#42; asterisco
43 2B + &#43; signo de más / adición
44 2C , &#44; coma
45 2D - &#45; signo de menos / sustracción / guíon / raya
46 2E . &#46; punto
47 2F / &#47; barra oblicua - barra de división

ASCII HTML HTML


Dec Hex Símbolo Numero Nombre Descripción

48 30 0 &#48; cero
49 31 1 &#49; uno
50 32 2 &#50; dos
51 33 3 &#51; tres

210
52 34 4 &#52; cuatro
53 35 5 &#53; cinco
54 36 6 &#54; seis
55 37 7 &#55; siete
56 38 8 &#56; ocho
57 39 9 &#57; nueve
58 3A : &#58; dos puntos
59 3B ; &#59; punto y coma
60 3C < &#60; &lt; signo de menor que
61 3D = &#61; signo de igual
62 3E > &#62; &gt; signo de mayor que
63 3F ? &#63; signo de interrogación - cierre

ASCII HTML HTML


Dec Hex Símbolo Numero Nombre Descripción

64 40 @ &#64; símbolo arroba


65 41 A &#65;
66 42 B &#66;
67 43 C &#67;
68 44 D &#68;
69 45 E &#69;
70 46 F &#70;
71 47 G &#71;
72 48 H &#72;
73 49 I &#73;
74 4A J &#74;
75 4B K &#75;
76 4C L &#76;
77 4D M &#77;
78 4E N &#78;
79 4F O &#79;

ASCII HTML HTML


Dec Hex Símbolo Numero Nombre Descripción

80 50 P &#80;
81 51 Q &#81;
82 52 R &#82;
83 53 S &#83;
84 54 T &#84;
85 55 U &#85;
86 56 V &#86;
87 57 W &#87;
88 58 X &#88;
89 59 Y &#89;
90 5A Z &#90;
91 5B [ &#91; corchete izquierdo
92 5C \ &#92; barra inversa
93 5D ] &#93; corchete derecho
94 5E ^ &#94; signo de intercalación - acento circunflejo
95 5F _ &#95; signo de subrayado

ASCII HTML HTML


Dec Hex Símbolo Numero Nombre Descripción

96 60 ` &#96; acento grave


97 61 a &#97;
98 62 b &#98;
99 63 c &#99;
100 64 d &#100;
101 65 e &#101;
102 66 f &#102;
103 67 g &#103;
104 68 h &#104;
105 69 i &#105;
106 6A j &#106;
107 6B k &#107;
108 6C l &#108;
109 6D m &#109;
110 6E n &#110;
111 6F o &#111;

211
ASCII HTML HTML
Dec Hex Símbolo Numero Nombre Descripción

112 70 p &#112;
113 71 q &#113;
114 72 r &#114;
115 73 s &#115;
116 74 t &#116;
117 75 u &#117;
118 76 v &#118;
119 77 w &#119;
120 78 x &#120;
121 79 y &#121;
122 7A z &#122;
123 7B { &#123; llave de apertura - izquierda
124 7C | &#124; barra vertical
125 7D } &#125; llave de cierre - derecho
126 7E ~ &#126; signo de equivalencia / tilde
127 7F (no definido en estándar HTML 4)

ASCII HTML HTML


Dec Hex Símbolo Numero Nombre Descripción

128 80 (no definido en estándar HTML 4)


129 81 (no definido en estándar HTML 4)
130 82 (no definido en estándar HTML 4)
131 83 (no definido en estándar HTML 4)
132 84 (no definido en estándar HTML 4)
133 85 (no definido en estándar HTML 4)
134 86 (no definido en estándar HTML 4)
135 87 (no definido en estándar HTML 4)
136 88 (no definido en estándar HTML 4)
137 89 (no definido en estándar HTML 4)
138 8A (no definido en estándar HTML 4)
139 8B (no definido en estándar HTML 4)
140 8C (no definido en estándar HTML 4)
141 8D (no definido en estándar HTML 4)
142 8E (no definido en estándar HTML 4)
143 8F (no definido en estándar HTML 4)

ASCII HTML HTML


Dec Hex Símbolo Numero Nombre Descripción

144 90 (no definido en estándar HTML 4)


145 91 (no definido en estándar HTML 4)
146 92 (no definido en estándar HTML 4)
147 93 (no definido en estándar HTML 4)
148 94 (no definido en estándar HTML 4)
149 95 (no definido en estándar HTML 4)
150 96 (no definido en estándar HTML 4)
151 97 (no definido en estándar HTML 4)
152 98 (no definido en estándar HTML 4)
153 99 (no definido en estándar HTML 4)
154 9A (no definido en estándar HTML 4)
155 9B (no definido en estándar HTML 4)
156 9C (no definido en estándar HTML 4)
157 9D (no definido en estándar HTML 4)
158 9E (no definido en estándar HTML 4)
159 9F (no definido en estándar HTML 4)

ASCII HTML HTML


Dec Hex Símbolo Numero Nombre Descripción

160 A0 &#160; &nbsp; espacio sin separación


161 A1 ¡ &#161; &iexcl; signo de apertura de exclamación / admiración
162 A2 ¢ &#162; &cent; signo de centavo
163 A3 £ &#163; &pound; signo de Libra Esterlina
164 A4 ¤ &#164; &curren; signo de divisa general
165 A5 ¥ &#165; &yen; signo de yen
166 A6 ¦ &#166; &brvbar; barra vertical partida
167 A7 § &#167; &sect; signo de sección
168 A8 ¨ &#168; &uml; diéresis - umlaut
169 A9 © &#169; &copy; signo de derechos de autor - copyright

212
170 AA ª &#170; &ordf; género feminino - indicador ordinal feminino
171 AB « &#171; &laquo; comillas anguladas de apertura
172 AC ¬ &#172; &not; signo de no - símbolo lógico
173 AD &#173; &shy; guión débil
174 AE ® &#174; &reg; signo de marca registrada
175 AF ¯ &#175; &macr; macrón - raya alta

ASCII HTML HTML


Dec Hex Símbolo Numero Nombre Descripción

176 B0 ° &#176; &deg; signo de grado


177 B1 ± &#177; &plusmn; signo de más o menos
178 B2 ² &#178; &sup2; superíndice dos - cuadrado
179 B3 ³ &#179; &sup3; superíndice tres - cúbico
180 B4 ´ &#180; &acute; acento agudo - agudo espaciado
181 B5 µ &#181; &micro; signo de micro
182 B6 ¶ &#182; &para; signo de fin de párrafo
183 B7 · &#183; &middot; punto medio - coma Georgiana
184 B8 ¸ &#184; &cedil; cedilla
185 B9 ¹ &#185; &sup1; superíndice uno
186 BA º &#186; &ordm; género masculino - indicador ordinal masculino
187 BB » &#187; &raquo; comillas anguladas de cierre
188 BC 4 &#188; &frac14; fracción un cuarto
189 BD 2 &#189; &frac12; fracción medio - mitad
190 BE 4 &#190; &frac34; fracción tres cuartos
191 BF ¿ &#191; &iquest; signo de interrogación - apertura

ASCII HTML HTML


Dec Hex Símbolo Numero Nombre Descripción

192 C0 À &#192; &Agrave; A mayúscula con acento grave


193 C1 Á &#193; &Aacute; A mayúscula con acento agudo
194 C2 Â &#194; &Acirc; A mayúscula con acento circunflejo
195 C3 Ã &#195; &Atilde; A mayúscula con tilde
196 C4 Ä &#196; &Auml; A mayúscula con diéresis
197 C5 Å &#197; &Aring; A mayúscula con anillo
198 C6 Æ &#198; &AElig; diptongo AE mayúscula (ligadura)
199 C7 Ç &#199; &Ccedil; C cedilla mayúscula
200 C8 È &#200; &Egrave; E mayúscula con acento grave
201 C9 É &#201; &Eacute; E mayúscula con acento agudo
202 CA Ê &#202; &Ecirc; E mayúscula con acento circunflejo
203 CB Ë &#203; &Euml; E mayúscula con diéresis
204 CC Ì &#204; &Igrave; I mayúscula con acento grave
205 CD Í &#205; &Iacute; I mayúscula con acento agudo
206 CE Î &#206; &Icirc; I mayúscula con acento circunflejo
207 CF Ï &#207; &Iuml; I mayúscula con diéresis

ASCII HTML HTML


Dec Hex Símbolo Numero Nombre Descripción

208 D0 Ð &#208; &ETH; ETH islandesa mayúscula


209 D1 Ñ &#209; &Ntilde; N mayúscula con tilde - eñe mayúscula
210 D2 Ò &#210; &Ograve; O mayúscula con acento grave
211 D3 Ó &#211; &Oacute; O mayúscula con acento agudo
212 D4 Ô &#212; &Ocirc; O mayúscula con acento circunflejo
213 D5 Õ &#213; &Otilde; O mayúscula con tilde
214 D6 Ö &#214; &Ouml; O mayúscula con diéresis
215 D7 × &#215; &times; signo de multiplicación
216 D8 Ø &#216; &Oslash; O mayúscula with slash
217 D9 Ù &#217; &Ugrave; U mayúscula con acento grave
218 DA Ú &#218; &Uacute; U mayúscula con acento agudo
219 DB Û &#219; &Ucirc; U mayúscula con acento circunflejo
220 DC Ü &#220; &Uuml; U mayúscula con diéresis
221 DD Ý &#221; &Yacute; Y mayúscula con acento agudo
222 DE Þ &#222; &THORN; THORN islandesa mayúscula
223 DF ß &#223; &szlig; s minúscula (alemán) - Beta minúscula

ASCII HTML HTML


Dec Hex Símbolo Numero Nombre Descripción

224 E0 à &#224; &agrave; a minúscula con acento grave


225 E1 á &#225; &aacute; a minúscula con acento agudo
226 E2 â &#226; &acirc; a minúscula con acento circunflejo
227 E3 ã &#227; &atilde; a minúscula con tilde

213
228 E4 ä &#228; &auml; a minúscula con diéresis
229 E5 å &#229; &aring; a minúscula con anillo
230 E6 æ &#230; &aelig; diptongo ae minúscula (ligadura)
231 E7 ç &#231; &ccedil; c cedilla minúscula
232 E8 è &#232; &egrave; e minúscula con acento grave
233 E9 é &#233; &eacute; e minúscula con acento agudo
234 EA ê &#234; &ecirc; e minúscula con acento circunflejo
235 EB ë &#235; &euml; e minúscula con diéresis
236 EC ì &#236; &igrave; i minúscula con acento grave
237 ED í &#237; &iacute; i minúscula con acento agudo
238 EE î &#238; &icirc; i minúscula con acento circunflejo
239 EF ï &#239; &iuml; i minúscula con diéresis

ASCII HTML HTML


Dec Hex Símbolo Numero Nombre Descripción

240 F0 ð &#240; &eth; eth islandesa minúscula


241 F1 ñ &#241; &ntilde; eñe minúscula - n minúscula con tilde
242 F2 ò &#242; &ograve; o minúscula con acento grave
243 F3 ó &#243; &oacute; o minúscula con acento agudo
244 F4 ô &#244; &ocirc; o minúscula con acento circunflejo
245 F5 õ &#245; &otilde; o minúscula con tilde
246 F6 ö &#246; &ouml; o minúscula con diéresis
247 F7 ÷ &#247; &divide; signo de división
248 F8 ø &#248; &oslash; o barrada minúscula
249 F9 ù &#249; &ugrave; u minúscula con acento grave
250 FA ú &#250; &uacute; u minúscula con acento agudo
251 FB û &#251; &ucirc; u minúscula con acento circunflejo
252 FC ü &#252; &uuml; u minúscula con diéresis
253 FD ý &#253; &yacute; y minúscula con acento agudo
254 FE þ &#254; &thorn; thorn islandesa minúscula
255 FF ÿ &#255; &yuml; y minúscula con diéresis

HTML 4.01, ISO 10646, ISO 8879, alfabeto romano extendido A y B,


Soporte para browsers: Internet Explorer > 4, Netscape > 4

HTML HTML
Dec Hex Símbolo Numero Nombre Descripción

338 152 Œ &#338; OE mayúscula (ligadura)


339 153 œ &#339; oe minúscula (ligadura)
352 160 Š &#352; S mayúscula con caron
353 161 š &#353; s minúscula con caron - acento hacek
376 178 Ÿ &#376; Y mayúscula con diéresis
402 192 ƒ &#402; f minúscula itálica - signo de función

HTML HTML
Dec Hex Símbolo Numero Nombre Descripción

8211 2013 – &#8211; raya corta


8212 2014 — &#8212; raya larga
8216 2018 ‘ &#8216; comilla izquierda - citación
8217 2019 ’ &#8217; comilla derecha - citación
8218 201A ‚ &#8218; comilla de citación - baja
8220 201C “ &#8220; comillas de citación - arriba izquierda
8221 201D ” &#8221; comillas de citación - arriba derecha
8222 201E „ &#8222; comillas de citación - abajo
8224 2020 † &#8224; cruz
8225 2021 ‡ &#8225; doble cruz
8226 2022 • &#8226; viñeta - bullet
8230 2026 … &#8230; puntos suspensivos
8240 2030 ‰ &#8240; signo de pro mil
8364 20AC € &#8364; &euro; signo de euro
8482 2122 ™ &#8482; signo de marca registrada - trade mark

214
ASCII Hex Símbolo Tipo Descripción

0 0 NUL Null - nulo


1 1 SOH CC Start of Heading - inicio de cabecera
2 2 STX CC Start of Text - inicio de texto
3 3 ETX CC End of Text - fin de texto
4 4 EOT CC End of Transmission - fin de transmissión
5 5 ENQ CC Enquiry - solicitud de información
6 6 ACK CC Acknowledge - confirmación
7 7 BEL Bell - señal audible / tono de atención
8 8 BS FE Backspace - retroceso
9 9 TAB FE Horizontal Tabulation - tabulado horizontal
10 A LF FE Line Feed - avance de linea
11 B VT FE Vertical Tabulation - tabulado vertical
12 C FF FE Form Feed - avance de página
13 D CR FE Carriage Return - Retorno de carro, iniciar nueva linea
14 E SO Shift Out - terminar modo mayúsculas
15 F SI Shift In - iniciar modo mayúsculas

ASCII Hex Símbolo Tipo Descripción

16 10 DLE CC Data Link Escape - escape del enlace de datos


17 11 DC1 Device Control 1 - control de dispositivo 1
18 12 DC2 Device Control 2 - control de dispositivo 2
19 13 DC3 Device Control 3 - control de dispositivo 3
20 14 DC4 Device Control 4 - control de dispositivo 4
21 15 NAK CC Negative Acknowledge - confirmación negativa
22 16 SYN CC Synchronous Idle - sincronización de la comunicación
23 17 ETB CC End of Transmission Block - fin de bloque de transmissión
24 18 CAN Cancel - cancelar
25 19 EM End of Medium - fin del medio (cinta/disco/papel)
26 1A SUB Substitute - reemplazar
27 1B ESC Escape
28 1C FS IS File Separator - separador de archivos
29 1D GS IS Group Separator - separador de grupo
30 1E RS IS Record Separator - separador de registro
31 1F US IS Unit Separator - separador de unidad

Tipo Descripción

CC Communication Control - control de comunicación


FE Format Effector - manipulador de formato
IS Information Separator - separador de información

215

También podría gustarte