Elaboración de páginas web: Lenguaje HTML
Arquitectura cliente/servidor -Introducción al lenguaje HTML - Principales elementos del lenguaje html - Creación de documentos  HTML - Cabecera del documento - Creación de encabezados, estilos y párrafos - Creación de enlaces y vínculos - Creación de listas - Creación de tablas - Añadir imágenes

HTML AVANZADO:
Creación de páginas basadas en marcos o frames - Creación de formularios y scripts CGI - Envío y gestión de información
 

Arquitectura cliente/servidor

Antes de comenzar a explicar la estructura de las páginas web y el lenguaje html, es importante tener claro en que consiste la arquitectura cliente/servidor en la que se basan tanto las redes locales como la propia Internet

Pensar en una red clásica de pescadores es bastante gráfico para comprender la estructura de la Red. En ella, se pueden
diferenciar a simple vista dos elementos que se repiten: los nudos y los segmentos de malla que unen los distintos nudos.
 
Al hablar de Internet estamos hablando también de una red y los elementos que componen esa red son los nodos y los enlaces. La estructura de Internet no es tan regular como una red de pescadores, si bien se pretende tener conectividad entre todos los nodos, es decir, lo ideal es tener la posibilidad de encontrar al menos dos rutas o caminos (path en inglés) entre dos nodos cualesquiera. Uno de ellos será el nodo origen  de los mensajes mientras que el otro será el nodo destino.

Los nodos no son más que ordenadores dedicados a encaminar los paquetes hacia su destino, eligiendo el enlace más
adecuado en cada momento. Estos nodos reciben el nombre de enrutadores (ROUTERS), y serían algunos de los nudos de
la parte interna/central de la red de pesca. Igualmente, nosotr@s al conectarnos utilizamos un ordenador, que si bien también
es un nodo de la red se le denomina HOST (tu ordenador).
 
Los enlaces son las conexiones físicas entre nodos y están formados por un conjunto de circuitos de datos en forma de hilos
telefónicos, fibras ópticas, microondas y demás soportes propios de Telecomunicaciones. La información, se divide en trozos
de un número determinado de caracteres. A cada trozo de estos, denominado paquete, se le asocia información de
enrutamiento, y se envía por un enlace. Es decir, cuando se establece una conexión internet, tu equipo queda conectado por un enlace a la red.

Existen una serie de ordenadores  que están conectados a la red con el objeto de ofrecer y proporcionar alguna clase de
servicio a todo aquel que se lo pida. Estos ordenadores son también nodos de la red y se denominan servidores
(SERVERS).

Para poder acceder a los recursos que ofrece un servidor se necesita un tipo de programa específico, denominado programa
cliente, que debes ejecutar en tu ordenador y que es el encargado de mantener el diálogo con el programa servidor. Se dice
que estamos en una arquitectura cliente / servidor, en la que el programa servidor corre en el ordenador que ofrece algúnrecurs o (server) y el programa cliente en el ordenador de aquél que lo reclama (host). Los programas navegadores (Netscape, Explorer) son clientes que piden páginas a diversos servidores que existen en la red.
 

Introducción al HTML
 
Cuando tu programa navegador (cliente) pide una página web al servidor, éste le envía un fichero de texto (con extensión htm o html) en lenguaje html que tu programa (netscape o explorer) se encarga de "traducir"  para que puedas visualizar correctamente en el navegador la página web solicitada incluyendo texto, fondos, gráficos, etc.

El HTML (HipertText Markup Language) ó Lenguaje de enlaces hipertexto es un sistema  que se encarga de definir tipos de documentos estructurados y lenguajes de marcas para representar esos mismos documentos. El término HTML se suele referir a ambas cosas, tanto al tipo de documento como al lenguaje de marcas.

Como cualquier página web está soportada por un fichero de texto,  se pueden elaborar, editar o modificar directamente con el bloc de notas o el wordpad de Windows 95, aunque existen programas editores de páginas web  a la venta como HotDog ó Front Page y programas gratuitos de edición básica como Netscape Composer, que permiten editarlas con algunas funciones  automatizadas a través de botones y menús.
 
 
Elementos del lenguaje HTML
 

