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?"

176 of 870 comments (clear)

  1. Forget them both.... by NinteyThree · · Score: 3, Flamebait

    ...use sftp!

    1. Re:Forget them both.... by Karamchand · · Score: 4, Informative

      I guess that's not what s/he wants. It sounds like anonymous downloading of publicy available files - whatfor do we need any encryption then? There are no passwords to secure, no sensitive data to secure. You'd get only hassles from MSIE users who never heard about sftp..

    2. 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.

    3. 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

    4. Re:Forget them both.... by ZoneGray · · Score: 4, Informative

      This is slightly off-topic and sftp isn't what he should be using, but you can change the user's shell to /usr/bin/sftp and add it to /etc/shells. I've only tried it with OpenSSH under Linux, so YMMV. I got the idea from an OpenBSD list, though, so it should work most anywhere.

      To answer the original question, when given a choice, I always download by http. It usually takes less time to set up the connection, probably becasue of those ident lookups that most ftpd's still run by default.

    5. Re:Forget them both.... by Daytona955i · · Score: 4, Informative

      sftp is not the way to go if you want public access of files. sftp would be the way to go if you were required an account to download/upload files.

      If the files you are serving are large then use ftp. If the files are smaller (less than 10MB) use http.

      http is great, I sometimes throw up a file on there if I need to give it to someone and it is too big to e-mail. (Happened recently with a batch of photos from the car show)

      Since I already have a web page it was easy to just throw the file in the http directory and provide the link in an e-mail.

      I like http for the most part. I doubt anyone will call you lame for using it, unless the files are huge.
      -Chris

    6. 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

    7. 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?
    8. Re:Forget them both.... by mr.+methane · · Score: 5, Informative

      I provide a mirror for a couple of largish open-source sites, and several of them specifically request that sites provide FTP service as preferred over HTTP. A couple of reasons:

      1. Scripts which need to get a list of files before choosing which ones to download - automated installers and the like - are easier to implement with FTP.

      2. FTP generally seems to chew up less CPU on the host. I can serve 12mb/s of traffic all day long on a P-II 450 box with only 256mb of memory.

      3. "download recovery" (after losing connection, etc.) seems to work better in FTP than HTTP.

    9. Re:Forget them both.... by _Sharp'r_ · · Score: 2
      To comment on the above and its parent:

      1. Most current ssh implementations have an "ssh-dumy-shell" that is specifically designed to only allow an account to use sftp and not regular shell access. I'd look for that feature instead of just pointing the username to sftp itself.

      2. Your shell isn't going to matter for stopping r* commands. What you do for that is to take the neccesary steps to disable them completely. They really have no place running in a modern OS that you are able to install replacements like ssh2 on. Remove rshd (any any other r* style daemon) from inetd.conf (or other similar startup scripts) and add unchangeable default files for /etc/hosts.deny, /etc/hosts.equiv, /etc/login.conf, $HOME/.rhosts and /var/run/nologin defined so that no one could use them if somehow rshd was run.

      --
      The party of stupid and the party of evil get together and do something both stupid and evil, then call it bipartisan.
  2. hmm by nomadic · · Score: 5, Interesting

    I haven't really noticed any reliability issues with http anymore. If it starts loading it usually finishes, and I haven't run into any corruption problems. Maybe if you were serving huge files ftp would be a good idea, but for 1-6 mb it's probably not worth it.

    1. Re:hmm by cbv · · Score: 3, Informative
      If it starts loading it usually finishes, and I haven't run into any corruption problems.

      You may (just may) run into a routing or timeout problem, in which case the download will stop and you are forced to do the entire download again. Using the right client, eg. ncftp, you can continue downloading partially downloaded files. An option, HTTP doesn't offer.

      With respect to the original question, I would set-up a box offering both, HTTP and FTP access.

    2. Re:hmm by nomadic · · Score: 4, Interesting

      Right, but for 1-6 mb I'd rather just try my luck with http. Especially since http is faster to connect to than ftp.

    3. Re:hmm by toast0 · · Score: 5, Informative

      using the right client, ie wget, you can resume from http streams provided the server supports it (and i think most modern ones do)

    4. Re:hmm by cbv · · Score: 2, Informative
      using the right client, ie wget [...]

      Yes, I thought about wget while I wrote my answer - but left it out, simply because _for John Doe_ wget is too complicated. John Doe wants a clickety-click-drag-n-drop client, like a web browser or something like WS-FTP. Granted, ncftp doesn't fall into that category either, but even John Doe can use a simple ftp client.

    5. Re:hmm by tom.allender · · Score: 5, Informative
      you can continue downloading partially downloaded files. An option, HTTP doesn't offer.

      Plain wrong. RFC2068 section 10.2.7.

    6. Re:hmm by jez9999 · · Score: 3, Insightful

      But... doesn't HTTP 1.1 support resuming? I've resumed files over HTTP before...

    7. Re:hmm by mvdw · · Score: 3, Informative

      Especially since http is faster to connect to than ftp.

      I disagree. Sure, it's easy to browse via http and get one or two files, but when you're trying to suck down the entire directory, http blows (excuse the pun).

      What's faster for getting a whole directory than:

      wget -t 0 -c ftp://ftp.server.name/path/to/dir/*

      Doesn't work with http, because the directory listing doesn't work with wget, at least the version I have.

    8. Re:hmm by tachyonflow · · Score: 2, Informative

      It would appear that IE6.0 (at least) supports this resume feature of HTTP, when conditions permit. I just tested it by interrupting a large download from my web site.

    9. Re:hmm by grolim13 · · Score: 4, Informative

      wget -r -l1 http://http.server.name/path/to/dir/ will suck down all the files in that directory; wget -r -np http://http.server.name/path/to/dir/ will pull it down recursively.

    10. Re:hmm by askwar · · Score: 2, Interesting

      Okay, but John Doe uses a Web browser to download files from FTP.

      Web browsers don't support reget, AFAIK. (Please correct me, if I'm wrong.)

      If John Doe is a little bit educated, he might use tools like GetRight. GetRight supports partial transfer from both FTP and HTTP.

      --
      Alexander Skwar -- Homepage: http://www.digitalprojects.com | http://www.iso-top.de iso-top.de - Die
  3. I wouldn't worry about it... by $$$$$exyGal · · Score: 2, Insightful
    Do whatever is more convenient for you. The differences are not that great.

    --sex

    --
    Very popular slashdot journal for adul
    1. Re:I wouldn't worry about it... by fonebone · · Score: 3, Funny

      Maybe I'm slow, but I havn't found a way to do batch file transfers with HTTP. There's just no way to do it without clicking on every single damn link, selecting "save as", and then downloading. Sure you can generally get several going at once, it's still not the same as selecting several folders and doing a batch transfer in my FTP client. Or is are there apps or methods of doing this for HTTP?

      if you're using linux, you can use wget. and if you're on windows, you can get cygwin and then also use wget.. there's gotta be other utilities with the same features, but wget is definitely the classic and does pretty much everything you'd need.

      --
      when the rain comes, they run and hide their heads. they might as well be dead.
    2. Re:I wouldn't worry about it... by pixel.jonah · · Score: 2, Informative

      or just do a search for the windows build of wget (wget.exe) - I use it all the time, still isn't a GUI for it though. However if you want to pass in a text file with all the urls you want to download - its killer. and fast too.

    3. Re:I wouldn't worry about it... by dimator · · Score: 2, Informative

      http://www.interlog.com/~tcharron/wgetwin.html

      This is probably the first thing I get when I'm doing a new windows installation. For larger files, its a must. You also don't have to deal with browsers using their cache directory to download, and then *copying* it to the directory you really wanted. (Who the hell thought of doing it that way?)

      --
      python -c "x='python -c %sx=%s; print x%%(chr(34),repr(x),chr(34))%s'; print x%(chr(34),repr(x),chr(34))"
    4. Re:I wouldn't worry about it... by edwdig · · Score: 2, Insightful

      The idea behind downloading into the cache and then copying it is that the download starts as soon as you click the link. While you're navigating the file selector deciding what to do with it, the transfer is in progress.

    5. Re:I wouldn't worry about it... by slagdogg · · Score: 2, Informative

      'wget' with shell script capabilities is a very handy tool indeed ... for f in {0-2}{0-9} ; wget http://somesite.com/images/teen-$f.jpg :|

      --
      (Score:-1, Wrong)
  4. Screw all of that! by Anonymous Coward · · Score: 4, Funny

    Use telnet and screen capture the VT100 Term buffer!

  5. do both... by jeffy124 · · Score: 4, Informative

    But in my experiences, HTTP for whatever reason goes faster (not entirely sure why), and FTP doesnt work for some because of firewalls.

    Try both - see which gets used more.

    --
    The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
    1. Re:do both... by enos · · Score: 5, Funny
      Try both - see which gets used more.

      Then report back to us in the first ever Answer Slashdot.

      --
      boldly going forward, 'cause we can't find reverse
  6. how about rsync? by SurfTheWorld · · Score: 5, Informative

    rsync is a great protocol, fairly robust, can be wrappered in ssh (or not), supports resuming transmission, and operates over one socket.

    seems like the best of both worlds to me.

    the real question is - do you control the clients that are going to access you? or is it something like a browser (which doesn't support rsync).

    --
    Do it for da shorties
    1. Re:how about rsync? by MisterMook · · Score: 5, Funny

      I don't know, after Rsync's last album I've decided that they're probably too old for serious contending in the boy-band heavy marketplace.

    2. Re:how about rsync? by Dr.+Awktagon · · Score: 5, Informative

      Agreed.. I've had enough headaches with FTP and firewalls/NAT, let's just let it die. For robust downloading of large files rsync is the protocol to use.

      For those not familiar: rsync can copy or synchronize files or directories of files. it divides the files into blocks and only transfers the parts of the file that are different or missing. It's awesome for mirrored backups, among other things. There is even a Mac OS X version that tranfers the Mac-specific metadata of each file.

      Just today I had to transfer a ~400MB file to a machine over a fairly slow connection. The only way in was SSH and the only way out was HTTP.

      First I tried HTTP and the connection dropped. No problem, I thought, I'll just use "wget -c" and it will continue fine. Well, it continued, but the archive was corrupt.

      I remembered that rsync can run over SSH and I rsync'd the file over the damaged one. It took a few moments for it to find the blocks with the errors, and it downloaded just thost blocks.

      Rsync should be built into every program that downloads large files, including web browsers. Apple or someone should pick up this technology, give it some good marketing ("auto-repair download" or something) and life will be good.

      Rsync also has a daemon mode that allows you to run a dedicated rsync server. This is good for public distribution of files.

      Rsync is the way to go! I guess this really doesn't 100% answer the poster's question, but people really should be thinking about rsync more.

    3. Re:how about rsync? by swillden · · Score: 4, Interesting

      Rsync is the way to go!

      Rsync is great in theory, but the implementation has one major problem that makes it less than ideal for many cases: It puts a huge burden on the server, because the server has to calculate the MD5 sums on each block of each file it serves up, which is a CPU-intensive task. A machine which could easily handle a few dozen HTTP downloads at a time would choke with only a few rsync downloads.

      This is a problem with the implementation, not with the theory, because it wouldn't be that difficult for the rsync server to cache the MD5 sums so that it only had to calculate them once for each file (assuming it's downloading static content -- for dynamic content rsync will probably never make sense, particularly since we can probably expect bandwidth to increase faster than processing power). The server could even take advantage of 'idle' times to precalculate sums. Once it had all of the sums cached, serving files via rsync wouldn't be that much more costly in terms of CPU power than HTTP or FTP, and it would often be *much* more efficient in terms of bandwidth.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    4. 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!

    5. Re:how about rsync? by virtual_mps · · Score: 2, Insightful
      This is a problem with the implementation, not with the theory, because it wouldn't be that difficult for the rsync server to cache the MD5 sums so that it only had to calculate them once for each file


      rsync wasn't written by a moron. :) I think you'll find that fairly obvious optimization is patented, which is AFAIK why there's no rsync server mode that does it.
    6. Re:how about rsync? by virtual_mps · · Score: 2, Informative

      What's your error model? It must be pretty wacky, and therefore unbelievable.

      A 128-bit CRC will be exactly as reliable as an MD5 checksum under all common error models.


      Thank you for pointing out that crc's are designed to look for errors--since in this application the checksum is used to uniquely identify a block, not to check for errors. You've quite succinctly explained the reason crc's won't work.
  7. Http/Ftp which is slower? by emf · · Score: 3, Informative

    "HTTP is slower and less reliable than FTP"

    I would think FTP is slower since with FTP you have to login and build the data connection before the transfer begins. With HTTP it's a simple GET request.

    As far as the actual data being sent, I believe that the file is sent the same way with both protocols. (just send the data via a TCP connection). I could be wrong though.

    1. Re:Http/Ftp which is slower? by treat · · Score: 4, Informative
      an FTP session has two connections, the control which is TCP/IP and data which is UDP.

      This is not true. FTP does not use UDP fpr any purpose.

    2. Re:Http/Ftp which is slower? by DaveBarr · · Score: 5, Informative

      The data connection is most assuredly NOT UDP. It is a TCP connection just like the control connection. But yes, the latency required to initiate a transfer (due to more handshakes) generally makes FTP slower in general.

    3. Re:Http/Ftp which is slower? by Edgewize · · Score: 5, Informative

      FTP supports a single connection (Passive, or PASV in the actual protocol), which is what most web browsers use by default.

      No, no, no. Jesus. Everyone always gets this wrong. FTP in any mode uses two TCP connections. Passive or not, there is a channel for data and a separate channel for commands.

      The difference is that passive-mode means that the client initiates the data connection. The default FTP behavior is for the client to connect to port 21 on the server, and then the server initiates a data connection to the client.

      Non-passive FTP clients are very hard for firewalls to keep track of, especially when NAT is involved. Passive is a little better because both connections are outgoing.

      But at the same time, passive mode makes the server firewall's job tougher, because it requires an large range of incoming ports for the data connections.

      No matter what the mode, FTP is not very firewall-friendly.

  8. 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
    1. Re:well, what're you trying to do? by Fastolfe · · Score: 5, Informative

      Furthermore, FTP allows for features such as resume, etc...

      So does HTTP. With the 'Range' header, you can retrieve only a portion of a resource.

      I agree that it really depends on the application, but for most practical "view directory, download file" purposes, there's no significant difference.

      If you wanted to interact with a directory structure, change ownerships, create directories, remove files, etc., it's generally easier to do this with FTP.

    2. Re:well, what're you trying to do? by linuxhack · · Score: 2, Informative

      Furthermore, FTP allows for features such as resume, etc...

      HTTP 1.1 supports resuming. I have setup Apache to serve movie files that I can play over the network. I can seek back and forth throughout the movie.

  9. wow, that's tough. by Lt+Razak · · Score: 2

    do as mysql site does and others... supply links for both options

  10. 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?

  11. what are you serving again? by Telastyn · · Score: 3, Funny

    1-6mb files?
    heh, most 1-6mb files I see are on irc fserves :P

  12. for what its worlth by dunedan · · Score: 3, Informative

    Those of your customers who don't have fast access to the internet may appreciate even a slightly faster standard.

  13. Re:In my opinion, by captain_craptacular · · Score: 2, Offtopic

    Ahh, I always set hash on before command line ftping. Then I get to see the pretty #'s fly by...

    --
    They who would give up an essential liberty for temporary security, deserve neither liberty nor security
  14. HTTP is fine by ahknight · · Score: 4, Informative

    HTTP does not have firewall issues, does not need authentication, does not (by default) allow directory listings, and is the same speed as FTP. It's a good deal for general file distrubution.

    FTP is quickly becoming a special-needs protocol. If you need authentication, uploads, directory listings, accessability with interactive tools, etc. then this is for you. Mainly useful for web designers these days, IMO, since the site software packages can use the extra file metadata for synchronization. Other than that, it's a lot of connection overhead for a simple file.

    FTP does have one nice advantage that HTTP lacks: it can limit concurrent connections based on access privleges (500 anonymous and 100 real, etc.). Doesn't sound like you need that.

    Go with HTTP. Simple, quick, anonymous, generally foolproof.

    1. Re:HTTP is fine by Voytek · · Score: 5, Informative

      [SNIP]
      does not (by default) allow directory listings
      [SNIP]

      That is a dangerous and very incorrect assumption which has nothing to do with http and everything to do with your http server.

    2. Re:HTTP is fine by ahknight · · Score: 2, Informative

      Which is why I said "by default."

    3. Re:HTTP is fine by kwerle · · Score: 2, Informative

      FTP is quickly becoming a special-needs protocol. If you need authentication,

      Yeah, if you need CLEAR TEXT auth, FTP is for you. If you want SSL auth, maybe enable auth for your http server.

      uploads, directory listings,

      Which http can do fine, thanks.

      accessability with interactive tools, etc. then this is for you.

      Dunno about this.

      Mainly useful for web designers these days, IMO, since the site software packages can use the extra file metadata for synchronization.

      I'd push for SSL webdav in an instant...

      Sorry, but I live behind various firewalls and am sick to death of FTP. The sooner it dies, the better.

      (best not to take this post too seriously - FTP just really pisses me off)

    4. Re:HTTP is fine by qnonsense · · Score: 2, Informative

      But "by default" for what server? The HTTP protocol may or may not recommend DIR listings by default, but that's beside the point. Some servers allow it "by default," some don't. Check your server.

      --
      There comes a time in every man's life when he must say, "No mother! I do not want any more Jell-O!"
    5. Re:HTTP is fine by kasperd · · Score: 4, Informative

      The HTTP protocol may or may not recommend DIR listings by default

      No, the HTTP protocol does not even specify the concept of a directory listning. Some servers can generate an HTML file from the directory listning, but that is all up to the server, it can generate that file as it likes or even just serve an error.

      --

      Do you care about the security of your wireless mouse?
    6. Re:HTTP is fine by ahknight · · Score: 2, Interesting

      You're being awfully pedantic about what I said, but I suppose I can be equally pedantic in return...

      My layers are not "messed up" in any way. HTTP and FTP have everything to do with firewalls because the protocols have recommended ports they run on, and HTTP sticks to one port and, thus, can be easily allowed in firewalls. FTP's use of ports depends heavily on the protocol since it specifies the use of both incoming and outgoing connections on various ports for the whole schebang unless you use passive, which is a setting, and by far not the default. Even with passive, the protocol embeds ports and is generally firewall unfriendly to firewalls, hence me saysing FTP is not firewall friendly.

      Also, directory listings, as talked about elsewhere in this article, have a lot to do with HTTP as it does not have a specification for them whereas FTP does. It's a protocol thing.

      Oh, and you would turn on passive if you had firewall problems, but I'm assuming that to be a typo. Long day for me, too.

    7. Re:HTTP is fine by slim · · Score: 2, Informative

      The HTTP protocol may or may not recommend DIR listings by default

      No, the HTTP protocol does not even specify the concept of a directory listning. Some servers can generate an HTML file from the directory listning, but that is all up to the server, it can generate that file as it likes or even just serve an error.

      Exactly right, and the point is that there is no explicit standard (the may be a few de-facto standards) to say what an HTML directory listing looks like, so coding the equivalent of an FTP client's "mget" command becomes a new job for every site.

      My advice is, if you think your users would like mget or its equivalent, then either give them FTP or think hard about how you could provide the same functionality using HTTP/HTML.

      If they don't need mget, HTTP might be fine.

    8. Re:HTTP is fine by slim · · Score: 2, Informative

      Not if you do it right the first time. Surely directory listnings generated by different servers looks different, but all of those I have seen had one thing in common: They contains links to the files in the directory. So to produce a directory listning from the HTML file is not really a problem if you only need filenames. Just parse the HTML documents and find all links. Remove those links not pointing to files in the directory in question, and remove doubles if any. And once you actually get the files, be prepared to handle nonexisting files correctly.

      It can be done, but it can't be done /trivially/ and the scope for automation is limited. There's nothing /explicit/ in the HTML that states categorically that it's a directory listing, for example, so you need some kind of human input to say "yes, this is a directory listing, use it as a list of stuff to fetch", or "no, this is data I want, fetch it and save it".

      And, more to the point, although there are tools to let you "get everything linked off this chunk of HTML", they're not ubiquitous the way mget is.

  15. "Files," eh? by Anonymous+DWord · · Score: 5, Funny

    1 to 6 megs, huh? Why not use Kazaa like everybody else? :-P

    --
    "If he thinks he can hide and run from the United States and our allies, he's sorely mistaken." Bush on bin Laden
    1. Re:"Files," eh? by yaiba · · Score: 2, Interesting

      kazaa sucks try OpenFT much better then kazaa

  16. Security is the only worry by brokenin2 · · Score: 2, Informative
    If you're just looking to transfer files back and forth, then FTP is the way to go.. If you only want to send out files, you might want to stick with the warm fuzzy feeling by knowing you've only got apache exposed to the outside world.


    We run ftp, but we have to have people send us files, and also distribute them on a regular basis.The client software available for doing the sending and receiving on a regular basis is a lot better for FTP.. it's pretty klunky, but it is very doable for http.


    We just choose to stay on top of our ftp updates.

  17. Boy do I feel the pain... by Anonvmous+Coward · · Score: 5, Funny

    "HTTP is amateur and will make you look a wimp"

    You really gotta watch out for things like this. I know one guy that got a 'click me' sign on his back because he used HTTP instead of FTP.

  18. 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.

  19. What do you want to do? by fwankypoo · · Score: 5, Informative

    The question is, "what do you want to do?" I run an FTP server (incidentally affiliated with etree.org, lossless live music!) and I need what it can give me. Namely I need multiple classes of login, each with a different

    1) number of available slots
    2) speed limit
    3) premission set

    Some people can only read files at 60KB/s, some can read and write (to the upload dir) at the same speed, come can only browse, etc. etc. For this kind of a setup, FTP is great _IF_ you keep your software up to date; subscribe to bugtraq or your distro's security bulletin or both.

    On the other hand, HTTP is great when you want to give lots of people unlimited ANONYMOUS access to something. I'm sure there is a way to throttle bandwidth, but can you do it on a class by class basis? In proftpd it's a simple "RateReadBPS xxx" and I'm set.

    As always, choose the tool that fits _your_ purpose, not the one that everyone says is "best"; they both have good and bad qualities. And http can be just as secure/insecure as any other protocol.

    --
    The time of day is 29:33.
  20. SCP by elliotj · · Score: 5, Interesting

    If you're only offering files to a group of users who you can give passwords to, you could even use SCP. (Secure copy...uses sshd on the server side)

    It all depends on the application. I only use SCP to move files around if I have the choice, just because I like better security if I can have it.

    But if you want to offer files to the public, I'd recommend offering both FTP and HTTP so people can use the most convenient.

  21. Re:FTP by molarmass192 · · Score: 2, Informative

    wget does both and does it well.
    http://www.gnu.org/software/wget/wget.html

    --

    Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
  22. 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.

  23. 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.
  24. ftp has more features by AnEmbodiedMind · · Score: 2, Informative

    FTP provides you with user authentication, and binary transfers (which should be faster as there is no encoding??) It can also be linked to via the web, so there's not too much hassle for the user...

    On the other hand, if you don't need user authentication - and don't want to off load big file transfers from your web-server, you may as well just leave it as http.

  25. FTP vs HTTP by The_Rippa · · Score: 2, Insightful

    I run into this dilemna constantly. I've found that HTTP is more reliable for downloads for intranet applications. When I build something in VB I try to use FTP, because I have better control of what's going on. For file uploads, of course, FTP is definitely the way to go. As for speed, I think FTP is technically faster, but HTTP throught the browser has the added bonus of showing you how much time is left on the download, making it SEEM to go faster. Basically, if the file is something that doesn't need to be secure, I'd use HTTP if speed isn't an issue (ie: intranet only or broadband connections mostly), otherwise, I'd go with FTP.

  26. Security by Devil's+BSD · · Score: 2, Insightful

    If you're looking for security, look into sftp, part of the openssh package. It uses the same encryption as SSH, is secure, yadayada. The only drawback is that windoze users have to get the sftp client to connect to an sftp server. Our school is considering adding sftp to the student fileserver so that we can access files from home without risk of attack.

    --
    I'm the Devil the Windows users warned you about.
  27. Re:In my opinion, by Dragonmaster+Lou · · Score: 2, Informative

    ncftp is a command-line client that shows you your download progress.

  28. Says who? by jafo · · Score: 2, Informative

    Anyone who says that HTTP is slower and less reliable than FTP probably hasn't done any benchmarking. Based on my experience, HTTP is definitely more reliable if only because it tends to go through firewalls easier then the two-connection FTP protocol.

    Both FTP and HTTP stream data across a TCP socket -- I can't see that streaming it over port 20 versus 80 is going to make any difference.

    FTP was designed to be able to do all these neat things back when the internet didn't have so many security issues. Most of these features are either not used or explicitly disabled these days... The fact that the FTP server uses a different port means that firewall have to understand and properly be configured for this. HTTP sends the data back in response to the initial connection, so it tends to be easier to get through firewalls.

    If you're concerned about looking like a "wimp", then you should offer both and let people pick what they prefer. Or... Stop worrying about what people these people think and figure out what YOU think is best.

    The people who would call you a "wimp" probably aren't worth worrying about.

    Sean

  29. WebDAV? by Kevinv · · Score: 2, Insightful

    How about implementing a webdav solution? You can get away from clear-text passwords, users can mount them like a drive on Mac, Windows and Linux (via DAVfs, http://freshmeat.net/projects/davfs/?topic_id=143% 2C90 )

    Still have some of the unreliablity of HTTP transfers and slowness. But works a lot better through firewalls (and more securely since connection tracking works better with WebDAV).

    I've found Passive Mode FTP to also be more unstable than standard ftp transfers.

  30. TFTP, definitely TFTP by mekkab · · Score: 2, Funny

    Which one to choose? Why, its trivial!

    --
    In the future, I would want to not be isolated from my friends in the Space Station.
  31. 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.

  32. My experience.... by ruckc · · Score: 2, Informative

    My experience with FTP/HTTP is due to FTP's authentication it responds slower and is harder to configure, whereas HTTP has near instant authentication & is more easily multithreaded on downloads.

  33. FTP does text better by Fastolfe · · Score: 2, Insightful

    FTP has generally better support for transferring plain-text. By downloading a document using the ASCII protocol, FTP automatically fixes up newline conventions to match your native OS. HTTP doesn't do that and requires user agents to respect most every ASCII-based newline convention. Unless your user agent is really intelligent in that regard and fixes up newlines automagically, you'll probably end up with text using newlines incompatible with your environment.

    This is one area that I feel HTTP was deliberately weak on. I can't see any reason why HTTP couldn't require any text/* media type to be sent in a canonical format, with "network" newlines. If every Internet transport protocol did this properly, there would never be a situation where you have a file on your computer using the wrong type of newline.

    1. Re:FTP does text better by SN74S181 · · Score: 3, Insightful

      I like file transfer protocols to not mess with the contents of the files. I think your suggestion of servers automagically modifying textfiles to some 'canonical format' would be a nightmare.

  34. Use ZMODEM !! by boy_afraid · · Score: 4, Funny

    Come on people, use the Z-Modem protocol. It can resume transmission on a file transfer where HTTP or FTP can not. The only way a FTP or HTTP can resume transmission is with the GetRight tool.

    I remember in my days of BBSes with X and Y Modem, and then when Z-Modem showed up we all couldn't be happier. When some idiot in the house picked up the phone and disconnected you from hours and hours of downloading the latest Liesure Suite Larry, I just reconnected and started to resume my downloads (but only if I had enough credit, then I might have to upload some crap). :) HA HA!

  35. Re:My opinion by caino59 · · Score: 2, Informative

    IE will resume a d/l too, providing the temp file is still in cache

  36. Change it to, Ask slashdot to do my job. by Neck_of_the_Woods · · Score: 4, Funny


    Why do we have all these new ask slashdot question that sounds like a tech with a years experience is asking how to do his job?

    I vote for a new section, "How do I do my job" with a dollar bill as the logo.

    --
    Neck_of_the_Woods
    #/usr/local/surf/glassy/overhead
  37. Hint: If they talk like that, they're not experts. by Kitanin · · Score: 2, Informative

    (Cleaning up the text a bit)

    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
    3. FTP is full of security holes; and
    4. FTP is a crumbling legacy protocol and will make you look a dinosaur.

    Well, 2 and 4 are nothing more than acephalic punditry, unworthy of our attention, which leaves 1 and 3.

    The fact that HTTP doesn't use a binary connection to transfer binary files means that, yes, it is frequently slower than FTP. Especially since your listed file sizes imply that you're not offering text files for download.

    While FTP doesn't have any security holes (Yay for false generalisations!), many of the readily available ftp daemons have had shaky track records in the security area.

    I don't really have an answer for you, I just wanted to say acephalic. :-) Acephalic acephalic acephalic...

    --


    Teach your kids: "C++ made baby Jesus cry."
  38. Both... by idontgno · · Score: 3, Insightful
    If you can support the risk. (FTP is possibly more risky, because you're allowing access to something approaching the interactivity of a shell session in the FTP command session.)

    HTTP "upload" is trickier than FTP upload, if that's a factor.

    FTP is full of security holes
    Computers are full of security holes. Both webservers and FTP daemons have the risk (and history) of 'sploitable holes. As to configuration-related risk, there's more inherent in the default configuration of an FTP server, since its original concept of ops is browsing a physical directory tree, but most current FTP servers can be locked down as tight as any webserver.
    FTP is a crumbling legacy protocol and will make you look a dinosaur. HTTP is amateur and will make you look a wimp.
    Just can't win, can you? Only posers worry that their choice of protocol might look bad. It's not fashion, folks.

    If you had to support only one, pick HTTP, since I bet you're already running a webserver. And if it's really about fashion, run an exotic protocol like CORBA or SCP or something.

    --
    Welcome to the Panopticon. Used to be a prison, now it's your home.
  39. FTP _MUCH_ faster than HTTP by trandles · · Score: 3, Informative

    It is possible to get approximately 80% of the theoretical maximum throughput of your pipe using a single FTP connection, whereas HTTP can hope for around 60% max for a single connection. The only thing faster than an FTP-based protocol (tftp, pftp) is a raw socket, and they rarely get better then 90%. Most schemes like pftp (parallel ftp, see this paper) are implemented to get as close to theoretical maximum throughput by having multiple data connections transfer the file. Of course you'll see the difference in performance more for large file transfers. The previous comment about HTTP being OK for small files is right on the mark...you will hardly notice a 20% gain when the transfers are only taking a few seconds.

  40. Ahem. by kyz · · Score: 2, Informative

    I use two programs to retrieve files, wget and Mozilla. Both show the download rate whether I'm fetching from HTTP or FTP.

    What bugs me is when servers won't tell me the final downloaded file size -- no ETA available. I've seen both FTP and HTTP servers do it. The same goes for servers that don't support resuming or last-modified dates. They suck.

    --
    Does my bum look big in this?
  41. OR, How about... by Anenga · · Score: 5, Informative

    P2P?

    I've written a tutorial on how you can use P2P on your website to save bandwidth, space etc. An obvious way to do this would be to run a P2P client and share the file on a simple PC & Cable Modem. This works, but it is a bit generic and un-professional. A better way to do this may be to run a P2P client such as Shareaza on a webserver. You could then control the client using some type of remote service (Terminal Services, for example).

    P2P has it's advantages. Such as:
    - Users who download the file also share it. This is especially useful if the client/network supports Partial File Sharing.
    - When you release the file using the P2P client, you only need to upload to only a few users. Those users can then share the file using Partial File Sharing etc.
    - Unlike FTP and HTTP, they aren't connecting to your webserver. Thus, it saves bandwidth for you and allows people to browse your website for actual content, not media. (Though, media is content). In addition, there is ussually "Max # of Connections" allowed to a server or FTP. Not so on P2P.
    - P2P Clients have good queuing tools. At least, Shareaza does. It has a "Small Queue" and a "Large Queue". This basically allows you to have, say, 4 Upload slots for Large Files (Files that are above 10MB, for example) and one for Small Files (Under 10MB). Users who are waiting to download from you can wait in "Queue", instead of "Max users connected" on FTP.

    Though, at it's core, all of the P2P I know of uses HTTP to send files etc. But the network layer helps file distribution tremendously.

    1. Re:OR, How about... by mlinksva · · Score: 3, Interesting
      Excellent tutorial overall, save the sniping at non-Shareaza Gnutella clients. The great thing about MAGNET is that it is client/network agnostic. Shareaza was the first client to support MAGNET and it's an excellent program, but it isn't the only one (at least Xolox does right now, with several others either recently or very soon to be added). The part about disallowing uploads to non-Shareaza clients is completely bogus -- allowing others to download a) doesn't prevent other Shareaza users from downloading and b) limits the number of people you'll be able to distribute content to in a cost effective P2P manner. BTW, you can share your content with any modern Gnutella client (i.e., allows download by hash), and it will be available to people using MAGNET, even if the sharing client doesn't support MAGNET yet.

      Also, you forgot the first and biggest site with MAGNET links. Still, an excellent tutorial, thanks for writing it!

  42. Ah, FTP by Richard+W.M.+Jones · · Score: 2, Funny
    As the co-author of a moderately popular FTP server, I think it's a great shame that FTP is regarded as a second-class citizen in the world of the web.

    FTP is a quirky, extensible protocol, great for uploading, downloading and sharing files, and you can do wonderful things with FTP and databases which web servers only dream about.

    Rich.

  43. FTP's statefulness by sethadam1 · · Score: 2, Insightful

    HTTP is stateless and FTP is stateful, yes. However, the "overhead" required for a stateful connection is not going to cause a slowdown in transfer except possibly an the onset for the authentication. Stateles IP protocols don't have persistent connections, they shoot packets out and don't care about the receiving end because they assume that IP devices in the middle or the end will ensure delivery and proper resequencing. Stateful protocols keep an active connection and this is supposed to be faster. After all, ATM's big hold over, say DS3 and T1 lines, is that they open a pipeline and shoot data downstream. It is "connection oriented," like a phone call.

    My suggestion would be to go with FTP if the size is anything above a few MB for administrative reasons. HTTP doesn't allow you to limit connections and bandwidth could be incidentally mashed into virtually nothing per user. You can limit not only the number of active downloads, but even who can download if you wanted.

    Think of almost every Linux distribution - they use FTP. Why? Ever tried downloading something, connected at a smooth 100k/s or something and found, a few minutes later, you're pulling 2k/s? That USUALLY doesn't happen with FTP. Once you're in, you're in.

    If you have tiny files, of course, logic dictates you go with HTTP. But for anything of size, do *yourself* a favor and go with FTP.

    Adam

  44. I don't believe there is anonymous sftp... by emil · · Score: 4, Interesting

    What I don't care for with FTP is the continuous setup/teardown of data connections. What is even worse with active FTP is that the client side of the data connection establishes server ports, and the server becomes the client (I'd like to be able to use plug-gw from the TIS FWTK for FTP, but this is not possible for the data connections). However, even when enabling passive FTP, the data connections are too prone to lockup. The difficulty of implementing all of this in C probably contributes to the FTP server vulnerabilities.

    Still, if you want both (optionally anonymous) upload ability and access from a web browser, FTP is the only game in town.

    From the network perspective, the rsh/rcp mechanism is cleaner (in that there is only one connection), but it still has the problem of either passing cleartext authentication or establishing unreasonable levels of trust with trivial authentication. In addition, with rcp syntax you must know much more about the path to a file, and there is no real "browsing."

    Many say that SSH is the panacea for these problems, but sometimes I am not concerned about encryption and I just want to quickly transfer a file. The SSH man pages indicate that encryption can be disabled, but I have never been able to make this work. SCP also has never been implemented in a browser for file transfers. I should also say that I've never used sftp, because it has so little support.

    Someday, we will have a good, encrypted file transfer protocol (and reliable implementations of that protocol). Sorry to say, but ftp, rcp, and scp are not it. What will this new protocol support?

    1. Stateless operation a la NFS and FSP.
    2. Unlike early (non-V3) NFS, selection of either TCP or UDP for lossy or non-lossy networks.
    3. Support for a centralized authentication key repository (a la Verisign), but support also for locally-defined, non-registered keys.
    4. Support for both encrypted and non-encrypted transfers.
    5. Multiple client connections per server, possibly implemented with threads (do not spawn one server process per client a la Samba, ftpd, httpd, etc.).
    6. Support for chroot operation on UNIX, without the need for implementing /bin/ls, libc, passwd, et al.
    7. And, of course, we need to keep compression.

    Boy, I never thought that I could rant about file transfer software for so long!

    1. Re:I don't believe there is anonymous sftp... by emil · · Score: 2, Insightful

      http support for self-signed keys is weak - it complains too much.

      http upload is weak, and the method to accomplish an http upload is akward.

      Why would I want to use UDP? Don't you imagine that there were performance reasons behind the choice of UDP for NFS?

      cli support for http is weak - show me how you upload with wget.

      Since when did Apache run chroot?

      Funny, I don't remember linking in zlib for compressed http streams the last time I built apache (let alone bzip2)...

  45. 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
  46. Convenience's sake... by Anonymous Coward · · Score: 2, Insightful

    From the end-user's perspective, downloading via http is more convenient, especially if you're on a corporate network and have to go thru Squid proxy since ftp-by-browser-thru-squid just sucks.

  47. People are more likely to find the files on HTTP by weeble · · Score: 3, Insightful

    As far as I know Google does not spider ftp archives. Therefore if you want people to be able to search for all the files offered (including inside word processing documents and PDFs) then you are better going with http.

    I think that the ability for people to find the files using a search engine outweigh the other considerations if you are seeking to make the files public.

    :-)

    --
    Slashdot Beta should die a painful death.
  48. HTTP vs FTP by piranha(jpl) · · Score: 2, Informative

    Each has their place.

    FTP was designed for interfacing with the filesystem of a remote Unix system, with the filesystem permissions that are granted to the user you log in as. FTP lets you browse the hierarchy, including examining ownership, permission, and symlink targets; pretty much the same as what you get with 'ls -l'. Apache does file listings, but only shows file names, last modification dates, and size. This makes FTP more suitable than HTTP for remote mirroring of directory trees. This also makes it easier to "browse" what an FTP server has to offer, on a directory-by-directory basis.

    With FTP, the server prints a response when a client connects. Usually, the client sends a user name, password, the 'SYST' command, and asks for the current working directory, tells the server what mode (ASCII or binary) it wants, changes to the directory with the file it needs, sends a PORT command, then finally requests the file. With HTTP, the client connects, sends a request, and the server responds. That's 8 client commands and 9 server responses with FTP, as opposed to 1/1 with HTTP. Each time a command is sent, the client has to wait for the server to respond. The latency adds up, and that means, especially on high-latency connections, FTP is slower to initiate and begin downloading than HTTP. Who said HTTP is slower?

    Regarding reliability, both protocols and modern implementations of their clients and servers have features to resume a broken download from where it left off. Who says one is more reliable than the other?

    HTTP is more simple than FTP. As far as I can tell, in FTP "active mode", the client sends a PORT command with an IP address and port number that is listening. In "passive mode", the server sends an IP address and port number that is listening, after the PASV command. These address/port combinations are used for the actual file transfer.

    Active mode doesn't work if there is NAT between the client and the server, unless the NAT system rewrites the packets so that the IP address the server sees in the PORT command is the outside, external address of the NAT system. When an FTP server is behind NAT, passive mode cannot be used without a similar kluge; it must get an outside-world IP address to connect to from the client, which active-mode PORT does. If both client and server are behind NAT, then one of these NAT kluges must be in effect for file transfer to be possible.

    This address/port nonsense could be part of the security concern with FTP. I also believe older FTP implementations allowed the client (in active mode) or server (in passive mode) to specify arbitrary address/port combinations, so that the FTP server or client could be used as a proxy in an attack. Is this still the case?

    With HTTP, transfers are conducted on the same TCP connection as control is on, and therefore doesn't need to concern itself with IP addresses and ports, and the people using it have fewer NAT headaches.

  49. Re:No, by sweetooth · · Score: 3, Insightful

    Connecting to multiple servers to download a file is great. Getting six connections from one client to one server is a royal pain, and is one of the reasons some admins have taken to blocking download managers. Getting multiple connections from one client can reduce the number of total users that can be served and is the biggest drawback to allowing download managers.

  50. Why /.? by Piquan · · Score: 4, Funny

    Let me get this straight. You went to search the web and got conflicting, likely ill-informed, and inconclusive reports. So you went to Slashdot?

  51. Depends on the situation. by SWPadnos · · Score: 3, Informative

    As many people have said, it depends.

    FTP has a great advantage in that you can request multiple files at the same time: mget instead of get. Additionally, you can use wildcards in the names, so you can select categories / directories of files with very short commands. (mget *.mp3 *.m3u ...)

    Modern browsers allow you to transfer multiple files simultaneously, but they don't queue files for you - FTP will. This may be important if connections might get dropped - the FTP transfer will complete the first file, then move on to the next. In the event of an interruption, you will have some complete files, and one partial (which you can likely resume). For multiple simultaneous transfers - from an http browser - you may have some smaller files finished, but it's likely that all larger files will be partials, and will need to be retransmitted in their entirety, since http doesn't quite support resuming a previous download.

    So, if you're going to have a web page with many individual links, and you think that most people will download one or two files, http will probably suffice. If you expect people to want multiple files, or that they will want to be able to select groups of files with wildcards (tortuous with pointy-clicky things), then you should have FTP.

    It's not that hard to set up both, and that's probably the best solution.

    --
    - The Sigless Wonder
  52. Look at all the stupid answers... by PincheGab · · Score: 2, Funny
    Why is it that some /. questions posted are so dang stupid? We are seeing so many stupid and smart-assed answers because the questions is so awfully phrased. We are not made aware of the context of the use, the kinds of people doing the downloading, the download material, security requirements, the implementor skillset/proficiency, the other existing technology at the server location, the technology used to download, etc... In short, all the information really necessary to recommend any download method halfway seriously.

    So we are left to be smart-assed and provide shots in the dark as to what the "best" solution is to this.

  53. Re:My opinion by greenrom · · Score: 2, Interesting
    Well, there is one big security difference I can think of. Assuming you want to password protect your files, FTP authentication is sent as plaintext so anyone with a sniffer could recover the username and password. With HTTP, you have the option of digest authentication which only sends a MD5 hash of the username, password, and some other unique information.

    Of course, since these days most networks use switches instead of hubs, one has to wonder how much of a security risk sniffers are anyway. I guess there's always the possibility of ARP poisoning or some rogue router between the source and destination, but honestly, how likely is that? I guess it just depends on how secure you need your data to be.

  54. Re:No, by jez9999 · · Score: 3, Insightful

    And I've never understood why they think that opening up 6 connections when downloading a file would be quicker than just one. Quite apart from the fact that that insane kind of tactic can get your IP banned from some HTTP servers.

  55. My favorite ftp client by whovian · · Score: 2, Informative

    is ncftp. It's got filename completion and all the file shell commands. I resort to it when mozilla chokes (which is most of the time) -- especially when getting large files.

    --
    To-do List: Receive telemarketing call during a tornado warning. Check.
  56. Re:Different, not better or wose by Anonymous Coward · · Score: 5, Interesting

    Everyone disables the only unique thing FTP can do (third-party transfers) to prevent a variety of attacks by proxy. It might be worth accomodating decrepit machines that lack HTTP clients, but there are no actual advantages to using FTP.

  57. 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

  58. HTTP, hands down by Percy_Blakeney · · Score: 5, Informative
    As I understand it, your requirements are:

    1. Download only
    2. 1-6 MB files

      I also assume the following:

    3. You don't need intricate access controls
    4. Non-technical to Somewhat-technical users

    I would say that you should go with HTTP for sure. Of course, you can provide both, but there are some key reasons for using HTTP.

    Easier Configuration Perhaps I'm just not that swift, but I've found that web servers (including Apache) are easier to configure. This is especially true if you have any previous web server experience. Of course, the FTP server is more complex due to its additional features that HTTP doesn't have, but assuming that (c) is true, then you won't need to mess with group access control rights and file uploads.

    Speed This whole "FTP is faster" stuff is not true. HTTP does not have a lot more overhead than FTP; it may even have less overhead than FTP in certain cases. Even when it does have more overhead, it is in the order of 100-200 bytes, which is too small to care about. HTTP always uses binary transfers and just spits out the whole file on the same connection as the request. FTP needs to build a data connection for every single data transfer, which can slow things down and even occasionally introduce problems.

    Easier for Users Given assumption (d), your users will be much more familiar with HTTP URLs than FTP addresses. You could just use FTP URLs and let their web browsers download the files, but then you lose the benefit of resuming partial downloads.

    Simple Access Controls Though some people need to have complex user access rules, you may very well just need simple access controls. HTTP provides this (look at Apache's .htaccess file), and you can even integrate Apache's authentication routines into PAM, if you are really hard core.

    There are a few main areas where FTP currently holds sway:

    Partial Downloads Web browsers typically don't support partial downloads, but the fact of the matter is that the HTTP protocol does support it (see the Range header.) The next generation of web browsers may very well include this feature.

    User Controls Addressed above.

    File Uploads Again, HTTP does support this feature but most browsers don't support it well. Look to WebDAV in the future to provide better support.

    In summary, just use HTTP unless you need complex access rules, resumption of partial download, or file uploading. It will be easier both on you and your users.

  59. FTAM! by mabinogi · · Score: 2, Interesting

    We had a client a few years ago (about 1998), that we needed to set up data transfer for.
    IBMGSA were running their IT systems, and they decided that FTAM (over OSI) was the way to go, citing FTP's supposed lack of reliability, and lack of features such as resume...

    They were absolutely serious when they said that too.....

    We eventually managed to get the whole setup working (FTAM, OSI, X.25 over an ISDN link)...but it was the most unreliable, cryptic, complicated system I've ever had to deal with...
    A couple of years later, the client ditched IBMGSA, and the company that took over their systems took one look at the FTAM / OSI mess, and threw it out and replaced it with FTP over TCP/IP, and we've never had another problem.

    --
    Advanced users are users too!
  60. even better by lactose99 · · Score: 2, Funny

    just do what I do and mail people newly-obseleted floppy disks

    --
    Fully licensed blockchain psychiatrist
  61. College blocking ftp? by ende · · Score: 4, Interesting

    I would say go with http.. my reason is simple.. my college blocks ftp! There are two sides of the story, first off, the complete blocking of ftp started a week ago when they switched firewalls.. they couldn't get the ftp to work, and they decided it wasn't a high priority so they didn't do anything to fix it... After yelling at the IT department for half the day I got the priority up. But besides that.. Even before, when they allowed ftp, it was only active ftp.. I was unable to go to a website, click on a file that is served from ftp:// and download it! I'd have to use flashfxp or another client to d/l files.. I was able to figure that out quickly, but what about the other 99% of the school that wants to download say shareware from download.com or a driver from somewhere.. they are denied! FTP is a superior protocol for file transfer in my opinion, but administrators don't seem to care about it as much as they do http.

    1. Re:College blocking ftp? by The+Ape+With+No+Name · · Score: 2, Funny

      "After yelling at the IT department for half the day"

      You were added to the watch list and the administrators went about doing something more important.

      --
      Comparing it to Windows will be a moot point, since El Dorado is going to have a 40% larger code base than XP.
  62. Re:Different, not better or wose by Anonymous Coward · · Score: 5, Interesting

    They serve different purposes, and each was designed to meet those needs. Each one has its own positives and negatives.

    True, but ftp has far more negatives. The connection model ftp uses, in which the server connects back to the client for data transfers, is a horrible idea. Surely, there must be a benefit to this method (or else why would ftp have become such a standard?), but I've yet to hear it. Passive ftp (PASV) is supposed to compensate for the fact that clients behind NAT can't use ftp, and passive is pretty much supported everywhere now. But passive doesn't solve the problem of many-connections, it just shifts it: With passive ftp, there is still a seperate "data" connection for every file transfer, or transfer of directory contents. It's just that with passive ftp the data connection is initiated by the client to some high-numbered port on the server. This allows clients behind NAT to do ftp, but it makes firewalling the server a pain in the ass, especially if the server is (god forbid) behind nat itself. It's relatively easy to setup a mailserver, or webserver, or ssh server, on a machine behind nat (assuming you can forward ports on the nat gateway). But try doing the same with ftp. Passive connections won't work, unless the ftpd is configured to only use a certain range of high ports for it's data connection, and the firewall forwards that entire range. You'd think with all these connections, the protocol might support multiple connections from one login, ie list another directory while downloading. Well, thats not the case at all, you have to login again if you want simultaneous transactions.

    And then if you want tunneled connections... oh boy, what a pain in the ass:

    I set this all up for someone recently, and it DOES finally work, with tunneled passive ftp connections to a proftpd server behind a nat gateway, but it was a big pain. Due to the way proftpd works (not sure about other daemons...) the passive connections are directed to the interface the client is connected to. So, with an ssh tunneled connection, proftpd sees the client connection TO 127.0.0.1 (because thats where sshd is). So it tells the client, connect back to me for the data connection, my IP is 127.0.0.1. And the client tries to connect to itself, and fails saying "can't open data connection". The solution was to point the tunnel not to 127.0.0.1, but to the external IP, and have the nat gateway forward internal traffic back to itself. So traffic comes in over ssh, over to the firewallwall (where the nat rewriting happens), and then back to the same machine for ftp.

    If people could just use sFTP clients, this wouldn't be an issue _at_all_ (One client connection, one tcp connection! Hey, what a concept!). But due to the integrated ftp clients in programs like bbedit and dreamweaver, I suspect we'll be dealing with that bastard protocol known as ftp for quite a long time....

    Damn, reading back over this, I'm kind of ranting. BUT ITS ALL TRUE!
    Sorry bout that.
    [X] Post Anonymously

  63. Re:No, by Guspaz · · Score: 3, Interesting

    Because you get a larger share of the bandwidth pie. This applies both on the server end, and your ISP end. If you have bandwidth to spare, you can get 6 (or 8, or 10, depends on the client) users worth of bandwidth because each connection is treated by the server as seperate. On the other hand if you have a slow ISP, you can get a larger share of your ISP's bandwidth.

    I have 3.5mbit DSL, but my ISP's performance is flaky. However, I have no problem pulling 300-350KB/s with a download accelerator.

  64. 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...

  65. FTP *is* obsolete by Gunzour · · Score: 2, Interesting
    I think my answer to the question is: use both if possible.

    But the question brings up another point: FTP is a rather cumbersome protocol for transferring files. Ok, so you have two separate connections for entering commands and for sending data. Why then can I not enter any commands while data is being transferred?? Some FTP clients simulate this capability by open multiple control connections, but it really should be built into the protocol, IMHO.

    HTTP was designed for small text file transfers, and not really for bigger files (although it does usually handle them pretty well).

    I propose an "FTP2" protocol. This protocol will have the following features over and above the original FTP protocol:

    Control connection is fully functional even when data is being transferred

    Multiple data connections are allowed for each control connection (configurable by server operator)

    Ability to queue files for download

    Separate server-wide limits on control and data connections (for example, so I can log in and look around even if all data connections are used up. If I try to download something, it is queued until a data connection frees up. This puts an end to hammering on anon-ftp servers.)

    Modular authentication -- ability to support authentication methods other than clear-text passwords

    Support for encrypted connections

    No server connecting to the client to establish a data connection, eliminating most firewall and NAT problems

    MIME-type support, rather than clunky BIN/ASCII modes.

  66. What ever happened to fsp? by weave · · Score: 2, Interesting
    What ever happened to fsp? I remember for a while in the early 90s I believe, we (I am a sysadmin at a college) had quite a few problems with students running fsp servers out of their unix accounts. fsp uses udp, not tcp, and sat on a >1024 port so any user could run one and since it wasn't listening on a tcp socket, it didn't stick out as much as other file transfer servers.

    I'm not suggesting this is the answer to your problem, I haven't seen any GUI-based fsp clients (or a unix cli one for ages for that matter).

    But it did seem very useful for what it was designed to do, serve out large files to anonymous outsiders.

  67. didn't you hear? by cygnus · · Score: 3, Funny
    John Doe wants a clickety-click-drag-n-drop client,
    didn't you hear? "john doe" changed his name to "joe sixpack," so we can ridicule his deficiencies more.
    --
    Just raise the taxes on crack.
  68. Pay attention to what you say, please. by David+Gould · · Score: 2, Insightful


    Imagine a time when you want to download DeCSS for your linux boxen from a foreign server, but someone is logging your downloads Verizon and the RIAA wants access to those records

    Why in Hell would the Recording Industry Association of America care who has software to break the DVD Content Scrambling System? They market music on CDs, not movies on DVDs.

    Or did you mean to say MPAA?

    Yeah, yeah, it's just a careless error, but things like this make us all sound like a bunch of idiots. If we can't even keep track of which evil corporate organization goes with which issue, then how is anyone supposed to take us seriously?

    --
    David Gould
    main(i){putchar(340056100>>(i-1)*5&31|!!(i<6)<< 6)&&main(++i);}
  69. My experiences with FTP and HTTP downloads by argonaut · · Score: 5, Informative

    Being in IT for a large Fortune 500 company that sells an operating system among other things (no, not Microsoft), I can share some of my expereinces with you. So take it for what it is worth.

    Our FTP servers run both HTTP and FTP providing the same content in the same directory structure. There are five servers that transfer an average of 1-2 TB (terabyte) per month each, so they are fairly busy. On a busy month each server can go as high as 7 TB of data transferred. File sizes range from 1 KB to to whole CD-ROM and DVD-ROM images. I think the single largest file is 3 GB.

    The logs show a trend of HTTP becoming more popular for the last several years and not stopping. It is currently at 70% of all downloads from the "FTP" servers via HTTP. While the remaining 30% is via FTP. Six years ago (I lost the logs from before this time, they are on a backup tape but I am way too lazy to get that data), it was completely reversed. 75% of downloads were via FTP and 25% were via HTTP. 90% of all transfers are done with a web browser as opposed to an FTP client or wget or something.

    One thing we learned was that many system administrators will download via FTP from the command line directly from the FTP server, especially during a crisis they are trying to resolve. They do this from the system itself and not a workstation. The reasons for this are a bit of a mystery. Feedback has shown that we should never get rid of this or we might be assassinated by our customers. We thought about it once and put out feelers.

    I would say if you don't need to deal with incoming files and you file size is not too large then stick with HTTP. Anything over about 10 MB should go to the FTP server. An FTP server can be more complicated. It seems like the vulnerabilities in FTP daemons has died down in the past year or so. Also, fronting an FTP server with a Layer 4 switch was a lot more tricky because of all the ports involved. If you want people to mirror you then go with FTP or rsync for private mirroring. In reading the feedback, most power users seem to prefer FTP, perhaps because that is what they are used to. Also, depending on the amount of traffic you might need to consider gigabit ethernet.

    The core dumps being uploaded are getting to be huge. Some of those systems have a lot of memory!

  70. Re:My opinion by snol · · Score: 3, Informative

    It'd be nice if Phoenix and Mozilla would acquire that ability. For some reason the developers' stated position is that it won't happen anytime soon, but one can always vote for the bug anyway.

  71. HTTP simultaneous connections are expensive. by androse · · Score: 3, Informative

    The problem with using HTTP for large file downloads is that, in most cases, it's cheaper ressource-wise to span multiple FTP simultaneous connections than HTTP connections. Of course, this only becomes a real problem if you have more than a few hundred virtual hosts on a single box. So save your httpd processes, and use FTP for large files.

  72. Re:Different, not better or wose by alangmead · · Score: 5, Interesting

    In FTP the sender connects to the receiver, but client issuing commands does not have to be either of those two machines. As designed, FTP should be able to allow a client to send data between two arbitrary machines. Its an infrequently used feature, and I'm not sure if it is implemented by all clients, but it is, technically, a feature that HTTP doesn't have.

  73. The reason is simple: congestion! by ZorinLynx · · Score: 5, Informative

    Starting multiple TCP connections for a single file download can be advantageous, because of congested network paths.

    If there are 500 TCP downloads ocurring, each download will theoretically get 1/500th the bandwidth.

    Therefore, by opening multiple TCP connections, you will increase the amount of bandwidth for your transfer, at a cost to everyone else using the connection. This is because you've effectively doubled the size of your receive window (one for each connection), causing the host you are downloading from to stuff that many more packets down the pipe.

    The problem is, when everyone does it, it completely negates any advantage to using this method. It also leads to packet loss, since you have that many more TCP connections (each with its own receive window) fighting for pieces of the pie.

  74. 'Reliability' of HTTP vs. FTP by @madeus · · Score: 3, 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.


    I put to you that would be more logical to suspect it's because HTTP is faster than FTP as a transfer protocol. It generates less traffic (and uses less CPU overhead) which means downloads end quicker.

    Additionally the CPU overhead generated by FTP connections also causes many sites to limit the number of users who can connect, which often results in 'busy sessions', something much rarer with HTTP (as HTTP servers typically have very high thresholds for the number of concurrent connections they will support). The overhead on a server of a user downloading a file over FTP is much greater than that of a user downloading the same file over HTTP.

    Although FTP is of course theoretically more reliable than HTTP, in practice, because of 'Server busy: Too many users' messages combined with the speed and reliability of modern connections (which in turn makes HTTP more reliable) mean the the reverse is often the case from a user perspective - which is what I think the poster is getting at.

    This may be partly due to poor FTP server configuration defaults and/or poor administration, but they cannot shoulder all the blame.

    The potential lack of reliability with HTTP is a very minor issue these days, and the extra overhead of integrity checking files in addition to relying on TCP is just not warranted for all but the largest of files.

    This doesn't make FTP completely redundant, but it does make it make it redundant when your files are small and your users are on fast, reliable connections (though the value of 'fast' varies in relation to the size of the file, even 33 kbps is 'fast' compared to the speed of connections that proliferated when the File Transfer Protocol was developed).

  75. Dan Bernstein's publicfile is the answer... by RobbieW · · Score: 2, Informative

    Dan J. Bernstein has written a fantastic, lightweight server that will serve files via either or both FTP and HTTP depending on how the client connects.

    If you want to serve files to the public, this is the most secure way to do so. If you need to provide the files to only certain logins, use something else. If not, you can run this on very lightweight hardware and if it's the only server running, you won't get hacked. Period.

  76. 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.

  77. A real BOFH by Lord+Sauron · · Score: 2, Funny

    Would use sftp in a SSH tunnel over IPv6 encapsulated in IPv4 over X-25. Don't forget to encrypt, obviosuly with an unknown russian algorithm, not only the files but also the instructions on how to download'em. If you have some spare time, instead of sftp you can develop your own [undocumented] protocol.

    This way you won't look like a wimp. Jaws will drop, you'll be recognized as a uber BOFH and your peers will respect you.

  78. FTP through HTTP by Psx29 · · Score: 2, Insightful

    I am not sure if there is really a purpose to this and am just throwing ideas around. But you could host an FTP on an internal network and route it through an HTTP CGI script. You can also use encryption over the HTTP connection to make it secure without resorting to SFTP. I just happen to use this method myself since SFTP requires special clients and is a bitch to setup...just some food for thought

  79. Try scp. Its part of ssh. by molo · · Score: 2, Informative

    scp is your friend. Learn how to use it, and it will handle all of your (non-anonymous) file transfers. It is a beautiful thing.

    --
    Using your sig line to advertise for friends is lame.
  80. Re:No, by stickyc · · Score: 3, Insightful

    I'm not totally up on HTTP and such, but why is it a royal pain? Assuming the user is going to download all 3 ISO images one way or another, what's the issue if he grabs them using 6 streams in 1/6th (roughly) of the time, or in one stream for the full stretch? It's still bandwidth being eaten. I guess it boils down to time versus users.

  81. Re:Different, not better or wose by huckleup · · Score: 2, Funny

    So, in other words, her brother is a dumbass...

  82. Re:Different, not better or wose by terpia · · Score: 3, Insightful
    No advantages? Really? Downloading files to a shell acount is a pain in the ass with http, but a breeze with ftp.


    A pretty distinct advantage for those of us who use shells often or have to repair machines at a command prompt.

    --
    .sig wanted: Must be concise, funny, and display my cleverness.
  83. FTP The Easy Way by l0gic_f0x · · Score: 3, Informative

    I run a ftp for similar file-sizes (1-6 meg) using a Windows 2000 Pro box (yeah i know i should stick to my preachings about the wonders of linux but im not 100% with my abilities to lock down linux yet) and im using Bulletproof FTP server which is hella cheap but has every feature you can need and is very secure. I highly recommend it. It handles beautifully.

    --


    "Self-destruction might be the answer" --Tyler Durden
  84. Re: sftp by araemo · · Score: 2, Informative

    sftp incurs a terrible CPU overhead, especially if many people are going to be downloading at once. I doubt most web servers could concurrently handle a few dozen 3des encrypted sftp connections without slowing throughput, and if you're hosting files, thats the last thing you want. FTP is supposedly more bandwidth-efficient (though I've never seen proof), but I can still get 400k/sec downstream over http, so I don't think it's a huge problem. I'd just use http for the ease of setup. Securing a public-access ftpd is a true pain.

  85. Re:Different, not better or wose by HMC+CS+Major · · Score: 2, Informative

    lynx, wget, and fetch, all work over http.

  86. 1-6MB files to how many users? by digital+photo · · Score: 3, Interesting

    Hmm.. There's no reason why you couldn't just perform the download via HTTP if your target customer or audience has the bandwidth.

    If you're concerned about the customer losing connectivity, you could always just break the file up into small chunks for download.

    Both FTP and HTTP, depending on clients and servers, supports continuation-downloading(ie, recovering from where you left off.) So if one connection flakes out, you can always recover.

    The long and short of it?

    HTTP(S) or FTP(s/FTP), it doesn't matter. With both, you can restrict access and/or grant access to specific files. You can recover from some point or offer split files. With HTTP, you can have the information piped through a back-end piece of code so that you can monitor who does what when, but something similar can be done with FTP as well.

    If you've already got a webserver going and secured, you're probably better off offering the files via HTTP. Nothing unprofessional about it.

    Fact is, if your target audience is the general public, you'll fare better with HTTP. Why? Because while most people who are online will probably have access to a web browser and know how to download HTTP files, they may not have an FTP client or necessarily know how to use their browser as an FTP client.

    Me? I offer photos and docs online via HTTP. It's easier and I can control the visual aspect of the "download area" to create a more professional look than that of the "industrial" FTP interface.

    Nothing wrong with FTP or sFTP. I use them at work and at home. But then again, when I find a site which offers HTTP or FTP? I pick HTTP to download first. It's only when I'm still looking for something that I go with FTP... which, by the way, becomes difficult to navigate on some clients. A nicely generated webpage featuring the item via HTTP would be much more elegant.

    Just my two cents.

  87. Eight words to consider by dacarr · · Score: 2, Insightful

    If it ain't broke, don't fix it.

    --
    This sig no verb.
  88. FTP rulez...but needs help; HTTP too. by MoFoQ · · Score: 2, Informative

    Well there's always the option of FTP over SSH2. I'm sure you can find a Java applet that will do the SSH2 and make the tunnel needed for secure FTP.

    Now when we talk about Java, there's another possibility. Some sites (cr@ck) use a Java downloader. It doesn't mean that the Java applet that downloads the file uses HTTP or FTP, it can be some sort of propriety protocol (or you can combine the best of both worlds.)
    One way is to have the applet on a SSL'ed (https) page and it does some decrypting as it downloads a pre-encrypted file from your FTP. Or the person can just download the encrypted file directly and use the applet on the secured page to decrypt it. There's ALWAYS a way to have your cake and eat it all by yourself, too.

  89. Re:Different, not better or wose by sir99 · · Score: 5, Informative
    lynx, wget, and fetch, all work over http.
    Wget (don't know fetch, but assuming it's like Wget) doesn't let you browse to a file; you have to know the full path in advance, or use recursive downloading, or guess with pattern matching.

    Lynx lets you browse, but you can't do globbing, so you see lots of irrelevant crap, and you have to select files to download one at a time.

    For getting (possibly multiple) files whose location you don't know in advance, FTP is more flexible and efficient.

    --
    The ocean parts and the meteors come down
    Laid out in amber, baby.
  90. Re:No, by sweetooth · · Score: 2, Informative

    Most web servers allow a max number of connections. If one user is eating up six connections that is potentially five fewer people that can download the files. With the case of ISOs the distributor probably has more bandwidth than the person downloading does. Hence it is more effective to serve as many people with as much bandwidth as possible. It's really a curteousness issue to the server operator to not open six connections when one will do.

  91. Apply these three questions... by almaw · · Score: 5, Informative
    You should use FTP if you answer yes to any of the following questions:
    1. Do you have bandwidth issues? If you are serving files to many people, FTP servers allow maximum concurrent users, which can be useful. I know you can do this with HTTP, but it's difficult to segment the downloading >1Mb files traffic from the normal site traffic. A separate service also allows you to use all the Quality of Service stuff in the 2.4 kernel nicely.
    2. Do you have a large array of files that the user might want to download, such that using an FTP client to ctrl+select multiple files is the right answer compared to having your users click on twenty links and have to cope with twenty dialog boxes?
    3. Do your users need to be able to upload files to you? This can be done with HTTP, but you'll need some PHP processing or similar on the server, it doesn't support resuming, and it won't work through many company firewalls, and therefore isn't a good option. HTTP uploading it particularly hopeless for large files, as it provides no user-feedback.
    However, you should NOT use FTP if you answer no to either of these:
    1. Are you running some flavour of unix? There just aren't any robust Windows FTP servers. Yes, I'm prepared for the flame war about this. :)
    2. Can you be bothered to keep your FTPd patched? ProFTPd and WU-FTPd are both frequent appearers on bugtraq. You need to stay on top of the patches, or you will be 0wn3d.
    Simple, see? :)
  92. HTTP is better (IMHO) by Megane · · Score: 2, Insightful
    First of all, FTP is a crazy klunky protocol, and a bitch to firewall properly too. It's also one of the oldest protocols, even pre-dating TCP/IP. And then there are all the fun root exploit bugs that have been in various FTP servers.

    In my case, I run an Apache server on my file server box because it gives me full 100% throughput at Ethernet speeds. That's 10+ megaBYTES/sec. The average anime episode downloads in 10-15 seconds, and when friends come over, I don't have to worry about them having the right kind of client when they want to leech.

    Where FTP becomes useful is when you want people to upload to you.

    --
    #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
  93. Who's the user? by Arandir · · Score: 2, Funny

    Who's the user? If it's WIndows lusers, then by all means use http. It makes their life easier. But if the users are *NIX, Mac or other, then use ftp. These folks have a clue and can deal with it.

    Warning! The above is sarcasm. But it is so apropos. Paraphrased quote from a conversation I had with a Windows luser:

    "I need to find a good FTP program so I can download this software I found. Which do you think is better, ProFTP2K for $25, or should I spend more for EZDownloadFTPPlus at $50?"

    --
    A Government Is a Body of People, Usually Notably Ungoverned
  94. I'm dealing with this decision now too by osgeek · · Score: 3, Interesting

    After hosting an HTTP file transfer area for some time for my company, we decided to move to an FTP setup that was a bit more sophisticated.

    So far, it's been a failure for two reasons:

    1. IE blows as an FTP client, and users aren't comfortable dropping into the (somewhat crappy) DOS FTP client.
    2. Firewall setups at the fortune 500 companies that we deal with normally seem to keep FTP access off-site restricted.

  95. Re:Different, not better or wose by fault0 · · Score: 3, Interesting

    > For getting (possibly multiple) files whose location you don't know in advance, FTP is more flexible and efficient.

    Ever heard of web page directories that almost every common web server uses, and most web servers automatically do when no index file is present?

    I find lynx+ web page directories a lot faster to get files across my network than ftp.

    The only real advantage I see with ftp is uploading files quickly and easily... but that's not for me :>

  96. Consider WeebleFM by Anonymous Coward · · Score: 2, Informative

    I just set up WeebleFM http://sourceforge.net/projects/weeblefm/
    It's a PHP front end to FTP. My FTP ports are only open to the loopback interface. Users get the usablity of a clean web interface, and I get to have encrypted password-controlled FTP on a box that only has port 80 open to the internet.

    WeebleFM uses mcrypt to encrypt traffic (and I'm pretty sure I could get it to work over https).

    Using standard unix permissions, a careful directory schem, and vsftpd's chroot capabilities, I can have an internet filesharing arrangement with blind drop boxes, a group accessible directory and any number of world readable directories.

  97. Re:Forget them both.... Anonymity by sudog · · Score: 2, Insightful

    That's not true--they can tell roughly what the size of files you're looking at, and if you're browsing, which files were triggered-downloaded--for example images embedded in web pages.

    All this information makes it trivial to find out which pages you downloaded, when, and how long you visited.

    The only thing it doesn't do so well is listen in on data you send. But consider--if they're listening to the tcp channel to the remote site then they can listen to outgoing tcp connectivity as well.--and correlate what information came in, and what information went back out.

    You think a single encrypted channel buys you any privacy? Get real.

  98. FTP is slower due to TCP Window Size by Anonymous Coward · · Score: 5, Informative

    FTP implementations frequently use a fixed, small window size. HTTP on the other hand will honor the system limit, almost always larger even without tuning.

    Dramatically simplified, it means that the connection can send a lot more packets without hearing back from the far end, enabling the connection to reach higher speeds (imagine a phone call where you had to say 'okay' after every word the other person said. Now imagine only having to say it after every sentence. Much faster.)

    The tiny window size of (most crappy legacy implementations of) FTP starts to affect download speed at just 25ms latency, and has a huge effect over 50ms.

    A properly tuned system with HTTP can make a single high-latency transfer hundreds or even thousands of times faster than FTP.

    Relevant links:
    http://www.psc.edu/networking/perf_tune.ht ml
    http://www.nlanr.net/NLANRPackets/v1.3/windows _tcp tune.html
    http://dast.nlanr.net/Projects/Autobuf/ faq.html

  99. 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.

  100. This is Bad and Rong by Baloo+Ursidae · · Score: 2, Interesting
    The irony in adding concurrent connections to the same source is you screw everyone else. You also screw the source site out of bandwidth themselves, and otherwise consume resources in a manner that will appear greedy and ungrateful to the site operator, making them less likely to want to continue in the future. Do not do this. Use a faster mirror when available, and autoresume instead, wait it out.

    In Unix, you can background this operation fairly simply...

    $ at now<br>
    at> wget -cw15 -t0 http://fast.mirror/path/to/file

    This will start downloading your file in the background, will autoresume if something happens, waiting 15 seconds between retries, and never give up until the file is completed or the source no longer has it. You'll get an email when it completes one way or another.

    --
    Help us build a better map!
  101. Re:Different, not better or wose by CmdrWass · · Score: 3, Informative

    I tend to agree with this, but for different reasons.

    If you are downloading a file off of a remote server, then there are one of two possibilites:

    1) you know the exact address to the file you are looking for... in this case ftp provides no superior advantage over using lynx or wget since in either case you could have been given the direct URL... either provided as an http url or an ftp url. Basically my point here is that an ftp url is no more or less useful or easy to remember than an http url.

    2) you don't know the address of the file you are looking fore... therefore you are pretty much required to browse via http, to find the site (or page) you want to download from... so since you are already forced to browse for the site, then you might as well use the browser to download. For most people that use graphical browsers, this is great... for those of us (myself included) that use shell browsers (ie lynx and links), this poses little problem as well (unless javascript is required to download a file... I friggen hate javascript... people who use javascript in their websites and have a choice should be fired [note, I use javascript in my works' website... but they make me.. I don't have a choice]).

  102. Re:Forget them both.... Anonymity by dmayle · · Score: 2, Interesting

    So I should abandon encryption and just be free to let whomever listen to traffic coming from my box? If the the images are locally referenced, they'll be transferred securely as well (talking https here). And modern browsers keep connections open for reuse, so that only thing that can be gleaned is when a spike happens, which means that you are loading content from the same site, but not how big it is, since a web page is a bundle of different elements that need to be retrieved.

    Also, if you think that just knowing when data packets are sent and received tells you the contents of the data, then why hasn't SSH been broken yet? With those assumptions, it should be easy to use a statistical model of people's keystrokes and break into a session. Realistically? Not possible.

    You've got to start somewhere, especially if you're going to get the world to transfer to using encryption everywhere. The mail server I use for private mail among friends has no unsecure channel going out of it. All of it's protocols are protected with SSL/TLS, including SMTP inbound and outbound. And besides, the argument I was making was for using encryption to connect to a public mirror site. Since the majority of mirrors have HUGE numbers of different files, and the amount of control data sent is never constant, knowing how much data is sent in either direction will NOT be a guarantee that you know what was transferred.

    AND, I was talking about legal prosecution (or persecution, depending on how you see it), and a document that says you downloaded approximately enough bytes to be a suspect program isn't enough to stand up in court...

  103. What about rsync or scp by mcbridematt · · Score: 2, Interesting

    FTP, in my opinion is antiquated.

    In the uploads arena, I could transfer any file faster on rsync or scp, or even cvs -z5. And thats over 56k.

    FTP isn't so secure, it's pratically text on port 23 (wonder why the warez sites still use it, aren't they trying to avoid goverment agencies? and M$ and all that crap?).

    HTTP is faster for smaller files as FTP eates up a whole lot of time doing the connection procedure.

  104. XML is probably best by pyth · · Score: 2, Funny
    As a veteran computer engineering expert, I find myself suprised by the number of problems that can be solved by XML. In fact, every time I get a problem these days, my first thought is "can XML do this?". In many cases, like this one, the answer is yes!

    The biggest advantage of XML is that software does not have to be changed for a different XML data format - they all use XML, the standard bracketing syntax. I know most major browsers support an XML view mode, so they don't need to be upgraded to download by XML.

    I'm sure that there are people out there saying that XML is inefficient, but that's simply not the case. We can use special XML commands that allow us to include large blocks of binary data -- at the expense of portability to 14-bit computers, of course. In total, an XML download should only have about 30kb of metadata added to it. Author, guid, PGP signature, original source, license, and all that good stuff.

    We can hope for the day when the need for binary transfers will be over, since everyone will be using XML files.

  105. Re:Different, not better or wose by joshsisk · · Score: 2, Insightful

    Why should you have to write a script to download files? Choice FTP programs let you queue downloads just fine.

  106. FTP is just as doable over SSL by cryptor3 · · Score: 2, Informative

    If you're talking about the human engineering aspect of this discussion only, then I have no disagreement with you. However, FTP is just as technically feasible over SSL, since SSL works at a lower level on the network stack than FTP.

    Furthermore, there are good FTP clients that have SSL support. For example, CuteFTP supports FTP over SSL (and has a very user-friendly interface, for the clueless end user).

    There are a good number of servers supporting FTP over SSL. ServU and Sambar are some of the windows servers. Just do a google see what else there is.

    1. Re:FTP is just as doable over SSL by cryptor3 · · Score: 2, Funny

      sorry for repetition, apparently missed the last comment.

  107. Stop the firewall madness... by yomamasbooty · · Score: 2, Informative

    Seems to be a lot of comments about firewalls and FTP from people who obviously don't work with them. Remember there are three basic types of firewall technology: packet filters, proxies, and stateful inspection.

    Packet filtering alone is always a problem because you have to open up all of the high ports.

    Proxy firewalls and FTP (active or passive) are a no brainer as long as either feature has been enabled. Remember that proxies "watch" the conversation so it will manage the connection if it's data coming back to the client on port 20, and will recognize the 'pasv' command in the command channel.

    Stateful Inspection firewalls include proxying code for the major protocols ie FTP, HTTP, Telnet, etc. So you are covered here as well.

    If you are having problems using FTP through a firewall then you are probably:

    -Are being blocked intentionally

    -Have a lazy security admin who hasn't updated the firewall in five years

    -Have a stupid router jockey "securing" the network with router ACLs (packet filters).

    As long as you are using a major firewall release like Checkpoint, PIX, Netscreen, IPTables, etc, that is up to date there will not be an issue getting FTP to work.

  108. 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?

    1. Re:HOW ABOUT UPLOADING??? by CmdrWass · · Score: 2, Funny

      You bring up a good point... HOWEVER, that wasn't the question:

      An anonymous reader asks "Looking to serve files for downloading (typically 1MB-6MB"...

      That's probably why "It seems everyone talks about DOWNLOADING."... Because some of us read the initial post before replying.

  109. FTP a crumbling legacy protocol? by mharris007 · · Score: 2, Interesting

    I have never thought of FTP as a crumbling legacy protocol full of security holes. Each protocol has its flaws, security flaws or not. HTTP isn't free from security holes.

    They are two different protocols designed for two different purposes. If you plan on transfering large amounts of data, and want it to be more reliable, I would most definetely recomment FTP. FTP is made for transferring files, and that is what it is best at doing.

    If you are not concearned with data integrity and plan on transferring decent sized files, I would wish you the best of luck with HTTP.

    As far as security holes go? I have no idea, but I imagine both protocols have had their fair share of security issues.

    For more reliable transfer of larger files, I would really recommend FTP.

    --


    ---
    Mike
    I'm going to kick the next person that I see with their karma rating in their sig.
  110. BitTorrent by Robotech_Master · · Score: 2, Insightful

    You might consider setting up a BitTorrent tracker on your website, and making the files available that way. It's not any worse than website bandwidth, and since you're also leveraging the outbound bandwidth of sites that download the file, it could be faster.

    --
    Editor Emeritus and Senior Writer, TeleRead.org
  111. Security Holes? by NerveGas · · Score: 2, Informative

    Serve out anonymous FTP through public file (http://cr.yp.to/publicfile.html). Then there aren't any security holes.

    Really. The security holes in sendmail can be fixed by installing qmail. The security holes in BIND can be fixed by installing djbdns. The security holes in WuFTP (and most others) can be fixed by installing publicfile. There are also other good programs out there as well.

    steve

    --
    Oh, you're not stuck, you're just unable to let go of the onion rings.
  112. You need a proxy/caching appliance. by Deal-a-Neil · · Score: 2, Insightful

    If you're providing downloads that may reach a decent volume, I would recommend a caching appliance. A CacheFlow server (they were bought out by BlueCoat systems) or something similar should do the trick. These can cache HTTP and FTP inbound requests, and instead of having the load on your servers, these things will serve up your files instead. A good cache appliance can serve up files a lot faster/more-efficient than a web server, and you won't bog down your box with processes.

    These caching appliances can also broadcast multimedia streams (Real or WinMedia) with the correct licenses.

    I would do some research on some CacheFlow boxes, which, by the way, are selling on the cheap at eBay. These were the $25,000 (circa 1998-2000) priced appliances that you can now pick up for, sometimes, in the hundreds of very low thousands.

  113. P2P! by Jeppe+Salvesen · · Score: 2, Interesting

    Serve up over P2P protocols, and tell people what filename to look for. If the file becomes very popular, you'll only need to serve up the page giving directions on how to download it :)

    (yes, yes, I know, requiring people to use spyware-laden software is not nice, but it's a good idea in an ideal world)

    --

    Stop the brainwash

  114. Limit number of connexions, NOT which FTP client by Reziac · · Score: 3, Interesting

    Instead of banning download managers that can do segmented downloading, why not just limit the number of connexions from a given IP? That solves both the segmenting and the "tons of files at once" problems.

    I can make a dozen or more connexions to your FTP server with nothing more exotic than Netscape. Why pick on download managers when they use the same number of connexions? (BTW, Getright says right in its configuration that "some servers regard segmenting as rude" and recommends against it.) Better to limit connexions to x-many per IP address, and let the user spend them any way they wish.

    BTW, if you do limit connexions, please remember that it usually takes one for browsing the site (using Netscape or whatever) PLUS one for the download manager to fetch the file. Otherwise the user who was looking with a browser has to leave the server, then wait for the browser connexion to close (which can take a while) then finally paste the link into the DLManager. So a limit of two connexions from a given IP is a nice practical minimum, and surely not a hard load for anything outside of home servers operating over dialup.

    PS. I love FTP's convenience, and I always try to be extra-polite to small servers (and not rude to big ones). I do use Getright, and have segmenting disabled (which BTW is the default).

    --
    ~REZ~ #43301. Who'd fake being me anyway?
  115. Frisbees by Aluminum+Tuesday · · Score: 2, Funny

    Stand on your rooftop with a CD burner and frisbee CDs to anyone who calls to initiate a transfer!

    The ONLY way to serve files!

  116. 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.

  117. Re:HTTP is better by PigleT · · Score: 2, Interesting

    "No standard directory listing"

    Neither has HTTP.

    "Bad error recovery, many differing standards on restart"

    Erm, yeah, it's so non-standard that prozilla doesn't exist - exploiting the `resume' potential of most FTP servers to parallelize downloads starting 0, 25, 50, 75% through the file. Yeah right.

    "Designed for human readable command lines not machine readability"

    Oh, come *on*. When there's no standard output format at all in HTML, how can an `ls -l' output not be vaguely standard? Are you unaware of the SIZE FTP command?

    "Password sent in plain text, not even concealed"
    And somehow HTTP with its sending of usernames and passwords also in plaintext is "better"?? Does it look flourescent pink on your screen, or something?

    "HTTP: none of the above"
    Poster: no clue what he's on about. HTTP: all of the above. Readers: much annoyance.

    HTTP is more easily integrated with SSL in the form of HTTPS.
    Almost everyone has an ftp client. You have to install curl or wget or lftp yourself consciously in most distributions.

    HTTP: no standard for file uploads, you rely on server-side configs and handlers for the purpose. How mad is that??

    --
    ~Tim
    --
    .|` Clouds cross the black moonlight,
    Rushing on down to the circle of the turn
  118. Resource usage by MattBurke · · Score: 3, Informative

    I used to run a server which distributed ~3TB/month. Initially I served these files via proftpd, but it soon became apparent that ftp daemons are far too bulky for high-volume serving.

    Enter apache. On the same hardware which keeled under around 30-50 ftp sessions, I could handle over 400 concurrent http sessions, with plenty of ram left over for the vital cacheing :)

  119. FTP obsolete years ago. by TheLink · · Score: 2, Insightful

    All most people would want to do with FTP can be done with HTTP.

    There are hardly any practical legitimate reasons for an FTP server to shove data to some other place rather than the FTP client and other dangerous combinations FTP allows.

    Uploads? Uploads had better be disabled on FTP by default. Uploads are disabled in HTTP by default, but you can configure your site to accept uploads.

    Mass downloads of files? Just standardise. As is you can already download entire websites. With HTML (not javascript) the links are there. If you want files only you just have to standardise on a program readable way to figure out which links are files to download.

    Resuming of downloads - works on most webservers, works on most ftp servers.

    And http allows more - better compatibility with firewalls and proxies. Can be made to support SSL easily - most popular clients support SSL.

    ---
    FTP is a bad protocol. The PORT and PASV thing is stupid. Most protocols which specify network layer data (IP address, port) in the content layer for programs to use, are bad designs.

    How would PASV or PORT look with IPv6? With HTTP, you don't have to change the protocol much if at all.

    --
  120. Don't forget DiffServ and QoS by sh!va · · Score: 2, Informative

    FTP traffic is given lower priority than HTTP traffic in a large number of packet shaping / DiffServ type routing algorithms.

    These algorithms are based on the assumption that HTTP traffic consists of fairly short bursts and not long sustained transfers which is typically what FTP traffic looks like. Based on these assumptions, these routers give lower priority to FTP traffic than they do to HTTP.

    This does not mean that you should serve large files off HTTP since it'll be "faster". Au contraire, it means that you should be fair to others and serve them over FTP, so that the routers can do the correct packet shaping even if it means a slight speed hit to you.

    Think of people downloading huge files off your web server and screwing up your warcraft (/quake/whatever) game.

  121. Re:Limit number of connexions, NOT which FTP clien by grazzy · · Score: 2, Interesting

    alot of companys only have one external ip.

    that'd mean only one user in the entire company can use the server - bad.

  122. Use ICMP! by Anonymous Coward · · Score: 2, Funny

    It's pure genius! Transfer files via ICMP echo requests! Add a special byte in the ICMP header or data to make the target recognize it as a file transfer and not spam you with echo replies.

    Why not implement FTP over ICMP? It will be the best ever!

  123. Implement them both by Phred+T.+Magnificent · · Score: 2, Informative

    It sounds like your objective is to make files available for download by the public. That being the case, your best solution is to provide both methods and let the person downloading the file determine which method is better for his/her/its needs.

    Some will prefer ftp because it's faster. Others, especially those behind overly-restrictive firewalls, will find that http is a more usable alternative.

    --
    Where is the wisdom we have lost in knowledge?
    Where is the knowledge we have lost in information?
  124. Re:FTP or... by TeddyR · · Score: 2, Informative

    There is a fairly usable client that does both SFTP and FTP over SSL.

    FileZilla
    http://sourceforge.net/projects/filez illa/

    --

    --
    Time is on my side