Linux WWW-COMO

por Peter Dreuw, pdreuw@wing.gun.de Traducido por José Manuel Puerta Peña, a920226@zipi.fi.upm.es

v0.7.6, 6 October 1996


Este documento contiene información acerca del establecimiento de servicios WWW bajo Linux (tanto servidor como cliente) y como mantenerlos. No intenta ser un manual detallado pero sí una visión general y un buen punto de partida a información adicional.

1. Introducción

Mucha gente está introduciéndose en Linux porque buscan una plataforma con capacidad para Internet realmente buena. Otros usan Linux por la diversión de instalar un SO gratis en sus sistemas. Por supuesto, algunos de ellos quieren entrar en contacto con internet. Además, existen institutos, universidades y otras organizaciones, la mayoría sin ánimo de lucro, que quieren o necesitan instalar servidores de internet con pequeños gastos. Aquí es donde entra el WWW COMO. Este documento intenta explicar como instalar clientes y servidores para (a mi parecer) la parte conectada más grande de la red - La World Wide Web.

1.1 Derechos de autor

Este documento es Copyright (c) 1996 de Peter Dreuw. Por favor, cópielo y distribúyalo mucho, pero no modifique el texto u omita mi nombre.

Si vende este COMO en un CD, en un libro o en otro medio de comunicación, me gustaría mucho tener una copia como referencia.

Las marcas registradas son propiedad de sus respectivos dueños.

1.2 Rectificación

Este documento está pensado como una introducción en las técnicas de WWW usadas o utilizables en Linux. ¡ No soy ningún experto ni en WWW ni en seguridad ! NO ME HAGO RESPONSABLE DE NINGUN DAÑO INCURRIDO DEBIDO A ACCIONES TOMADAS EN BASE A LA INFORMACION INCLUIDA EN ESTE DOCUMENTO.

1.3 Información sobre resultados

Cualquier información será realmente bienvenida. Sólo envíeme un correo a pdreuw@wing.gun.de.

1.4 Nuevas versiones de este Documento

Puede obtener nuevas versiones de este documento vía FTP anónimo de sunsite.unc.edu en ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/ y de casi cualquier servidor réplica de ftp afín a Linux.

Además, Ud. puede bajárselo vía http://ourworld.compuserve.com/homepages/dreuw/lxwwwh2.tgz como un archivo tar comprimido con gzip conteniendo versiones sgml, text, latex y ps. La versión html está disponible directamente bajo http://ourworld.compuserve.com/homepages/dreuw/lxwwwh2.htm

2. Configuración el software del cliente de WWW

El capítulo siguiente está dedicado a los usuarios de web. Algunos atajos y trucos establecidos en versiones actuales de visualizadores de web comunes. Por favor, no tenga reparos en contactar conmigo si su visualizador favorito de web no se menciona aquí. (Como ésta es realmente una versión muy reciente del WWW-COMO, probablemente la mayoría de ellos no están listados...)

Personalmente, yo prefiero el visualizador W3 de Emacs y Lynx ya que poseen algunas ventajas de velocidad y no hay necesidad de cargar completamente los gráficos a través de mi línea telefónica de baja velocidad ;)

2.1 Descripción general

Lynx es el visualizador de Web más pequeño que conozco y uso - pero posee muchas características especiales, por tanto no se salte este capítulo.

Emacs - bueno, no hay nada que decir sobre el visualizador W3 de Emacs, es justamente Emacs, como el lector de noticias de Emacs, el lector de correo de Emacs, etc. pp.

El Netscape Navigator es el único visualizador mencionado aquí que es capaz de esas cosas nuevas y divertidas tales como JavaScript y esas agradables características de la etiqueta <APPLET> necesarias para ejecutar Java. Por favor, comuníqueme si existe cualquier otro visualizador de web que pueda hacer una u otra cosa. Realmente me gustaría saberlo.

Hay rumores sobre que Microsoft va a trasladar Internet Explorer a varias plataformas Unix (quizá incluyendo Linux). Si Ud. tiene noticias más fiables, por favor mándeme un correo electrónico.

