FTP (Protocolo de transferencia de archivos) es un protocolo, es decir, un lenguaje estándar que permite la comunicación entre dos máquinas, utilizado para que los ordenadores de diferentes tipos (o con sistemas operativos diferentes) puedan transferir archivos a través de una red que usa TCP/IP
El FTP opera en un entorno cliente/servidor. Esto significa que la máquina remota se configura como servidor, por lo que espera a la otra máquina para solicitarle un servicio. En UNIX, el servicio se brinda por medio de lo que se conoce como un daemon, una tarea pequeña que se ejecuta de fondo. El daemon del FTP se denomina ftpd.
Existen numerosos programas clientes FTP, algunos de los cuales se ejecutan desde una línea de comandos (como puede ser el comando ftp, un estándar implementado en numerosos sistemas operativos). Sin embargo, una gran mayoría de estos programas permite que el usuario pueda manipular archivos a través de una interfaz gráfica (por ejemplo, CuteFTP), la cual hace que la transferencia de archivos sea un proceso más sencillo para el usuario.
El protocolo FTP se usa para transferir un archivo por vez, en cualquier dirección, entre la máquina cliente (la que inició la conexión, es decir, la máquina que realiza la llamada) y la máquina servidor (la que prestó el servicio FTP, es decir, la que recibe la llamada). El protocolo FTP también puede realizar otras acciones, como crear o eliminar directorios (sólo si están vacíos), hacer una lista de archivos, eliminar y renombrar archivos, etc.
No se debe confundir la noción de protocolo con la de implementación
Un protocolo es un conjunto de reglas y procedimientos que se han definido para estandarizar comunicaciones, mientras que la implementación es la programación del software que sigue (aproximadamente) las recomendaciones del protocolo. Por esta razón, el FTP se ha implementado en muchas plataformas según las especificaciones del protocolo.
El comando "ftp" está disponible en varias plataformas, entre las que se encuentran UNIX, Windows y Linux. El comando inicia una sesión FTP y normalmente se ejecuta de la siguiente manera:
ftp nombre_del_servidor
nombre_del_servidor representa el nombre o dirección IP de la máquina remota a la que el usuario se quiere conectar. La máquina destino debe contar necesariamente con un servicio FTP.
Una vez que se inicia la sesión, aparecen unas pocas líneas en la pantalla. La primera línea comunica que se conectó a un servidor FTP, la siguiente le da la bienvenida, y también puede indicar el tipo de sitio FTP que es (es decir, qué tipo de archivos posee o a qué organismo pertenece) o instrucciones para usuarios.
En el FTP, cada línea comienza con un número que representa éxito o falla. En el caso de un mensaje de bienvenida, la línea puede estar precedida por el número 220. Esto significa que "el servicio está preparado para el nuevo usuario".
El servidor solicita el nombre de usuario (también conocido como inicio de sesión o identificación) para establecer los derechos de acceso (por ejemplo, privilegios de lectura/escritura). Una vez que acepta el nombre de usuario, una línea que comienza con el número 331 solicita que introduzca la contraseña, la cual está oculta. Esto significa que no aparece en la pantalla.
En algunos casos, el servidor puede ser público. En estos casos puede iniciar sesión en forma anónima, por lo que tendrá que iniciar sesión como "anónimo" (o "invitado"). En los servidores públicos, el usuario generalmente introduce la dirección de correo electrónico como contraseña, aunque puede introducir la que elija.
Una vez que se acepta la contraseña, aparece un mensaje que indica si se ha establecido una conexión o no. En este último caso, se dará un motivo (por ejemplo, puede suceder que el sitio haya alcanzado el número máximo de usuarios permitidos por vez. En estos casos aparece el mensaje "No se permiten más usuarios" ).
Una vez que inició sesión, el sitio FTP espera que el usuario introduzca comandos que describan las acciones a realizar.
Los comandos FTP normales son:
| Comando | Descripción |
|---|---|
| help | Muestra todos los comandos admitidos por el servidor FTP. |
| Estado: | Se usa para mostrar algunas de las configuraciones de la máquina cliente. |
| binary | Este comando cambia del modo ASCII (envío de documentos de texto) a modo binario (envío de archivos binarios, es decir, archivos sin texto, por ejemplo, imágenes o programas). |
| ascii | Cambia de modo binario a modo ASCII. Este modo resulta ser el modo predeterminado. |
| type | Permite ver el modo de transferencia actual (binario o ASCII) |
| user | Permite reiniciar una sesión en el sitio FTP actual utilizando un nombre de usuario diferente. Luego, se le pedirá que introduzca una contraseña nueva. |
| ls | Crea una lista de todos los archivos que se encuentran en el directorio actual. El comando "Is-I" brinda información adicional de los archivos. |
| pwd | Muestra el nombre completo del directorio actual. |
| CD | El comando significa cambiar de directorio y se usa para pasar a un directorio diferente. El comando "cd" se usa para tener acceso al directorio principal. |
| mkdir | El comando mkdir (en UNIX, o md en Microsoft) se usa para crear un directorio dentro del directorio actual. El uso de este comando se reserva para los usuarios que tengan acceso permitido. |
| rmdir | El comando rmdir (en UNIX, o md en Microsoft) se usa para eliminar un directorio dentro del directorio actual. El uso de este comando se reserva para los usuarios que tengan acceso permitido. |
| get | Este comando permite recuperar un archivo presente en el servidor.
|
| put | Este comando se usa para enviar un archivo local al servidor.
|
| open | Cierra la sesión actual y abre una nueva sesión nueva en otro servidor FTP. |
| close | Cierra la sesión actual, pero deja el software FTP cliente activo. |
| bye | Desconecta el software cliente del servidor FTP colocándolo en modo inactivo |
| quit | Desconecta el software cliente del servidor FTP colocándolo en modo inactivo |