Caracteres :

 
Marcadores, marcas o etiquetas (tags) :
    Nombres de etiquetas  :
   
Atributos :
  Comentarios :
   
Creación de documentos HTML
  Aspecto de documentos HTML:
     
Marcadores o etiquetas  HTML obligatorios:
  En el caso del marcador body puede ir acompañado, no obligatoriamente, del atributo BGOLOR (Background color)  junto con un numero de expresión hexadecimal que determina un color de fondo plano para la pagina web.  Esta función, como veremos más adelante con el color de los textos está automatizada en la mayoría de editores de páginas web (incluido Netscape Composer).
 
Cabecera del documento

Contiene información general sobre el documento HTML. Es obligatorio incluir el marcador <TITLE>, el resto de los marcadores son opcionales.
 

Proporcionar datos al servidor de HTTP para que genere campos de cabecera (como, por ejemplo, la fecha de caducidad de un documento que se actualiza periódicamente). Se emplean atributos del tipo HTTP-EQUIV y para la segunda los del tipo NAME. En ambos casos, el valor se asigna en el campo CONTENT.
 
<META HTTP-EQUIV ="Expires" CONTENT="Diciembre 1998">
 
* Para que un usuario incluya información adicional sobre el documento, como palabras clave o el nombre del autor. El atributo NAME se refiere a nombres elegidos al azar por el usuario, mientras que HTTP-EQUIV significa que el valor tiene una cabecera equivalente real en el protocolo HTTP.
 
<META NAME="Autor" CONTENT="Cooperacion+Desarrollo+ONGD"> 
 
 
Creación de encabezados, estilos y párrafos
 

Creación de encabezados :
 

 
Etiquetas de caracteres y tipos de letra:
   
LENGUAJE HTML RESULTADO en navegador
<b>texto en negrita</b> texto en negrita
<i>texto en cursiva o itálica </i> texto en cursiva o itálica
<u>texto subrayado</u> texto subrayado
<b><i><u>combinando las tres anteriores</b></i></u> combinando las tres anteriores
<tt>fuente tipo de máquina de escribir</tt> fuente tipo de máquina de escribir
 

  Formateo de párrafos o bloques:
 

   
Presentación de textos en color:
     
<FONT COLOR="4169E1">prueba de color azul</font> prueba de color azul
   
<BODY TEXT="4169E1">
 

Creación de enlaces y vínculos
 

Hipervínculos:
 

 
Marcador ancla <A>:
   
<A ORDEN="objetivo"> Texto resaltado </A>
  Por ejemplo (enlace externo:   <a href="http://www.apc.org">APC</a>) Por ejemplo,  enlace interno a una parte del propio documento con el nombre indice
<a name="indice"> Indice de documentos </a>  
Vinculación con documentos locales:
     
Vinculación con un punto específico del documento (enlaces internos):
   
<A NAME="indice">Indice</A> 
... 
... 
... 
<A HREF="pagina.htm/#indice"> Indice de documentos</A>
 
 
En este ejemplo, al pulsar sobre Indice de documentos, slataremos hacia un lugar de la página que hemos definido con el nombre de indice a través de la etiqueta A NAME
 

Vinculación de localizadores universales de recursos (enlaces externos):
 

 
Nombredelservicio://hostdeinternet:nnumerodepuerto/recurso
      Por ejemplo: enlace a la página web de novedades de Nodo50:
<a href="http://www.nodo50.org/novedades.htm">Novedades Nodo50</a>  
Por ejemplo: enlace al servidor de ftp de Nodo50:
<a href="ftp://nodo50.org">FTP</a>
  Por ejemplo: enlace a un grupo de noticias
<a href="news://nodo50.org/reg.mexico">Grupo de noticias reg.mexico</a> 
  Por ejemplo: enlace a una dirección de correo
<a href="mailto:ayuda@nodo50.org">ayuda@nodo50.org</a>
  Por ejemplo: enlace a un archivo en el propio PC
