views:

430

answers:

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.

+3  A: 

FTP has been mostly replaced, by HTTP, SCP/SFTP, and so on. You'll still find the odd FTP server here and there, but they're dinosaurs.

skaffman
But, for example, when I upload files to my web server, or a client's web server, I use FTP. Is it just that most places that don't have SSL can't use or don't bother with SCP and SFTP?
SkippyFire
SFTP has a different use-case. It's not like the difference between HTTP and HTTPS.
John Saunders
I suppose FTP is the lower-common-denominator in some cases. When I upload files to a remote server, I use SFTP or SCP now. Haven't used FTP in a long time.
skaffman
OK, that's fine, I don't know a lot about all the protocols. I just assumed SSL was involved. But do a lot of people use SFTP? Is it a big improvement over regular FTP?
SkippyFire
SFTP has nothing to do with SSL. You might be thinking of FTPS, another thing altogether.
Bob Riemersma
+5  A: 

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
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
FTP is awful for moving lots of little files.
Greg
Exactly! It takes FOREVER! And that is what I'm asking (griping) about.
SkippyFire
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?
SkippyFire
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
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
+1  A: 

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
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?
SkippyFire
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
+1  A: 

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

Bruce Blackshaw
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.
Bob Riemersma
"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
+1  A: 

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
...why would it be better (more efficient) to have commands in words, opposed to binary?
instanceofTom
(not being sarcastic or rude btw)
instanceofTom
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
Interesting take on things. Plain text probably is a benefit for troubleshooting purposes, but isn't some efficiency sacrificed?
SkippyFire
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.
Bob Riemersma
+3  A: 

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.

Bob Riemersma
+1 good article
instanceofTom