|
About FTP | ||
Definition | ||
FTP is the abreviation for File Transfer Protocol. It is a network protocol which is a standard. FTP can be used to transfer files from one computer to another over a TCP enabled network. The FTP protocol is often used to upload web pages to a hosting server. It can be used to access online software files or to transfer files between an account and a desktop computer. Many sites are heavily used and theis means that they require some initial attempts before establishing a successfull connection.
|
||
Authentication and Security | ||
As an FTP user you can authenticate using a clear text sign-in protocol, which is usually in the form of a username/password pair. Some FPT servers accept anonymous connection if the server is configured to allow it. FTP is not able to encrypt its traffic since all its transmissions are in clear text: the usernames, passwords, commands and data can be easily read by someone able to perform packet capture - also know as sniffing - on the network. For secure transmission that hides (or encrypts) the username/password pair and encrypts the content, the SSH File Transfer Protocol should be used. | ||
Comparing FTP to HTTP | ||
FTP uses the TCIP/IP protocol to transfer files. It works on the application layer of the OSI model. To accomplish this the (FTP) server runs and waits for incoming connection requests. Clients can communicate with the FTP server on port 21 (twenty one). This connection (from the client to the server), called the control connection, stays open along the duration of the communication session. A second connection, which is called the data connection, can be opened by the FTP server from its port 20 (twenty one) to a negotiated client port (this represents the active mode), or can be initiated by the client machine from an random port to a negotiated FTP server port (this represents the passive mode) as required to transfer file data. The control connection is used for session administration, for example commands, identification and passwords exchanged between the client and the server using a telnet-like protocol. For example "RETR filename" would transfer the specified file from the server to the client. Due to this two-port structure, FTP is considered an out-of-band protocol, as opposed to an in-band protocol such as HTTP. | ||
FTPS | ||
Explicit FTPS is an extension for FTP which permits clients to specify that the session of FTP they initiate should be encrypted. The server has the option of denying or allowing connections that do not request TLS. Implicit FTPS is a deprecated standard for FTP that required the use of a SSL or TLS connection. It was specified to use different ports than plain FTP. | ||
SFTP | ||
SFTP (the "SSH File Transfer Protocol") is not related to FTP except in the sense that it allows transfers of files and has a similar command set. SFTP (known as secure FTP) is a standard that uses Secure Shell (SSH) to transfer files. Unlike the standard FTP, it encrypts both commands and data thus preventing passwords and other information from being transmitted unsecurely over the network. It is similar to FTP from the functionality point of view, but because it uses a different protocol, standard FTP clients cannot be used to talk to an SFTP enabled server, nor can one connect to an FTP server with a client that supports only SFTP. | ||
FTP Clients | ||
There are clients for FTP which make it very simple for users to transfer files: all they need to do is to drag and drop the files between windows (after being authenticated). In order to connect to an FTP server, the FTP client needs the name of the FTP host, for example ftp.mysite.com and then the username and password. If the user logs into an anonymous FTP server, there are no credentials required. A popular free FTP client solution is FileZilla. | ||
Web Browser | ||
Many web browsers are able to get the files hosted on FTP servers even though they may not support other protocol extensions such as FTPS. A web browser allows the user to connect to FTP addresses in the same way as he would connect to HTTP addresses. When an FTP address instead of an HTTPaddress is entered in the address field, the contents on the FTP server are shown in a similar maner to the one used to show Web content. The web browser takes care (behind the scenes) of the details of connecting to an FTP site and transferring files. Even so, web browsers are usually slower and not so reliable and have fewer FTP features than dedicated FTP clients. | ||
Connecting to FTP | ||
To connect to a FTP Server you need to type the following in the address bar:
ftp://my_username@ftp.mysite.com/ or at the comment line prompt, please enter ftp ftp.mysite.com |
||
FTP Commands | ||
Here is the list of FTP commands which FTP servers understand. Please notice that many command-line FTP clients have their own set of commands. | ||
Command | RFC | Description |
ABOR | Abort an active file transfer | |
ADAT | RFC 2228 | Authentication/Security Data |
ACCT | Account information | |
APPE | Append. | |
ALLO | Allocate sufficient disk space to receive a file | |
AUTH | RFC 2228 | Authentication/Security Mechanism |
CCC | RFC 2228 | Clear Command Channel |
CONF | RFC 2228 | Confidentiality Protection Command |
CDUP | Change to Parent Directory | |
CWD | RFC 697 | Change working directory |
DELE | Delete file. | |
ENC | RFC 2228 | Privacy Protected Channel |
EPSV | RFC 2428 | Enter extended passive mode |
EPRT | RFC 2428 | Specifies an extended address and port to which the server should connect |
FEAT | RFC 2389 | Get the feature list implemented by the server |
HELP | Help | |
LANG | RFC 2640 | Language Negotiation |
LIST | Returns information of a file or directory if specified, else information of the current working directory is returned | |
LPSV | RFC 1639 | Enter long passive mode |
LPRT | RFC 1639 | Specifies a long address and port to which the server should connect |
MDTM | RFC 3659 | Return the last-modified time of a specified file |
MIC | RFC 2228 | Integrity Protected Command |
MKD | Make directory | |
MLST | RFC 3659 | Provides data about exactly the object named on its command line, and no others |
MLSD | RFC 3659 | Lists the contents of a directory if a directory is named |
MODE | Sets the transfer mode (Stream, Block, or Compressed) | |
NLST | Returns a list of file names in a specified directory | |
NOOP | No operation (dummy packet; used mostly on keepalives) | |
OPTS | RFC 2389 | Select options for a feature |
PASS | Authentication password | |
PASV | Enter passive mode | |
PBSZ | RFC 2228 | Protection Buffer Size |
PROT | RFC 2228 | Data Channel Protection Level |
PORT | Specifies an address and port to which the server should connect | |
PWD | Print working directory. Returns the current directory of the host | |
QUIT | Disconnect | |
REIN | Re initializes the connection | |
REST | RFC 3659 | Restart transfer from the specified point |
RETR | Transfer a copy of the file | |
RMD | Remove a directory | |
RNTO | Rename to | |
RNFR | Rename from. | |
SITE | Sends site specific commands to remote server | |
SIZE | RFC 3659 | Return the size of a file |
SMNT | Mount file structure | |
STOR | Accept the data and to store the data as a file at the server site | |
STAT | Returns the current status | |
STOU | Store file uniquely | |
SYST | Return system type | |
STRU | Set file transfer structure | |
TYPE | Sets the transfer mode (ASCII/Binary) | |
USER | Authentication username | |
XCUP | RFC 775 | Change to the parent of the current working directory |
XMKD | RFC 775 | Make a directory |
XPWD | RFC 775 | Print the current working directory |
XRMD | RFC 775 | Remove the directory |
XRCP | RFC 743 | |
XRSQ | RFC 743 | |
XSEN | RFC 737 | Send to terminal |
XSEM | RFC 737 | Send, mail if cannot |
Copyright ( © ) WhatIsHTTP 2007 - 2012. All rights reserved. Terms of use Disclaimer Privacy Policy |