Slashdot Mirror


FTP: Better Than HTTP, Or Obsolete?

An anonymous reader asks "Looking to serve files for downloading (typically 1MB-6MB), I'm confused about whether I should provide an FTP server instead of / as well as HTTP. According to a rapid Google search, the experts say 1) HTTP is slower and less reliable than FTP and 2) HTTP is amateur and will make you look a wimp. But a) FTP is full of security holes. and b) FTP is a crumbling legacy protocol and will make you look a dinosaur. Surely some contradiction... Should I make the effort to implement FTP or take desperate steps to avoid it?"

19 of 870 comments (clear)

  1. well, what're you trying to do? by twiggy · · Score: 4, Insightful

    As long as you're willing to secure your FTP server and do the simple stuff like watch out for file permissions - FTP is much better.

    HTTP is restricted by browsers, many of which will not support files larger than a certain size. Furthermore, FTP allows for features such as resume, etc...

    The real question, however, is what are you trying to use this for? What's your intended application?

    If it's a file repository for moderately computer literate people - FTP is definitely the way to go.

    If it's a place for average-joes to store pictures, maybe HTTP is your best option. Sacrificing a bit of speed and capabilities such as resume might be made up for with ease of use..

    --
    http://www.babysmasher.com
    http://www.openingbands.com
  2. Anecdotally, HTTP is more reliable by kisrael · · Score: 4, Insightful

    Whenever I see a list of FTP mirrors with one HTTP version, the HTTP version is faster and more reliable 9 times out of 10.

    It's generally simpler to get to from a browser, which is where 95% of people's online life is anyway. Yeah, you can rig up a FTP URL, but it seems a bit kludgey and more prone to firewall issues.

    --
    SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    1. Re:Anecdotally, HTTP is more reliable by jez9999 · · Score: 4, Insightful

      Whenever I see a list of FTP mirrors with one HTTP version, the HTTP version is faster and more reliable 9 times out of 10.

      I suspect that's because 99% of people are downloading from one of the FTP servers.

      It's generally simpler to get to from a browser, which is where 95% of people's online life is anyway.

      I honestly don't see how.

      Yeah, you can rig up a FTP URL, but it seems a bit kludgey

      ftp://www.mysite.com/file.zip

      How is that cludgey?

  3. Transparent by mao+che+minh · · Score: 5, Insightful
    It's almost transparent - most people (99.9%) don't know the difference between http and ftp. The .1% that "gets it" don't care what you're using as long as the pr0n gets from point A to point B (point B being my computer, which I lovingly call "My Pr0ndex").

    And I wouldn't care about the opinion of someone who would actually judge you over what friggin protocol you use to provide downloads. Such an utter nerd is somethig that I can not relate too. Maybe after I use Linux for a few more years, who knows.

  4. Make your life simpler: use HTTP by kazrak · · Score: 5, Insightful
    I question why people think FTP is 'faster' or 'more lightweight' than HTTP. HTTP is a fairly lightweight protocol, and what overhead it does have is massively outweighed by the size of the files when you get into the multi-megabyte range. Add in that everything can be done in one transaction via HTTP (compared to logging in, changing to the right directory, activating passive mode if needed, starting the transfer, opening up a second TCP connection for the data transfer, etc. for FTP) and I really don't see a performance advantage to FTP.

    Security-wise, HTTP is a big win over FTP if only because it makes your port-filtering easier - "allow to 80" is simpler and less likely to cause unintended holes than all the things you need to do to support FTP active and passive connections. Certain FTP server software has a reputation as having more security holes than IIS, but there are FTP servers out there that are as secure as Apache.

  5. I'd say it depends on what you're serving... by PhaseBurn · · Score: 4, Insightful

    From my point of view (A network administrator), I provide both ftp and http servers for the same files (stick all downloads off /download or something, and set the ftp root to that). This has several benefets...

    1) I've found HTTP transfers are a little faster than FTP transfers (just personally, and I can in no way prove it - it may be user error, or just the programs I'm using)

    2) I've found that FTP clients are everwhere - Windows, Linux, BSD, everything I've ever installed has included a command line FTP client, but not a web browser unless I specifically remember to install one. Further more, most of the "live CDs/boot disks" that I use don't have a web browser, but do have FTP... Thus, if you're serving files that a person with out a web browser/server might need, I'd set up both...

    3) FTP security is what you/your daemon makes of it. wu-ftpd has a long history of being rooted... ProFTPd dosn't. VSFtp doesn't. HTTP security is the same way... IIS has a long history of being rooted... Apache doesn't... *(Not to say that there haven't been occasional exploits for these platforms)

    There is no clear "Use this" or "Use that" procedure here, it depends entirely on your situation, what you're serving, what your network setup is, etc...

    --
    -PhaseBurn Welcome to Linux country. On quiet nights, you can hear windows reboot.
  6. HTTP Vs FTP by neurojab · · Score: 4, Insightful

    The efficiency differences will be debated forever... the common wisdom is that FTP is more efficient, but there is also evidence to the contrary. That isn't the point.

    To me, this is a problem of authentication. If you want EVERYONE to have these files, why not just use the HTTP server? If you're targeting a select few people, then why not use the built-in authentication mechanisms of FTP?

    Yes I know there are authentication mechanisms for HTTP, but they're arguably harder to implement than setting up an FTP server.

    Are your clients only using web browsers to retrieve these files? I'll get flamed for this, but web browsers were not designed for FTP, and thus are klunky at it. HTTP wins there again.

    Don't worry about it. Just use HTTP and let the FTP bigots flame away.

  7. Re:Forget them both.... by nuxx · · Score: 5, Insightful

    There's no reason to use sftp for publically available files. This is for the exact same reason that you wouldn't use https. There's no need for encyption of something that is freely, publically available. Checksums, yes, encryption, no.

    I personally would say go with http for the files, as it'll be much easier for people behind http proxies to download, it'll get cached more often by transparant proxies, and most browsers support browsing http directories FAR better than FTP directories.

  8. Re:Forget them both.... by Hug+Life · · Score: 4, Insightful

    While this does help with the evasion of an acient protocol, it forgets one of the poster's main goals. The poster worried HTTP is slower ... than FTP . SFTP is very slow considering the overhead each packet has because of encryption. -js

  9. weak question, by Openadvocate · · Score: 4, Insightful

    The question does not contain enough information to form a proper answer.
    Don't start with finding the solution, figure out what it is you want, what you want it to do and then find the right tool. We can not tell you which is right with almost no information about the use of it, for what and what is the average user profile etc.
    HTTP and FTP can be equally insecure, but it shouldn't be much of a job to properly secure a ftp.

    --
    my sig
  10. Re:Different, not better or wose by neuroticia · · Score: 5, Insightful

    Unfortunately HTTP is still a more secure protocol because HTTP clients can easily implement SSL encryption for passwords and sensitive data transfer. When you're dealing with a client who insists on using an outdated, but "easy" FTP client, it's not easy to tell them they have to change, and it's even less easy to tell them what they have to change to.

    FTP is notoriously difficult to secure while retaining ease of use for the clueless end-user.

    -Sara

  11. Re:Forget them both.... by neuroticia · · Score: 5, Insightful

    You're also slightly less likely to be threatened with root exploits when using HTTP instead of FTP. Especially if you're already maintaining an HTTP server on the particular machine in use--because you already HAVE that security hole open. Rather than opening another hole, you're using one that's already there.

    -Sara

  12. Re:Forget them both.... by Just+Some+Guy · · Score: 4, Insightful

    It sounds like anonymous downloading of publicy available files - whatfor do we need any encryption then?

    If not for the encryption, then consider what else you get: a well-defined TCP connection. It's a cinch to configure a firewall to allow sftp connections, while FTP firewalling will give you prematurely grey hair (and if it doesn't, then you're not doing it right).

    --
    Dewey, what part of this looks like authorities should be involved?
  13. Re:Forget them both.... Anonymity by dmayle · · Score: 4, Insightful

    The reason to use sftp on publicly available files or hhtps is so that people <*cough*>Carnivore</*cough*> can't track what I'm doing online. Sure, they can tell what sites you are visiting, but they can't tell what content you're looking at, or which files you downloaded... Imagine a time when you want to download DeCSS for your linux boxen from a foreign server, but someone is logging your downloads <*cough*>Verizon</*cough*> and the RIAA wants access to those records... If they don't know what you downloaded they can't (potentially unjustly) prosecute you...

  14. HTTP and FTP FUD by MobyDisk · · Score: 4, Insightful

    I see too many FUD replies here:

    1) HTTP doesn't support resumed downloading.
    - That's ridiculous. It has since HTTP/1.1 years ago. In fact, it can even do things like request bytes 70,000 - 80,000, then 90,763 - 96,450, etc.
    2) HTTP doesn't support security/authentication
    - Ridiculous. HTTP has an open-ended model for authentication and security, many of which are secure and standardized. If you REALLY need security, use HTTPS.
    3) HTTP doesn't support uploading
    - HTTP/1.1 has had this for a while. Netscape 4.7, Mozilla 1.1, and IE 4+ support this. I must admit though, it sucks. :-)

    Several people have pointed out the real differences:
    1) FTP doesn't like firewalls
    - Passive FTP fixes this, but it has quirks and limitations.
    2) FTP supports directory listing, renaming, uploading, changing of permissions, etc.
    - This is what FTP is for
    - This can be done in HTTP, but requires serious work
    - If the scope creeps, shell access would be better.

  15. Re:how about rsync? by hoegg · · Score: 4, Insightful

    Caching MD5 sums for every block? Well, this may ease the load on your processor but I hope you have plenty of RAM!

  16. Re:Different, not better or wose by LoneRanger · · Score: 5, Insightful

    What are you using Lynx to connect to the ftp server? That's the reason it's slow. Try a real client like NcFTP and when you do, make sure to take note of the sheer power.

    mget blah[1,2,3].iso....

    Get the drift? HTTP indexes are rather stupid if you ask me, it's FTP without the features. And before you whine "But I don't need the features", neither do I most of the time, but it's nice when they're there.

  17. HOW ABOUT UPLOADING??? by craig1972 · · Score: 5, Insightful

    It seems everyone talks about DOWNLOADING. How about UPLOADING? How fast and wonderful is HTTP for that?

  18. HTTP is better for most cases by pieterh · · Score: 4, Insightful
    The main strengths of FTP over HTTP for file transfers are:
    • Easy command line scripting of FTP sessions via 'ftp' client available on most systems. In contrast, scripting an HTTP session requires some simple but non-trivial programming in Perl, Ruby, etc.
    • Fastest file transfers, since binary data is not encoded in any way.
    • Simplicity of the presented information, which users see as a file system.


    The main strengths of HTTP over FTP for file transfers are:
    • More-or-less guaranteed access through all corporate firewalls.
    • Virtual hosts, something that FTP does not support in any standard fashion.
    • Easily extended into more secure realms using various kinds of authentication, SSL, certificates, etc.
    • Support for MIME types.
    • (Obvious) Ability to encapsulate your files in an interesting context, e.g. web site, wiki, etc.


    The other differences one sees are due to server design issues. I.e. most FTP servers are large and spawn a process per connection, which makes FTP sessions much slower than HTTP sessions. But if you want to use FTP, there are very fast FTP servers out there.


    Overall, in today's world, it does not make sense to use FTP unless you have a requirement from your users. For public access to files, use HTTP or something more modern, such as rsynch, or a P2P network.


    As usual, you should answer such questions by thinking about your target users and asking yourself what they are likely to be most comfortable using. Chances are it's their main tool, the web browser.