2.2 Lynx

El más pequeño (?, hm, cerca de 650 K de ejecutable) y quizá el visualizador de Web más rápido disponible. No come mucho ancho de banda ni recursos del sistema ya que sólo trata con visualizaciones de texto como cualquier consola, terminal o terminal gráfica xterm. Ud. no necesita ningún sistema de ventanas gráficas X Window ni megabytes adicionales del sistema de memoria para ejecutar este pequeño visualizador.

Además, también está disponible el código fuente.

Dónde conseguirlo

La última versión es la 2.5 y puede ser obtenida desde http://www.wfbr.edu/dir/lynx o desde casi cualquier servidor de ftp afín a Linux como ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/www/ o desde cualquier servidor réplica.

O eche un vistazo a las páginas mejoradas de Lynx http://www.nyu.edu/pages/wsn/subir/lynx.html para información sobre el uso de Lynx.

Cómo instalarlo

Sólo obtenga el archivo, desempaquételo, lea el fichero README y siga los pasos descritos en el fichero INSTALL.

Si no desea una distribución de fuentes, debería obtener una distribución binaria para Linux sobre sistemas basados en Intel disponible en sunsite.

Lynx compila y se ejecuta en mi sistema sin ningún problema tanto en Linux 1.2.13 como en 2.0.x.

Características especiales

Bueno, existen. Para una descripción completa, lea los manuales y ficheros doc que vienen con Linux.

Para hacerse una idea, teclee

lynx --help
.

En mi humilde opinión, la característica más especial de Lynx frente a todos los otros visualizadores de web es la capacidad para la petición en modo de procesamiento por lotes. Uno puede escribir una macro del intérprete de comandos que recupere un documento, a través de las urls http, ftp, gopher, WAIS, NNTP o file://, y salvarlo al disco. Además, se pueden rellenar documentos HTML con datos en el modo de proceso por lotes simplemente redirigiendo la entrada estándar y usando la opción -post_data.

2.3 Emacs-W3

Existe una cosa lamentable sobre el visualizador W3 de Emacs ;) Si Ud. tiene GNU Emacs o XEmacs ejecutándose, probablemente también tenga el visualizador W3 ejecutándose. No hay mucho trabajo en este COMO. Si Ud. cree que debería haber más información sobre esto, por favor hágamelo saber.

El modo W3 de Emacs es casi un sistema de visualización de web completamente caracterizado, escrito en el sistema Lisp de Emacs. Principalmente trata con texto, pero también puede mostrar gráficos (al menos) si ejecuta Emacs bajo el sistema de ventanas gráficas X Window.

El paquete de GNU emacs más reciente está disponible en ftp://prep.mit.ai.edu, el más reciente de XEmacs podría ser obtenido desde ftp://ftp.xemacs.org.

2.4 Netscape Navigator Gold 3.0

Sí, Ud. lo consiguió. El Rey de los visualizadores de WWW. Algo casi como lo que es Emacs en el mundo de los editores de texto. Netscape Navigator puede hacerlo casi todo (excepto hacer café... pero quizá java lo haga...). Pero por otra parte, el más hambriento de memoria y devorador de recursos de los visualizadores de web, lectores de noticias, lectores de correo (pop3), y editores de correo y noticias que yo haya visto nunca.

Mi última versión del Netscape Navigator Gold (versión de exportación) es de 28-Aug-1996 y (c) 1995, 1996 Netscape Communications Corp.

(Como yo vivo en Europa, sólo puedo obtener la versión de exportación...)

Dónde conseguirlo

El primer lugar para conseguir el Netscape Navigator para Linux como distribución binaria es en ftp://ftp.netscape.com. El segundo (ya que estos servidores están muy cargados) debería ser un servidor réplica afín a netscape. Ud. también podría consultar archie acerca de este asunto. Quizás tenga suerte y lo encuentre en un cd rom (esto salvaría algo de ancho de banda ya que el archivo es bastante grande,  2.5 MB).

