FTP (Protocolo de Transferencia de Ficheros)



¿Qué es el FTP?

FTP significa 'File Transfer Protocol', o Protocolo de Transferencia de Ficheros.

El FTP es la herramienta que te permite, a traves de la red, copiar ficheros de un ordenador a otro. Y ello, sin importar en absoluto donde están localizados estos ordenadores,  ni si usan o no el mismo sistema operativo: basta con que estén conectados a Internet.

El programa te deja manipular toda clase de ficheros, tanto si son de tipo texto como si son ejecutables, independientemente de que estos se hallen comprimidos o empaquetados. Tampoco tiene importancia el sistema operativo en que han sido almacenados o al que van destinados; ya sea DOS, UNIX, Windows, Macintosh, VM, VMS, o cualquier otro.

La finalidad de este programa, es pues facilitar la copia o el traslado de ficheros desde el disco de un ordenador al disco de otro, sin correr ningun tipo de riesgo de perdida de información; y de una manera rápida y a la vez muy sencilla.

Normalmente, un usuario utilizará un programa cliente FTP para acceder a un servidor en el que estará funcionando un servidor FTP. Los programas servidores FTP no suelen encontrarse corrientemente en los ordenadores personales, por lo que un usuario normalmente utilizará el FTP para traerse ficheros de servidor FTP anónimo o para depositar ficheros en un servidor para su almacenamiento, su publicación como páginas WWW, etc,....

Dependiendo de la máquina en la que se pretenda ejecutar esta aplicación cliente FTP puede variar su nombre, aunque casi siempre se utiliza el comando 'ftp'. Para los sistemas operativos con "ventanas" (Windows, Mac, X-windows, ... ) hay versiones interactivas, a menudo más cómodas de usar, cuyas versiones gratuitas o "shareware" se pueden conseguir por la red. P.e., para Macintosh existe el "Fetch" y para windows el WS-FTP (puedes encontrar una rápida introducción a éste último aquí).

Para acceder a un FTP anónimo, puesto que sólo se trata de ver y traerte ficheros, puedes utilizar también un navegador de internet (NetScape, MS-Explorer,...), pues estos programas también son clientes FTP de sólo lectura. Buen ejemplo de ello son los enlaces del párrafo anterior.

¿Qué es el servicio anonymous FTP ? (FTP anónimo).

El FTP anonymous es un SERVICIO ESPECIAL que te permite, SIN TENER UN 'USERID' o CUENTA en un ordenador, poder acceder a sus ficheros.