<a href="file://pruebas/pagina3.htm">pagina3</a>
 
 

Creación de listas
 
Listas desordenadas o con topos :

  Se indica cada elemento de la lista destacándolo con un punto u otro símbolo tipográfico.
 

Lista desordenada:  

<UL TYPE="tipo"> 
<LI>Elemento 1</LI> 
<LI>Elemento 2</LI> 
</UL>

   
DISC Círculo
SQUARE Cuadrado
HOLLOW CIRCLE Círculo vacío.
   
Listas ordenadas o numeradas :
   
Lista ordenada: 

<OL TYPE="tipo" START="numero"> 
<LI>Elemento 1</LI> 
<LI>Elemento 2</LI> 
</OL>

   
z1 Números arábigos.
a Letras minúsculas.
A Letras mayúsculas.
i Números romanos en minúsculas.
I Números romanos en mayúsculas.
     
Listas de glosario :
   
Lista de glosario:  

<DL> 
<DT>Término 1</DT> 
<DD>Dato 1</DD> 
<DD>Dato 2</DD> 
<DT>Término 2 </DT> 
</DL>

   
Listas anidadas :
   
Creación de tablas

Una tabla esta compuesta por filas y columnas de información. No solo permiten tabular la información sino mantener un mayor control sobre lo que se visualizará en la pantalla. La intersección de una fila y una columna genera una celda.
 
<TABLE BORDER=10 WIDTH="90%" ALIGN="justify">  
 <CAPTION> Título de la tabla</CAPTION>  
 <TH ALIGN="right">Cabecera columna 1</TH>  
 <TH ALIGN="right">Cabecera columna 2</TH>  
 <tr> 
 <TD ALIGN="center">Fila 1, columna 1</TD>  
 <TD ALIGN="center">Fila 1, columna 2</TD>  
 <TR>  
 <TD ALIGN="left">Fila 2, columna 1</TD>  
 <TD ALIGN="left">Fila 2, columna 2</TD>  
 </TR> 
 </TABLE> 
 
 

 
PIXELS Pixeles en pantalla.
RELATIVE Porcentaje de la anchura de página (%)
   
JUSTIFY Ajustar al ancho de la página.
LEFT Izquierda.
RIGHT Derecha.
   
CENTER Centro.
LEFT Izquierda.
RIGHT Derecha.
 
  En definitiva, el código del principio de este apartado sobre creación de tablas tendría este resultado:
 
 
Título de la tabla
Cabecera columna 1 Cabecera columna 2
Fila 1, columna 1 Fila 1, columna 2
Fila 2, columna 1 Fila 2, columna 2
 

 
Añadir imágenes 
 

Adición de imágenes internas:
 
Son las imágenes que aparecen cuando se visualiza el documento HTML. Los navegadores sólo pueden visualizar dos tipos de imágenes:
 

Además de que las imágenes tengan que ser de este tipo, es aconsejable que no tengan un tamaño superior a 20-25K para evitar que tarden mucho en cargarse y la página web sea lo suficientemene "ágil". Para ello, es muy importante que la resolución de estas imágenes no sea superior a 75ppp que es la resolución de la pantalla.  Es inútil darles una mayor resolución (que se aplica en la edición en papel) porque sólo van a ocuparnos mayor espacio y no por ello se van a poder ver mejor en el monitor.  
MIDDLE Alineación centro.
TOP Alineación superior.
BOTTOM Alineación inferior.
LEFT Alineación izquierda.
RIGHT Alineación derecha.
  Un ejemplo de inclusión de imágen en código html incuyendo todos los atributos  mencionados sería:
<img src="prueba.jpg" alt="imagen de prueba" height=20 widht="40 align=right border=0>
Esta línea de codigo indica que insertamos una imagen tipo jpg llamada prueba, de 20x40 pixeles, sin marco, alineada a la derecha y con un texto alternativo (el que aparece cuando no se quieren ver imágenes en el navegador o cuando se están cargando).
 

Convertir una imagen interna en un hipervínculo:
 