Desempaquetando e Instalando

Desempaquete el archivo y lea el fichero README No hay nada extraño en esto, ya sabe.

Los applets de Java con el navigator

Existen algunos rumores que dicen que hay problemas al ejecutar los applets de java con el Netscape Navigator Gold 3.0 incluso si java está activado en el diálogo de opciones. El archivo que conozco contiene un fichero java_30 que debe ser renombrado como java_30.zip. Después de esto, cualquier applet de java debería funcionar bien dentro del entorno del netscape.

Si continúa teniendo problemas al usar los applets de java así como si el Netscape Navigator se bloquea o simplemente se interrumpe después de cargar un applet de java, eche un vistazo a su versión de libc. Haga un

ldconfig -v | less
(quizás, deba ser Ud. super-usuario para hacerlo...) y busque un renglón
libc.so.5 => libc.so.5.xx.yy
dónde su versión de libc es 5.xx.yy. Si su libc no es 5.2.18, éste debe de ser el problema. Hay muchos informes para sistemas Linux 1.2.13, que deberían ser actualizados a libc 5.2.18 generalmente cuando se necesite ejecutar Netscape Navigator. Adicionalmente, debería ser una buena idea degradar su libcc de 5.3.xx a 5.2.18 si Ud. ejecuta Netscape Navigator y un núcleo Linux 2.0.x. (De hecho, las series de libc 5.3.xx son para propósitos de prueba beta, así que Ud. debería saber lo que está haciendo.) Algunas de las series 5.3.xx interrumpen el Netscape Navigator y el código de clases de Java.

Para más información sobre Java en Linux o programación en Java, por favor lea el JAVA-COMO o visite http://www.sun.com.

3. Establecimiento de los sistemas de servidor de WWW

Esta sección contiene información sobre diferentes paquetes de software de servidores de http y herramientas adicionales del servidor como lenguajes de macros para programas CGI, etc.

Para una descripción técnica sobre los mecanismos del http, eche un vistazo a los documentos RFC mencionados en el capítulo "Para lectura una adicional" de este COMO.

3.1 httpd del cern

Como el servidor original de httpd del cern se presenta con algunos errores graves, y es bastante lento y voraz de recursos, por ahora no se describe en este COMO. Si Ud. se ofrece voluntario para escribir algunos hechos o capítulos, por favor envíemelos. Los añadiré a este documento.

3.2 apache

(Por escribir) lo siento Características, Visión General, Ventajas

Dónde obtenerlo

Instalación

Configuración

Características Especiales

EL httpd apache posee algunas características especiales en la versión actual.

Servidor multipetición

BlaBla??? como configurar ....

Sistema de módulos

como incluir otros módulos ... dónde conseguir información sobre la programación de módulos ...

3.3 Sistemas de macros CGI

(por escribir, lo siento) CGI (common gateway interface) (interfaz común de pasarela)

¿ Cómo funciona CGI en principio ?

(por escribir, lo siento) estructura de llamada, estructura http, formato de parámetro de programa (ligeramente tocado), cosas a tener en cuenta

Perl

(por escribir, lo siento) algo fácil en perl (macro de muestra)

PHP/FI

(por escribir, lo siento) algo fácil en PHP/FI (macro de muestra)

W3-mSQL

(por escribir, lo siento) algo incluso más fácil (macro de muestra) ¡¡¡ un consejo sobre configuración !!!

algunas macros útiles

(por escribir, lo siento)FaxInbound para Table incluyendo macros php/fi y macros del interprete de comandos

4. Manteniendo un servidor WWW o algunas Páginas Web

Si Ud. tiene que mantener un servidor web o si mantiene al menos una página web, tiene que pensar en su oferta a la red y tiene que dedicar algunos pensamientos en la aproximación al lector / usuario de sus páginas web.

4.1 La corriente dominante: HTML técnico