Esta es, de hecho, la manera mas cómoda (después de las páginas 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 persona interesada en disponer de ella. Si una máquina posee servicio 'FTP anonymous' solamente con teclear la palabra "anonymous" - anónimo en inglés - cuando dicha maquina pregunte por tu usuario, tendras acceso a ese sistema. No necesitas una contraseña aunque, eso sí, tendrás menos privilegios que un usuario normal. Normalmente solo podrás leer, y por supuesto copiarte, los ficheros existentes, pero no modificarlos ni crear otros nuevos.

Normalmente, se utiliza un servidor FTP anónimo para depositar grandes ficheros que no tienen utilidad si no son transferidos a la máquina del usuario (lo más usual: programas). Se reservan los servidores HTTP (de páginas WEB) para depositar información tipo textual, principalmente destinada a la lectura interactiva.

¿Qué puedes encontrar en un ordenador con servicio FTP anonymous?

Estos ordenadores, que permiten que se acceda a ellos mediante 'FTP anonymous', disponen de multitud de ficheros de todo tipo, abarcan un sin fin de temas, al igual que ocurre con los servidores WWW. Ten en cuenta que, muchas veces, cuando "picas" en un enlace en una página WWW te estás trayendo un fichero de un servidor FTP anónimo (siempre que el enlace empieze con "ftp://"). Entre los tipos de ficheros que puedes encontrar podríamos comentar estos pocos:

Una lista de algunos de los comandos mas útiles que puedes utilizar.

Los clientes FTP de toda la vida datan de un tiempo en que no existían "ventanas". Estos clientes clásicos funcionan en modo "comando" y, aunque parezca mentira, el cliente FTP estándar de Microsoft (que viene con el Windows) es un cliente de este tipo. En Windows9x lo puedes arrancar con sólo ir al menú "inicio", seleccionar "ejecutar" y escribir "ftp". En UNIX (un sistema en el que todo es modo comando) basta poner 'ftp'. En Mac... no hay ninguno estándar.

Cuando utilizas un cliente FTP que funciona en modo comando, debes conocer qué comandos usar para decirle lo que quieres que haga. Los comandos más corrientes de un cliente FTP se reseñan a continuación:

open nombre_de_ordenador Comienza una sesión FTP con dicho ordenador. 
get nombre_remoto nombre_local Copia un fichero del ordenador remoto al local. Si no se indica 'nombre_local' se le asigna el mismo que tiene el fichero en el nodo remoto.
put nombre_local nombre_remoto Copia un fichero del ordenador local al remoto. Si no se da 'nombre_remoto' se le asigna el mismo que tiene localmente.
mget Copia uno o varios ficheros del ordenador remoto al local con el mismo nombre. Para copiar varios ficheros se utilizan nombres genéricos mediante el asterisco (*) que se considera caracter comodín 
(p.e.: "mget *"  ó "mget *.*" ).
mput Copia uno o varios ficheros del ordenador local al remoto con el mismo nombre; pueden copiarse varios ficheros en una sola instrucción mediante el asterisco, de forma análoga al comando MGET.
cd ruta_acceso Cambia de directorio en el ordenador remoto.
dir Muestra información sobre los ficheros existentes en el directorio de trabajo, en el ordenador remoto.
ls Similar a 'dir' pero más resumida.
quit Sale del entorno FTP y cierra la sesión.
help Muestra una lista de los comandos disponibles. Tecleando 'help comando' da una breve descripción de éste.
type ascii Cambia el modo de transferencia a ASCII; es es el necesario para textos ASCII (NO para ficheros de procesador de texto como el Word). Suele ser el modo por defecto, aunque muchos clientes modernos seleccionan el tipo automáticamente o lo ponen por defecto a "binary".
type binary Cambia el modo de transferencia a binario. Para imágenes, ejecutables, etc.
delete nombre_remoto Borra el fichero que se indica en el ordenador remoto.
rename nombre_viejo nombre_nuevo Cambia el nombre del fichero en el ordenador remoto.
 
NOTA: Hay algunos comandos que, obviamente, no se pueden utilizar en el servicio anonymous FTP, estos son: DELETE, RENAME, MPUT.

Un ejemplo completo de sesión FTP utilizando el servicio FTP (en modo comando).

Este ejemplo te mostrará paso a paso que debes hacer (en un cliente en modo comando) para introducirte en un servidor FTP en el que tienes cuenta. La conexión a un FTP anónimo se hace casi igual (se apuntan las diferencias), aunque, obviamente, en un FTP anónimo no puedes hacer un "put" (poner) sino sólo un "get" (traer).

IMPORTANTE: En sistemas UNIX la distinción entre mayúsculas y minúsculas es muy importante; por consiguiente, al conectar via ftp a un ordenador UNIX (la mayoría de los servidores), es importante fijarse en los nombres de ficheros y teclearlos tal como aparecen, respetando las mayúsculas y minúsculas. Del mismo modo, todos los comandos deberán teclearse en letra minúscula.

Lo que estas haciendo Lo que tecleas
1) Comienzas el programa FTP e indicas la maquina con la que deseasestablecer comunicación desde tu sistema. open miservidor.uv.es
2) Teclea el nombre del usuario cuando  pregunte por el 'login'(o escribe 'anonymous' si quieres entrar en el FTP anónimo y el servidor dispone de ese servicio).  miusuario
Despues pedirá la contranseña (por cortesía, en los FTP anónimos, se suele escribir tu propia dirección electrónica) (No se ve lo que tecleas)
3) Mira el contenido del disco dir
4) Te situa en la directorio /doc cd /doc
5) Lista el contenido del directorio dir (o ls)
6) Copia el fichero 'mifichero.html'  de tu ordenador al servidor, poniéndole allí el nombre 'mechero.html'  put mifichero.html mechero.html
7) Termina la conexión y acaba la ejecución del programa FTP. quit
NOTA: A menos que "mifichero.html" esté precisamente en el directorio/carpeta en el que estés trabajando (o esté trabajando tu programa FTP), lo normal es que tengas que especificar el "camino" completo donde está tu fichero. P.e., en un Windows, si está en tu disco C: en el directorio "cosas", sería: C:\cosas\mifichero.html .

¿Cómo accedo a un servidor FTP con un navegador?

Sencillamente, basta con que le digas al navegador, en formato "URL" qué servidor y directorio del mismo quieres ver, o, directamente, qué fichero te quieres traer.

P.e., si te quieres conectar al servidor FTP anónimo de la Universitat de València (el ordenador "ftp.uv.es") y ver lo que hay en el directorio "/pub", basta que le digas a tu navegador que abra:

ftp://ftp.uv.es/pub

También es corriente que los navegadores te dejen conectar a un servidor no anónimo con tu usuario y contraseña. Aunque, normalmente, no te dejan poner o borrar ficheros, sí que puedes pasearte por el contenido. Basta especificar, además, el usuario y la contraseña en el mismo URL (cuidado que no haya nadie mirando por encima de tu hombro: la contraseña se verá).

