Servidor web
De Wikipedia, la enciclopedia libre
Un servidor web es un programa que implementa el protocolo HTTP (HyperText Transfer Protocol). Este protocolo pertenece a la capa de aplicación del modelo OSI y está diseñado para transferir lo que llamamos hipertextos, páginas web o páginas HTML (HyperText Markup Language): textos complejos con enlaces, figuras, formularios, botones y objetos incrustados como animaciones o reproductores de música.
Es un programa que se ejecuta continuamente en un ordenador (también se emplea el término para referirse al ordenador que lo ejecuta), manteniéndose a la espera de peticiones por parte de un cliente (un navegador web) y que responde a estas peticiones adecuadamente, mediante una página web que se exhibirá en el navegador o mostrando el respectivo mensaje si se detectó algún error.
Instalar un servidor web en nuestro PC nos permitirá, entre otras cosas, poder montar nuestra propia página web sin necesidad de contratar hosting, probar nuestros desarrollos vía local, acceder a los archivos de nuestro equipo desde un PC remoto (aunque para esto existen otras opciones, como utilizar un servidor FTP) o utilizar alguno de los programas basados en web tan interesantes que están viendo la luz últimamente. El problema de usar nuestro ordenador como servidor web es que conviene tenerlo encendido permanentemente (para que esté accesible de forma continua como la mayoría de los sitios webs), con el consiguiente coste debido al consumo de electricidad (conviene tener en cuenta que hay alojamientos web gratuitos, incluso sin publicidad y con interesantes funciones).
Servidor web de la Wikimedia
Sin embargo, el hecho de que HTTP y HTML estén íntimamente ligados no debe dar lugar a confundir ambos términos. HTML es un lenguaje de marcas y HTTP es un protocolo.
Un servidor web se mantiene a la espera de peticiones HTTP por parte de un cliente HTTP que solemos conocer como navegador. El cliente realiza una petición al servidor y éste le responde con el contenido que el cliente solicita. A modo de ejemplo, al teclear www.wikipedia.org en nuestro navegador, éste realiza una petición HTTP al servidor de dicha dirección. El servidor responde al cliente enviando el código HTML de la página; el cliente, una vez recibido el código, lo interpreta y lo exhibe en pantalla. Como vemos con este ejemplo, el cliente es el encargado de interpretar el código HTML, es decir, de mostrar las fuentes, los colores y la disposición de los textos y objetos de la página; el servidor tan sólo se limita a transferir el código de la página sin llevar a cabo ninguna interpretación de la misma.
Sobre el servicio web clásico podemos disponer de aplicaciones web. Éstas son porciones de código que se ejecutan cuando se realizan ciertas peticiones o respuestas HTTP. Hay que distinguir entre:
-
Aplicaciones en el lado del cliente: el cliente web es el encargado de ejecutarlas en la máquina del usuario. Son las aplicaciones tipo Java o Javascript: el servidor proporciona el código de las aplicaciones al cliente y éste, mediante el navegador, las ejecuta. Es necesario, por tanto, que el cliente disponga de un navegador con capacidad para ejecutar aplicaciones (también llamadas scripts). Comúnmente, los navegadores permiten ejecutar aplicaciones escritas en lenguaje javascript y java, aunque pueden añadirse más lenguajes mediante el uso de plugins.
- Aplicaciones en el lado del servidor: el servidor web ejecuta la aplicación; ésta, una vez ejecutada, genera cierto código HTML; el servidor toma este código recién creado y lo envía al cliente por medio del protocolo HTTP.
Las aplicaciones de servidor muchas veces suelen ser la mejor opción para realizar aplicaciones web. La razón es que, al ejecutarse ésta en el servidor y no en la máquina del cliente, éste no necesita ninguna capacidad añadida, como sí ocurre en el caso de querer ejecutar aplicaciones javascript o java. Así pues, cualquier cliente dotado de un navegador web básico puede utilizar este tipo de aplicaciones.
Algunos conceptos relacionados con las aplicaciones web son:
Algunos servidores web importantes son:
Otros servidores, más simples pero más rápidos, son:
FTP
De Wikipedia, la enciclopedia libre
FTP (sigla en inglés de File Transfer Protocol – Protocolo de Transferencia de Archivos) en informática, es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP, basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo.
El Servicio FTP es ofrecido por la capa de Aplicación del modelo de capas de red TCP/IP al usuario, utilizando normalmente el puerto de red 20 y el 21. Un problema básico de FTP es que está pensado para ofrecer la máxima velocidad en la conexión, pero no la máxima seguridad, ya que todo el intercambio de información, desde el login y password del usuario en el servidor hasta la transferencia de cualquier archivo, se realiza en texto plano sin ningún tipo de cifrado, con lo que un posible atacante puede capturar este tráfico, acceder al servidor, o apropiarse de los archivos transferidos.
Para solucionar este problema son de gran utilidad aplicaciones como scp y sftp, incluidas en el paquete SSH, que permiten transferir archivos pero cifrando todo el tráfico.
El Modelo FTP
El siguiente modelo representa el diagrama de un servicio FTP.
En el modelo, el intérprete de protocolo (PI) de usuario, inicia la conexión de control en el puerto 21. Las órdenes FTP estándar las genera el PI de usuario y se transmiten al proceso servidor a través de la conexión de control. Las respuestas estándar se envían desde el PI del servidor al PI de usuario por la conexión de control como respuesta a las órdenes.
Estas órdenes FTP especifican parámetros para la conexión de datos (puerto de datos, modo de transferencia, tipo de representación y estructura) y la naturaleza de la operación sobre el sistema de archivos (almacenar, recuperar, añadir, borrar, etc.). El proceso de transferencia de datos (DTP) de usuario u otro proceso en su lugar, debe esperar a que el servidor inicie la conexión al puerto de datos especificado (puerto 20 en modo activo o estándar) y transferir los datos en función de los parámetros que se hayan especificado.
Vemos también en el diagrama que la comunicación entre cliente y servidor es independiente del sistema de archivos utilizado en cada ordenador, de manera que no importa que sus sistemas operativos sean distintos, porque las entidades que se comunican entre sí son los PI y los DTP, que usan el mismo protocolo estandarizado: el FTP.
También hay que destacar que la conexión de datos es bidireccional, es decir, se puede usar simultáneamente para enviar y para recibir, y no tiene por qué existir todo el tiempo que dura la conexión FTP.
Servidor FTP
Un servidor FTP es un programa especial que se ejecuta en un equipo servidor normalmente conectado a Internet (aunque puede estar conectado a otros tipos de redes, LAN, MAN, etc.). Su función es permitir el intercambio de datos entre diferentes servidores/ordenadores.
Por lo general, los programas servidores FTP no suelen encontrarse en los ordenadores personales, por lo que un usuario normalmente utilizará el FTP para conectarse remotamente a uno y así intercambiar información con él.
Las aplicaciones más comunes de los servidores FTP suelen ser el alojamiento web, en el que sus clientes utilizan el servicio para subir sus páginas web y sus archivos correspondientes; o como servidor de backup (copia de seguridad) de los archivos importantes que pueda tener una empresa. Para ello, existen protocolos de comunicación FTP para que los datos se transmitan cifrados, como el SFTP (Secure File Transfer Protocol).
Cliente FTP
Cuando un navegador no está equipado con la función FTP, o si se quiere cargar archivos en un ordenador remoto, se necesitará utilizar un programa cliente FTP. Un cliente FTP es un programa que se instala en el ordenador del usuario, y que emplea el protocolo FTP para conectarse a un servidor FTP y transferir archivos, ya sea para descargarlos o para subirlos.
Para utilizar un cliente FTP, se necesita conocer el nombre del archivo, el ordenador en que reside (servidor, en el caso de descarga de archivos), el ordenador al que se quiere transferir el archivo (en caso de querer subirlo nosotros al servidor), y la carpeta en la que se encuentra.
Algunos clientes de FTP básicos en modo consola vienen integrados en los sistemas operativos, incluyendo Windows, DOS, Linux y Unix. Sin embargo, hay disponibles clientes con opciones añadidas e interfaz gráfica. Aunque muchos navegadores tienen ya integrado FTP, es más confiable a la hora de conectarse con servidores FTP no anónimos utilizar un programa cliente.
Acceso anónimo
Los servidores FTP anónimos ofrecen sus servicios libremente a todos los usuarios, permiten acceder a sus archivos sin necesidad de tener un ‘USER ID’ o una cuenta de usuario. Es la manera más cómoda fuera del servicio web de permitir que todo el mundo tenga acceso a cierta información sin que para ello el administrador de un sistema tenga que crear una cuenta para cada usuario.
Si un servidor posee servicio ‘FTP anonymous’ solamente con teclear la palabra “anonymous”, cuando pregunte por tu usuario tendrás acceso a ese sistema. No se necesita ninguna contraseña preestablecida, aunque tendrás que introducir una sólo para ese momento, normalmente se suele utilizar la dirección de correo electrónico propia.
Solamente con eso se consigue acceso a los archivos del FTP, aunque con menos privilegios que un usuario normal. Normalmente solo podrás leer y copiar los archivos existentes, pero no modificarlos ni crear otros nuevos.
Normalmente, se utiliza un servidor FTP anónimo para depositar grandes archivos que no tienen utilidad si no son transferidos a la máquina del usuario, como por ejemplo programas, y se reservan los servidores de páginas web (HTTP) para almacenar información textual destinada a la lectura en línea.
Acceso de usuario
Si se desea tener privilegios de acceso a cualquier parte del sistema de archivos del servidor FTP, de modificación de archivos existentes, y de posibilidad de subir nuestros propios archivos, generalmente se suele realizar mediante una cuenta de usuario. En el servidor se guarda la información de las distintas cuentas de usuario que pueden acceder a él, de manera que para iniciar una sesión FTP debemos introducir una autentificación (login) y una contraseña (password) que nos identifica unívocamente.
Cliente FTP basado en Web
Un ‘cliente FTP basado en WEB’ (ver ejemplo en ftp://sunsite.rediris.es/mirror/ubuntu-releases/) no es más que un Cliente FTP al cual podemos acceder a través de nuestro Navegador Web sin necesidad de tener otra aplicación para ello. Este nos permite tener acceso de usuario con privilegios para entrar a cualquier parte del sistema de archivos del servidor FTP.
Siempre hay momentos en que nos encontramos fuera de casa, no llevamos el ordenador portátil encima y necesitamos realizar alguna tarea urgente desde un ordenador de acceso público, de un amigo, del trabajo, la universidad, etc. Lo más común es que no estén instaladas las aplicaciones que necesitamos y en muchos casos hasta carecemos de los permisos necesarios para realizar su instalación. Otras veces estamos detrás de un Proxy o Cortafuegos que no nos permite acceder a servidores FTP externos.
Al disponer de un Cliente FTP basado en Web podemos acceder al servidor FTP remoto como si estuviéramos realizando cualquier otro tipo de navegación WEB. Uno de los Clientes FTP basado en Web más populares es el Net2Ftp. A través de un Cliente FTP basado en Web podrás, crear, copiar, renombrar y eliminar archivos y directorios. Cambiar permisos, editar, ver, subir y descargar archivos, así como cualquier otra función del protocolo FTP que el servidor FTP remoto permita.
Acceso de invitado
El acceso sin restricciones al servidor que proporcionan las cuentas de usuario implica problemas de seguridad, lo que ha dado lugar a un tercer tipo de acceso FTP denominado invitado (guest), que se puede contemplar como una mezcla de los dos anteriores.
La idea de este mecanismo es la siguiente: se trata de permitir que cada usuario conecte a la máquina mediante su login y su password, pero evitando que tenga acceso a partes del sistema de archivos que no necesita para realizar su trabajo, de esta forma accederá a un entorno restringido, algo muy similar a lo que sucede en los accesos anónimos, pero con más privilegios.
Modos de conexión del cliente FTP
FTP admite dos modos de conexión del cliente. Estos modos se denominan Activo (o Estándar, o PORT, debido a que el cliente envía comandos tipo PORT al servidor por el canal de control al establecer la conexión) y Pasivo (o PASV, porque en este caso envía comandos tipo PASV). Tanto en el modo Activo como en el modo Pasivo, el cliente establece una conexión con el servidor mediante el puerto 21, que establece el canal de control.
Modo Activo
Modo activo.
En modo Activo, el servidor siempre crea el canal de datos en su puerto 20, mientras que en el lado del cliente el canal de datos se asocia a un puerto aleatorio mayor que el 1024. Para ello, el cliente manda un comando PORT al servidor por el canal de control indicándole ese número de puerto, de manera que el servidor pueda abrirle una conexión de datos por donde se transferirán los archivos y los listados, en el puerto especificado.
Lo anterior tiene un grave problema de seguridad, y es que la máquina cliente debe estar dispuesta a aceptar cualquier conexión de entrada en un puerto superior al 1024, con los problemas que ello implica si tenemos el equipo conectado a una red insegura como Internet. De hecho, los cortafuegos que se instalen en el equipo para evitar ataques seguramente rechazarán esas conexiones aleatorias. Para solucionar esto se desarrolló el modo Pasivo.
Modo Pasivo
Modo pasivo.
Cuando el cliente envía un comando PASV sobre el canal de control, el servidor FTP le indica por el canal de control, el puerto ( mayor a 1023 del servidor. Ej:2040 ) al que debe conectarse el cliente. El cliente inicia una conexión desde el puerto siguiente al puerto de control (Ej: 1036) hacia el puerto del servidor especificado anteriormente (Ej: 2040).[1]
Antes de cada nueva transferencia, tanto en el modo Activo como en el Pasivo, el cliente debe enviar otra vez un comando de control (PORT o PASV, según el modo en el que haya conectado), y el servidor recibirá esa conexión de datos en un nuevo puerto aleatorio (si está en modo pasivo) o por el puerto 20 (si está en modo activo).
Tipos de transferencia de archivos en FTP
Es importante conocer cómo debemos transportar un archivo a lo largo de la red. Si no utilizamos las opciones adecuadas podemos destruir la información del archivo. Por eso, al ejecutar la aplicación FTP, debemos acordarnos de utilizar uno de estos comandos (o poner la correspondiente opción en un programa con interfaz gráfica):
- type ascii
Adecuado para transferir archivos que sólo contengan caracteres imprimibles (archivos ASCII, no archivos resultantes de un procesador de texto), por ejemplo páginas HTML, pero no las imágenes que puedan contener.
- type binary
Este tipo es usado cuando se trata de archivos comprimidos, ejecutables para PC, imágenes, archivos de audio…
Ejemplos de cómo transferir algunos tipos de archivo dependiendo de su extensión:
| EXTENSION DEL ARCHIVO | TIPO DE TRANSFERENCIA |
|---|---|
| txt (texto) | ascii |
| html (página WEB) | ascii |
| doc (documento) | binario |
| ps (poscript) | ascii |
| hqx (comprimido) | ascii |
| Z (comprimido) | binario |
| ZIP (comprimido) | binario |
| ZOO (comprimido) | binario |
| Sit (comprimido) | binario |
| pit (comprimido) | binario |
| shar (comprimido) | binario |
| uu (comprimido) | binario |
| ARC (comprimido) | binario |
| tar (empaquetado) | binario |
En la red existen diversas soluciones de software que desarrolla este tipo de tecnología, los más conocidos, son Filezilla (software libre) y CuteFTP (shareware).
Guía de comandos FTP
| COMANDO Y ARGUMENTOS | ACCIÓN QUE REALIZA |
|---|---|
| open servidor | Inicia una conexión con un servidor FTP |
| close o disconnect | Finaliza una conexión FTP sin cerrar el programa cliente |
| bye o quit | Finaliza una conexión FTP y la sesión de trabajo con el programa cliente |
| cd directorio | Cambia el directorio de trabajo en el servidor |
| delete archivo | Borra un archivo en el servidor |
| mdelete patrón | Borra múltiples archivos basado en un patrón que se aplica al nombre |
| dir | Muestra el contenido del directorio en el que estamos en el servidor |
| get archivo | Obtiene un archivo |
| noop No Operation |
Se le comunica al servidor que el cliente esta en modo de no operacion, el servidor usualmente responde con un “ZZZ” y refresca el contador de tiempo inactivo del usuario. |
| mget archivos | Obtiene múltiples archivos |
| hash | Activa la impresión de caracteres # a medida que se transfieren archivos, a modo de barra de progreso |
| lcd directorio | Cambia el directorio de trabajo local |
| ls | Muestra el contenido del directorio en el servidor |
| prompt | Activa/desactiva la confirmación por parte del usuario de la ejecución de comandos. Por ejemplo al borrar múltiples archivos |
| put archivo | Envía un archivo al directorio activo del servidor |
| mput archivos | Envía múltiples archivos |
| pwd | Muestra el directorio activo en el servidor |
| rename archivo | Cambia el nombre a un archivo en el servidor |
| rmdir directorio | Elimina un directorio en el servidor si ese directorio esta vacío |
| status | Muestra el estado actual de la conexión |
| bin o binary | Activa el modo de transferencia binario |
| ascii | Activa el modo de transferencia en modo texto ASCII |
| ! | Permite salir a línea de comandos temporalmente sin cortar la conexión. Para volver, teclear exit en la línea de comandos |
| ? nombre de comando | Muestra la información relativa al comando |
| ? o help | Muestra una lista de los comandos disponibles |
| append nombre del archivo | Continua una descarga que se ha cortado previamente |
| bell | Activa/desactiva la reproducción de un sonido cuando ha terminado cualquier proceso de transferencia de archivos |
| glob | Activa/desactiva la visualización de nombres largos de nuestro PC |
| literal | Con esta orden se pueden ejecutar comandos del servidor de forma remota. Para saber los disponibles se utiliza: literal help |
| mkdir | Crea el directorio indicado de forma remota |
| quote | Hace la misma función que literal |
| send nombre del archivo | Envía el archivo indicado al directorio activo del servidor |
| user | Para cambiar nuestro nombre de usuario y contraseña sin necesidad de salir de la sesión ftp.– |
Referencias
- ↑ «Active FTP vs. Passive FTP, a Definitive Explanation» (en ingles).
-
RFC 959: Referencia que define las características actuales, a fecha de febrero del 2007, del protocolo FTP.
- RFC 114: Primera referencia propuesta de FTP del año 1971.
IIS como Servidor Web y FTP
Fuente: http://d-rios.blogspot.com/2009/08/iis-como-servidor-web-y-ftp.html
En primer lugar tendremos que instalar el servidor IIS, y para ello, procederemos de la siguiente forma:Accedemos a: [Inicio\Configuración\Panel de Control\Agregar o quitar programas\Agregar o quitar componentes de Windows]

Llevamos la barra de desplazamiento vertical hasta abajo de todo, y localizamos la línea llamada: ‘Servidor de aplicaciones’.Aquí dentro encontraremos algunas extensiones, entre las que debemos de localizar la llamada: ‘Instalar Internet Information Services (IIS)’.Una vez abierta, buscamos y seleccionamos: ‘Servicio de Protocolo de transferencia de archivo (FTP)’ y marcamos también la casilla correspondiente a: ‘Servicio World Wide Web’..
A partir de aquí, completamos la instalación, teniendo en cuenta que tendremos que tener introducido el CD original de Microsoft Windows Server 2003, en nuestro caso.
Abriremos a continuación la herramienta de administración de IIS, ubicada en: [Inicio\Herramientas Administrativas\Administrador de Internet Informatin Services (IIS)];
Expandimos el servidor y veremos que existen 4 entradas, 2 de ellas correspondientes al Servidor Web y al Servidor FTP.
A continuación, veremos cómo crear un servidor Web:
Botón derecho encima de Sitios Web, seleccionamos Nuevo; definimos el nombre, la dirección IP asociada, el puerto de conexión, y la descripción, y por último, la ruta dónde se almacenan los archivos del sitio Web que vamos a publicar.

Con esto ya podemos decir que ya tenemos instalado y configurado un sitio Web con IIS, pero para poder terminar la configuración del servidor, debemos de tener en cuenta que podemos configurar y establecer algunos métodos en detalles, como por ejemplo:
-
Configurar los permisos para los visitantes.
-
Configurar las páginas de entrada al sitio.
-
Comunicación segura mediante SSL.
-
Límites de ancho de banda.
- Etc.
Siempre suele ser insteresante revisar estos puntos, y completar la configuración de un servidor Web, para obtener y potenciar los recursos que ofrece IIS.
Un detalle importante que puede ser de interés, sería cómo crear sub-sitios en un sitio administrado con IIS; a continuación lo explicamos:
¿Alguna vez habéis visto, por ejemplo, un site que tenga varios nombres por debajo, algo similar a MySpace?Este sitio hace lo siguiente: http://myspace.com/microsoft; pues esto sería algo muy similar…
Dentro de la herramienta de Administración de Internet Information Services (IIS), accedemos al sitio Web dónde queramos configurar un sub-sitio, y pulsamos con el botón derecho encima del ratón, y seleccionamos la opción: [Nuevo\Directorio Virtual]. Completamos la información que se nos solicita, teniendo muy en cuenta que es un sitio Web, dentro de un sitio Web.
De esta forma, ya tendríamos posibilidad de tener un site llamado: http://www.danielrios.net y otro, totalmente distinto, llamado: http://www.danielrios.net/yomismo. A este último le podemos redirigir los DNS de un nombre en Internet que sea: ‘yomismo.es’, de esta forma, cada vez que tecleemos en la barra de direcciones de nuestro navegador, la dirección: http://yomosmo.es, en realidad estaremos visitando. http://www.danielrios.net/yomismo.
En el nuevo sub-sitio, siempre podremos definir opciones de configuración distintas a las del sitio principal, por supuesto, pues será un sitio Web que, aunque técnicamente dependa de otro, de cara al usuario final será casi inapreciable.
—
Cómo bien comentabamos al inicio, en este documento también vamos a explicar cómo configurar un sitio FTP utilizando la herramienta IIS de Microsoft.Como ya he explicado en las primeras líneas del artículo, cómo instalar los servicios de WWW y FTP en IIS, este paso me lo saltaré; pero sí vamos a explicar cómo montar el servidor FTP:Sobre el directorio llamado ‘Sitios FTP’, botón derecho del ratón, [Nuevo\Sitio FTP] y realizaremos los pasos exactamente igual que con un servidor Web, introduciendo los datos que nos valla solicitándo, pero teniendo en cuenta que un servidor FTP, por defecto, y prácticamente por obligatoriedad, utilizará el protocolo 21.
Una vez creado el FTP, podremos definir configuraciones como las siguientes:
Conexiones simultáneas.
-
Mensajes de Bienvenida, Salida, Conexiones máximas.
-
Permisos sobre el directorio y propio FTP.
- Etc.
Al igual que ocurría con el servidor Web, podremos configurar directorio ó sub-sitios FTP dentro del FTP raíz, exactamente de la misma forma.
Un detalle que IIS no tiene en cuenta, así como prácticamente no lo tiene en cuenta ningún servidor FTP, es la posibilidad de limitar el tamaño de las carpetas, pero este proceso, si nos resulta interesante, siempre podemos ver cómo aplicar ‘quotas en carpetas’, con uno de mis primeros post en este Blog.
Un artículo, en inglés, que puede resultaros interesante echarle un vistazo, dónde también explican cómo configurar IIS para albergar un sitio Web y un sitio FTP, por partes, sería el siguiente:
http://www.windowsnetworking.com/articles_tutorials/Configuring-IIS-Host-FTP-Site-Part1.html
—
Por supuesto, no os olvidéis de pasaros por el site oficial de IIS en: http://www.iis.net/
Y recordad, para cualquier consulta de soporte a cerca de este y otros temas, no dudéis en pasaros por el grupo ‘Administrando Windows’, estaremos encantados de poder ayudaros!