Bien, no voy a decirle cómo se codifica HTML ni como tiene Ud. que diseñar sus páginas. Sólo le daré algunos puntos dónde Ud. puede encontrar información más avanzada.

Debería echar un vistazo a http://www.w3.org/ para la especificación más reciente del lenguage HTML.

Eche un vistazo a la lista al final de este artículo, encontrará más consejos, dónde leerlos.

4.2 Algunos conceptos sobre el ancho de banda

Muchos usuarios se conectan a Internet vía líneas de modem de baja velocidad. Un rango de velocidad de 14.400 bps a 28.800 bps es una obra de arte para "sitios privados". En Europa, están creciendo sistemas RDSI, pero una velocidad de 64.000 bps no es muy rápida en comparación con (hagámoslo simple - una ethernet de 10.000.000 bps). Y una ethernet de 10 Mbps no es realmente una conexión de LAN de alta velocidad hoy en día.

Así como Ud. se da cuenta que muchos usuarios no poseen este acceso rápido a la red, debería tener en cuenta el aumentar la relación entre información y bytes. Optimícelo a 1:1 (si puede). Debería usar gráficos en sus páginas web siguiendo la tendencia multimedia, pero recuerde siempre los objetivos de su página y de los gráficos que va a introducir. Si la mayoría de sus usuarios se conectan a través de una línea de modem pequeña y los gráficos sólo sirven para razones estéticas o para hacer efectos llamativos, haría mejor quitándolos de sus páginas, o (al menos) rehacerlas al tamaño de fichero más pequeño posible y usar la mejor compresión. A sus usuarios les gustará.

Recuerde siempre: ciertamente a nadie le gusta un efecto llamativo que dura unos 3-5 minutos después del mensaje de texto.

4.3 Algunos conceptos sobre la carga del servidor

En un servidor de web, normalmente existe al menos una tarea de servidor ejecutándose. Si esta tarea lee una petición de un cliente http, se duplica a sí misma (en Linux esto se llama ramificación)

N. del T.: fork=ramificación
y la nueva copia sirve la petición mientras que la original mantiene la escucha para nuevas peticiones. Una vez acabada la petición, la copia desaparece. (De hecho, algunos servidores - como el apache - siempre conservan por defecto cinco copias del servidor en espera preparadas para peticiones en paralelo al servidor maestro, por razones de velocidad.)

Algunos visualizadores de web como las series del Netscape Navigator hacen muchas peticiones en paralelo sobre el mismo servidor, lo que incrementa la carga del servidor dedicada al mismo usuario. Estos visualizadores, por ejemplo, cargan la página HTML y la analiza sintácticamente durante la carga y distribuye nuevas peticiones para otra información como gráficos embebidos, ficheros de applets, ficheros de sonido o cualquier otro dato adicional codificado con mime. Por el contrario, los visualizadores 'simples' piden y cargan un fichero tras otro, lo que mantiene la relación de carga por usuario del servidor lo más baja posible.

Muchos usuarios prefieren visualizadores que usan la técnica de multipetición como el Netscape Navigator, porque traen una visión general más completa sobre la página requerida antes de que lo haga una petición simple del visualizador.

En mi opinión esto es porque muchos diseñadores de páginas introducen la información embebida dentro de los gráficos, rechazando los visualizadores de sólo texto.