Basta incluir el marcador de imagen con todos sus atributos entre los marcadores de ancla (<a href=....></a> .  El resultado obtenido es poder pulsar directamente sobre la imagen para acceder al hipervínculo.
 

<A HREF="http://wwwnodo50.org"><IMG SRC="logonodo50.gif"></A>
 
 
Fondos de imagen:
 
También se puede establecer que una imagen  sea el fondo de un documento HTML incluyéndose como atributo del marcado del cuerpo (body) del documento HTML.
 
<BODY BACKGROUND= "fondo.jpg">
 
 

Hasta aquí, lo que podríamos denominar como un curso básico para elaborar páginas web, sin embargo, el lenguaje HTML está provisto de más códigos y funciones que complican un poco más su elaboración pero también la hacen más completa.  Como ampliación a esta primera parte de creación de html, hemos elaborado una segunda parte más avanzada que recomendamos seguir una vez se haya asimilado esta primera parte
 
 

AVANZADO
 

Creación de pagínas basadas en marcos o "frames

Los marcos son como los trucos de vídeo de pantalla partida que  se utilizan ocasionalmente en programas de televisión para mantener la atención de l@s espectador@s. En los marcos la ventana del visor se divide en varias secciones independientes entre ellas y por supuesto interactivas.
 
En el caso de las páginas web, cada uno de estos marcos suelen contener una página web con los habituales códigos HTML. Todos estos marcos que componen una web están referenciados en la página web que los engloba.
 

Por ejemplo, la siguiente página web básica está compuesta 
por dos marcos en columnas que hacen a su vez referencia a dos páginas web, 
web1.htm y web2.htm 

<html> 
<body> 
<FRAMESET COLS="25%,75%/">  
<FRAME SRC="web1.htm" NAME="nom">  
<FRAME SRC="web2.htm">  
</FRAMESET> 
</body> 
</html>

   

Creación de formularios y scripts CGI
 

Declaración de formularios:

 MARCADOR <FORM>: establece la definición del formulario. En su interior aparecen una secuencia de elementos de entrada (INPUT), junto con elementos de marcado de estructura del documento.
 
<FORM ACTION="URL" METHOD="método de acceso" ENCTYPE="tipo de codificación"> 

<INPUT TYPE=TEXT NAME="nom" SIZE=n MAXLENGTH=n VALUE="val"> 
<INPUT TYPE=PASSWORD NAME="nom" SIZE=n MAXLENGTH=n VALUE="val"> 
 
<INPUT TYPE=CHECKBOX NAME="nom" VALUE="val1" CHECKED> texto 1 
<INPUT TYPE=CHECKBOX NAME="nom" VALUE="val2"> texto 2 

<INPUT TYPE=RADIO NAME="nom""VALUE="val1" CHECKED> texto 1 
<INPUT TYPE=RADIO NAME="nom" VALUE="val2"> texto 2  

<INPUT TYPE=IMAGE NAME="nom" SRC="mapa.gif"> 
<INPUT TYPE=HIDDEN NAME="clave" VALUE="val"> 

<INPUT TYPE=SUBMIT NAME="clave" VALUE="caption"> 
<INPUT TYPE=RESET NAME="clave" VALUE="caption">  

<SELECT NAME="nom"> 
<OPTION SELECTED>texto 1 
<OPTION>texto 2 
</SELECT> 

<TEXTAREA NAME="nom" ROWS=n COLS=c> texto de varias líneas </TEXTAREA> 

</FORM>

 

MARCADOR <INPUT>: representa cada uno de los campos de entrada de datos.  
TEXT Casillas de texto en blanco.
PASSWORD Casillas de texto para claves.
CHECKBOX Casillas de selección.
RADIO Botones de radio.
IMAGE Pixels de una imagen.
HIDDEN Campos oculto
SUBMIT Botón de envío.
RESET Botón de reinicio.
 
Casillas de texto en blanco:
   
Casillas de texto para claves: mismos atributos que las casillas de texto en blanco solo que el eco en pantalla de los caracteres tecleados son asteriscos.
 
Casillas de selección: permite la selección no excluyente de una serie de opciones y dispone de los atributos NAME, SIZE y VALUE además de :
   
Botones de radio: permite la selección excluyente de una serie de opciones y dispone de los atributos NAME, SIZE, VALUE y CHECKED.
 
Pixels de una imagen: especifica una imagen para que la muestre el visor y permite la entrada de dos campos, las coordenadas x e y de un pixel seleccionado de la misma. Los nombres de los campos son iguales al del campo, añadiendo al final .x e .y. Los atributos NAME y SRC son necesarios y el campo ALIGN es opcional.
   
Campos oculto: el usuario no interactúa con él, es el atributo VALUE el que especifica el valor del campo. Tanto el atributo NAME como VALUE son obligatorios.
 
Botón de envío: opción que enviar los datos al URL servidor.
 
Botón de reinicio: opción que permite iniciar el formulario con los valores por defecto.
 
 
MARCADOR <SELECT>: se emplea para reducir el campo a una lista de valores, es decir incluye en el formulario una lista desplazable.
  MARCADOR <OPTION>: representa cada uno de los valores. Los atributos del elemento son:
   
MARCADOR <TEXTAREA>: representa un campo de texto de múltiples líneas o área de texto. El contenido del elemento es el valor inicial del campo. La especificación de filas y columnas sólo se refiere a la dimensión del área visible, pero los programas cliente pueden permitir sobrepasar los límites mediante barras de desplazamiento. Generalmente se emplea un tipo de letra de caja fija para mostrar los contenidos del campo.
   
 
Envío y gestión de información
 
Ahora ya sabemos como obtener información mediante formularios HTML, el concepto básico es tomar la información introducida en el formulario y pasarla al servidor Web. La interfaz de pasarela común o CGI es la forma normalizada de conseguir este objetivo.
 

Proceso de gestión de un formulario:
 

 
Atributo ACTION: en los formularios basados en CGI es siempre el nombre de un programa CGI situado en el servidor Web y normalmente en el directorio cgi-bin.

 Atributo ENCTYPE: la codificación por defecto de todos los formularios es, según el esquema MIME, application/x-www-form-urlencoded. Un conjunto de datos de formulario se representa del siguiente modo:
 

 
Atributo METHOD: el método de consulta depende de los efectos que el formulario tenga es decir, si el envío va a producir cambios en cualquier documento o programa que no sea nuestro visor
  Si el proceso del formulario es idempotente (no produce cambios), el método debe ser GET. Un ejemplo de este tipo de formularios son las consultas a bases de datos, que no tienen efectos laterales visibles.

Para procesar un formulario cuyo URL de acción es un URL de tipo HTTP y el método es GET, el visor genera un URL que comienza con el de la acción al que se le añade un interrogante (?) y el conjunto de datos codificado con el formato application/x-www-form-urlencoded visto en el punto anterior. Para acceder a la consulta el visor accede al URL de la misma manera que lo hace con los que aparecen en los anclajes.

De todos modos, en algunos casos, la codificación de los datos puede generar un URL extremadamente largo, lo que puede provocar un funcionamiento erróneo con algunos servidores de HTTP antiguos. Por esta razón, algunos formularios que no tienen efectos laterales, se escriben usando el método POST.
 

Para formularios con efectos laterales (como uno que modifique una base de datos) se emplea el método POST.

Para procesar un formulario cuyo URL de acción es de tipo HTTP y el método es POST, el visor gestiona una transacción de tipo POST del protocolo HTTP, usando el URL de la acción y el cuerpo de un mensaje de tipo application/x-www-form-urlencoded como antes. El visor debe presentar la respuesta del HTTP POST de la misma forma que la respuesta obtenida con el método GET.
 

 El usuario rellena los campos y solicita el envío. Supongamos que los valores son: Entonces el visor gestiona una transacción HTTP POST usando el URL /cgi-bin/post-query. El cuerpo del mensaje será la siguiente línea: nombre=Alicia+Perez&genero=F&numero=4&idiomas=I&otros=catalan%0D%0Aeuskera