P.e.: si quieres ver el fichero que has puesto en el ejemplo de la sección anterior (ordenador "miservidor.uv.es", usuario "miusuario", contraseña "micontraseña", directorio "/doc", fichero "mechero.html"), basta con que pongas:

ftp://miusuario:micontraseña@miservidor.uv.es/doc/mechero.html

¿Cómo listar un fichero por pantalla sin necesidad de traerlo?

Hay ocasiones en que traes un fichero TEXTO ASCII y para ver su contenido tienes que suspender la sesion FTP, editarlo y comprobar si es lo que buscabas. Y si, entonces, descubres que no es ese el fichero que querías, tienes que borrar la copia que te has traído y has de volver a la conexión con la misma máquina para traer de nuevo otro archivo y así.... Esto puede resultar muy engorroso y a la vez nos hace perder mucho tiempo. Lo que realmente es cómodo es verlo en la pantalla antes de traerlo y así comprobar si es lo que buscas.

Esto es trivial si estas utilizando un navegador: siempre te enseña (si puede) los fichero y tienes que decirle explícitamente que se lo traiga. En modo comando esto también es posible, pero difiere un poco segun el sistema desde donde se inicie la conexion:

Transferencia Binaria y ASCII.

En todos los casos, lo más importante es saber como debemos transportar un fichero a lo largo de la red. Si no utilizamos las opciones adecuadas podemos destruir la mayoria de la información que el fichero contiene. Por eso, al ejecutar la aplicación FTP, es imprescindible acordarse de utilizar uno de estos comandos (o poner la correspondiente opción en un programa de ventanas):
type ascii
Siempre y cuando se trate de documentos o ficheros que sólo contengan caracteres imprimibles (ficheros ASCII, no ficheros resultantes de un procesador de texto). El ejemplo típico son las páginas HTML, pero no las imágenes correspondientes.
type binary
Cuando se trate de ficheros comprimidos, ejecutables para PC, imagenes, ficheros de sonido, ...


Ejemplos de cómo transferir un fichero dependiendo de su extensión:

EXTENSION DEL FICHERO  TIPO DE TRANSFERENCIA
txt (texto)  ascii
html (página WEB) ascii
doc (documento) binary
ps (poscript)  ascii
hqx (comprimido) ascii
Z (comprimido)  binary
ZIP (comprimido)  binary
ZOO (comprimido)  binary
Sit (comprimido)  binary
pit (comrpimido)  binary
shar (comprimido)  binary
uu (comprimido)  binary
ARC (comprimido)  binary
tar (empaquetado)  binary

¿Cómo desempaquetar o descomprimir ficheros?.

La razón de tener que comprimir ficheros se debe simplemente a que en ocasiones éstos son excesivamente grandes, dificultando así su almacenamiento y, lo que es peor, su transporte a lo largo de la red. Eso motiva que se utilicen técnicas para la compresión de datos, que consiguen reducir el espacio que ocupa cada fichero entre el 30 y el 70% de su tamaño original.

Del mismo modo, el empaquetar ficheros tambien facilita su transporte y movilidad, permitiendo que una estructura de directorios sea cómodamente trasladada de una máquina a otra, sin tener que preocuparte de copiar individualmente fichero a fichero y directorio por directorio, evitando así correr el riesgo de olvidar alguno.

Además, en MacIntosh se hace a menudo necesario codificar los ficheros (que son de una estructura más complicada que en otros sistemas operativos) en un formato fácilmente transmitible por la red (básicamente, se trata de juntar en una pieza las distintas partes de las que se compone un fichero Mac).

A continuación mencionamos algunos programas para descomprimir o desempaquetar dependiendo del sistema operativo de que dispones.

Observa que esta lista está un poco antigua. Hoy en día, básicamente se utiliza:

Programa que te permite descomprimir o desempaquetar
TIPO DE  COMPRESOR EXTENSION DOS MACINTOSH UNIX VM/CMS VAX/VMS
ARC  ARC  arc602.exe ArcMac arc521 arcutil arcvms
BinHex Hqx xbin23.zip BinHex mcvert binhex -
compress Z comp430d.zip MacCompress uncompress compress lzdcomp.exe
PackIt pit  UnPackIt PackIt unpit - -
PKZIP  ZIP  pkz204g.exe  UnZip unzip41 - unzip41
StuffIt Sit  mactopc StuffIt  unsit  - -
tar  tar  tar4dos.zoo UnTar tar  tar  vmstar
uuencode  uu  toaduu20.zip uutool  uudecode uudecode -
ZOO  ZOO  ZOO210.exe  MacBooz  zoo201 zoo zoo218.TAR-Z