Entonces, (como mantenedores de servidores) el problema es nuestro, ya que la mayoría de los usuarios lanzan multiples peticiones sobre servidores externos dentro de la carga de la misma página. Podemos limitar esto limitando el software del servidor a no servir más peticiones que "x" desde el mismo sistema al mismo tiempo. Pero, ¿cómo conseguir este "x"? No es fácil calcularlo, y es necesaria mucha experiencia personal en su servidor para representarlo. Pero, le daré algunos consejos. Tenemos que tener en cuenta el ancho de banda de nuestra conexión, el tamaño de memoria de nuestro servidor, alguna impresión sobre el rendimiento de la cpu/disco de nuestro servidor y... bueno, eso es suficiente para la primera ojeada. Debería echar un vistazo a la memoria que utiliza una sola tarea del servidor. Entonces piense cuantas de ellas se podría tener en memoria a la vez. Piense qué porcentaje de sus páginas web podrían permanecer en la caché de disco de su servidor. Optimice el total de tareas del servidor de web contra el tamaño del caché del disco y estará realmente cerca de su "x" personal. Además, puede presentar otros trabajos que posea el servidor. Por ejemplo, si su sistema también presta servicio por ftp, debería limitar el máximo número posible de conexiones para conservar un mínimo de espacio para la tarea del servidor de ftp. Si su servidor de web también presta algunos servicios de base de datos, haría mejor apartando algunos ciclos de cpu y también reducir su "x". Juegue algo con estos valores y pruébelos. Y (!) lea el siguiente capítulo sobre la escritura de macros CGI, lo que también conlleva rendimiento del servidor y (dependiendo de los CGI) cantidad de memoria.

4.4 CGI contra Applet / Macros del lado del cliente

(por escribir, lo siento) descripción general sobre ventajas/desventajas y consejos sobre qué usar y cuando.

4.5 Ideas de estilo

Uh, un tema realmente difícil para ser descrito en una frase corta. No intento confundir sus ideas ingeniosas de diseño. Tampoco voy a hacer que se incline por mis estrategias personales de diseño. Sólo me gustaría añadir uno o dos dictámenes a las ideas de arriba sobre carga y ancho de banda del servidor.

Numerosas investigaciones sobre el comportamiento humano en interfaces de usuario y presentaciones en pantalla han publicado resultados interesantes. Existen algunos factores simples que uno debería tener en cuenta al diseñar páginas WWW.

¿Sabía esto? Si desea obtener más información sobre esto, busque en las guías de estilo GUI y en los resultados de investigaciones ergonómicas realizados por muchas universidades y compañías de software (incluida MS).

4.6 Editores de HTML bajo Linux

Hum, existen algunos. De hecho, se tienen noticias de que son muchos. Pero como yo ya hice todo lo que pude, no los he probado todos. Pero realmente espero con ilusión y curiosidad leer los informes que Uds. me envíen.

vi, vim

vi y vim son perfectamente aptos para escribir codigo HTML... (no me caliente la cabeza con esto) porque el código HTML sólo utiliza caracteres de texto ASCII. No quiero dar pie a otra guerra de editores. Aquellos que conocen el vi/vim y lo usan diariamente pueden utilizarlo también para código HTML. Puede hacer que el vi/vim le ayude a desarrollar código HTML creando algunas macros para el vi/vim. Pero como esto no es un VI-COMO, dejaré este hecho aquí solo. Sólo tenga en cuenta que es posible usar el vi/vim para editar HTML (al menos para algunos cambios cortos). Si Ud. ya sabe como programar el vi/vim, ciertamente también sabrá como abstraer HTML. Si no lo sabe, bueno, no se preocupe.

emacs y XEmacs

(por escribir, lo siento)

asWedit

(por escribir, lo siento)

otras indicaciones

Ah, existen algunas referencias de un paquete llamado phoenix, basado en tkWWW, pero no he sido capaz de hacerlo funcionar en mi sistema. Creo que era un problema con mi versión del tcl/tk pero nunca lo sabré. No dediqué mucho tiempo con ellos, así que, quizás funcionen ambos en su sistema. Solamente vaya y pregunte en archie. Quizá, pueda mandarme un mensaje si tiene éxito.

Si Ud. echa en falta aquí su editor de HTML favorito, escríbame un mensaje. Quizás añada algunas referencias a páginas web acerca editores de HTML para Linux. Mándeme algunas bonitas URL.

4.7 Gráficos

¿ Conceptos, ideas, consejos ? Bueno, debería leer el grupo de noticias comp.graphics. Y puede visitar http://www.w3.org/pub/WWW/Graphics/.

Formato gif

GIF (Formato de Intercambio de Gráficos)

