6

Is it just me, or does FTP seem a little archaic? It seems slow and inefficient, and its over 30 years old, not that all old things are bad :)

What protocols exist out there that might become successors to FTP?

I've used webdav a little, but don't know much about it. Is it faster? More reliable? More secure?

Why isn't there widespread adoption of a newer technology (yet)?

Update: Specifically, I'm referring to downloading/uploading files between developers and their web server.

I am aware of other mainstream protocols for other uses such as web browsing, file sharing, etc.

John B
  • 20,062
  • 35
  • 120
  • 170
  • 2
    Most protocols in use today are horrible. As long as we're still using something as fundamentally messed up as IRC or mail protocols that use 7-bit encodings, I think FTP is the least of our concerns... – jalf Jun 30 '09 at 21:15

5 Answers5

7

The nice thing about FTP is that it works, which is a major improvement over, for example, Windows filesharing (or for that matter, Win7's Homegroups).

There are plenty of other technologies for transferring files though. HTTP is commonly used for retrieving files, SCP or SFTP handle the secure aspect, basically running the usual protocol through a SSH tunnel. As for inefficient? How so? Just because it's old doesn't mean it's inefficient.

How would a more efficient protocol work?

Anyway, FTP has its niche. It is used for transferring files where security is not important. It does the trick there, and I'm not aware of any superior alternatives, nor can I think of any obvious ways to improve the protocol.

jalf
  • 243,077
  • 51
  • 345
  • 550
  • 1
    There's more to SCP/SFTP than security. They're inherently simpler protocols, and easier to implement. FTP is *horrible* as a protocol, especially the old PASV nonsense. – skaffman Jun 30 '09 at 20:45
  • FTP is awful for moving lots of little files. – Greg Jun 30 '09 at 20:47
  • Exactly! It takes FOREVER! And that is what I'm asking (griping) about. – John B Jun 30 '09 at 20:48
  • So what is hindering adoption of SCP and SFTP? It looks like SCP requires SSH. Do you think that is partly to blame? What about SFTP? – John B Jun 30 '09 at 20:50
  • 2
    Same for SFTP, and yes, that is FTP's saving grace. It is simple, and it works with virtually no prerequisites. It doesn't require you to mess around with public/private key pairs or anything else. It is the lowest common denominator. And true about lots of small files, I was only thinking of transferring individual files, which is hard to speed up – jalf Jun 30 '09 at 20:52
  • Having implemented FTP,FTPS,SCP and SFTP I can assure you that FTP is by far the simplest protocol as jalf says. And the best performing (although many little files are indeed a problem, and it is rubbish the way each transfer uses a new socket). – Bruce Blackshaw Jul 01 '09 at 13:27
4

This was a provocative article: Wish More Hosts Offered WebDAV? Blame PHP!

A useful thing about WebDAV is that it tends to be more firewall-friendly, you don't need to muck around with PASV. Since it can use HTTPS you can obtain better security that way than you get with FTP.

Bob77
  • 13,167
  • 1
  • 29
  • 37
2

Here's a discussion about the future of FTP and related file transfer protocols that I blogged about recently.

Bruce Blackshaw
  • 986
  • 1
  • 7
  • 10
  • 1
    SFTP isn't "FTP over SSH" though. SFTP is a different protocol that uses SSH sockets as transport I believe. It is also possible to use regular FTP through an SSH tunnel, which is what I think "FTP over SSH" actually means. – Bob77 Jul 01 '09 at 22:34
  • "FTP over SSH" is the easiest way to describe SFTP, and it is actually reasonably accurate - SFTP is a protocol layered on top of the SSH protocol. SFTP messages are encapsulated in SSH messages. Of course SFTP messages aren't actually FTP as we know it, but it is still a "file transfer protocol" layered on SSH. As you point out "FTP over SSH" does also refer to tunneling ordinary FTP over SSH and I suppose is strictly more accurate. – Bruce Blackshaw Jul 02 '09 at 10:13
1

FTP used to be the One True system to move data around. That's pretty much fragmented now:

  • for public data distribution: HTTP, BitTorrent
  • for sharing data inside an organization: web-based tools, SMB and other native filesharing platforms
  • for moving data between boxes: scp, rsync
  • for sending data to an individual: email, web-based tools
Anirvan
  • 6,214
  • 5
  • 39
  • 53
  • Good point. But I think I was thinking more along the lines of direct file transfers to a given developer's server. What do most people use for that? – John B Jun 30 '09 at 20:46
  • Hey SkippyFire. Could you explain the case a bit more? I don't think I understand. File transfers from _where_ to a developer's server? Push or pull? – Anirvan Jun 30 '09 at 21:06
1

Actually, I find FTP one of the most efficient protocols, as there is only minimal protocol overhead. Also, FTP commands are plain english words, instead of binary commands.

It's main weakness is the lack of encryption, which puts it IMHO into the same category as Telnet, which has been replaced by SSH mostly.

There are replacements (i.e. SCP), but frankly, FTP is a fine protocol and with FTP over SSH, there is an alternative to it's main weakness available. But yes, nowadays I would use SCP whenever possible.

Michael Stum
  • 177,530
  • 117
  • 400
  • 535
  • ...why would it be better (more efficient) to have commands in words, opposed to binary? – Tom Neyland Jul 01 '09 at 22:39
  • (not being sarcastic or rude btw) – Tom Neyland Jul 01 '09 at 22:40
  • Because that means I can troubleshoot issues using any telnet client, which I find really helpful. Maybe it's just personal preference though, but especially being a developer writing Client/Server software, it's nice to talk to the server directly to troubleshoot stuff. – Michael Stum Jul 01 '09 at 22:47
  • Interesting take on things. Plain text probably is a benefit for troubleshooting purposes, but isn't some efficiency sacrificed? – John B Jul 02 '09 at 13:53
  • WebDAV is arguably as "plaint texted" when used over HTTP though. Not as much fun to type in through a Telnet or RAW TCP interactive client though. – Bob77 Jul 04 '09 at 17:27