N. del T.: GIF = Graphics Interchange Format
fue introducido en 1987 por Compuserve, Inc. y revisado en 1989. Usa un algoritmo LZ, el cual es la causa fundamental de los derechos de autor de E.E.U.U. o de la ley de patentes. Deberían existir algunos problemas legales al usar este formato gráfico en internet (a pesar de que casi todo el mundo lo hace).

Gif es un buen formato para imágenes pequeñas con gráficos de estructura simple tales como gráficos de computador o iconos.

Gif posee algunas ventajas como que es uno de los formatos gráficos más extendidos (si no el más) en sistemas de conexión directa:

Las desventajas son:

Formato jpeg

El "Joint Graphic Experts Group" (JPEG), Grupo de Expertos en Gráficos Unidos", hizo el diseño para el formato gráfico jpeg/jpg/jiff. Este formato está basado en una transformación discreta de coseno (DCT) y en una compresión en código Huffmann. JPEG funciona con una perdida significativa de información, lo que puede hacer que sus imágenes aparezcan algo menos coloridas o con menos definición. El factor típico de compresión está entre 1:5 y 1:50. (Por encima de 1:10 cualquiera puede ver aparecer los artefactos a través del ciclo de compresión/descompresión.)

JPEG es un buen formato para fotografías, gráficos grandes e imágenes realmente complejas.

Las ventajas son:

Las desventajas son:

Formato png

Portable Network Graphics (PNG), Gráficos de Red Portables, (el nuevo formato en la red). PNG está favorecido por el consorcio W3. Para una información más detalada visite http://www.w3.org/pub/WWW/TR/WD-png.html y http://www.w3.org/pub/WWW/Graphics/PNG/Overview.html. Encontrará aquí una especificación técnica, alguna información para programadores, etc. PNG es un formato ideal que sustituye al GIF. La página principal del PNG está en http://quest.jpl.nasa.gov/PNG/. Para los usuarios, PNG podrá tener algunas ventajas y algunas desventajas. Aquí están:

En cuanto a las ventajas:

En cuanto a las desventajas:

PNG es soportado actualmente en Linux por los siguientes programas: ImageMagick (Versión >=3.7), GhostScript 4.0, Gimp, PovRay 3.0, el paquete netpbm. Para xv 3.10a existe un parche no oficial.

Conversores

(por escribir, lo siento) netpbm, xv, ghostscript, gimp, ImageMagick, CorelDraw sobre Wine :-)))

4.8 Cosas especiales

Ahora existen muchas cosas especiales más allá del alcance de HTML e Image. Hay Applets escritas en páginas de Java y JavaScript y muchas cosas más.

Java

No hay nada que añadir sobre Java en general, sólo lea la sección de Java en el capítulo de Netscape Navigator de este COMO y la descripción general sobre Java Applet contra las macros CGI en este COMO. Además, también puede leer el COMO JAVA de Linux, realmente bueno y compacto. Para programar en Java, por favor refiérase a libros verdaderamente buenos en este tema.

ActiveX

ActiveX es todavía, en el momento de escribir esto, un hijo de Microsoft. Microsoft proclamó que lo difundiría al dominio público o al menos en el consorcio ActiveX.

ActiveX no tiene nada que ver con el sistema X Window ni con XFree.

Deriva del sistema OLE de Microsoft e IBM. Después de difundir las especificaciones, habría una adaptación a Unix. Pero, tenemos que esperar hasta entonces. Nada para Linux, por el momento.

5. FAQ

No hay cuestiones preguntadas frecuentemente (todavía...)

6. Para una lectura adicional

7. Agradecimientos

Agradecimiento especial a Greg Hankins gregh@cc.gatech.edu por animarme a escribir este trabajo y el entretenimiento del que disfruté haciéndolo.

También me gustaría agradecer a Chris Hendricks, Fido: 2:2433/443@fidonet.org Chris_Hendricks@p0.f443.n2433.z2.fidonet.org por su compromiso con Linux y mi carrera personal a mantener al menos una nariz por delante :-)