5 ms·
> Is FTP really worse HTTP? I don't think I'd even call it that. FTP had one purpose: it was an early protocol for remotely managing files. It never had any in
by duskwuff 24d ago
> Is FTP really worse HTTP?
I don't think I'd even call it that. FTP had one purpose: it was an early protocol for remotely managing files. It never had any intent to support dynamically generated or otherwise "virtual" content (as supported by e.g. CGI scripts and mod_rewrite in Apache), and I don't think anyone has ever made a serious attempt to implement that. There's no practical use case for it.
Even as a file management protocol, though, FTP sucks. Its connection management is primitive in the extreme - one TCP connection per transfer - and that ruins performance for transfers involving many files, and is difficult to pass through firewalls and load balancers. FTPS encryption is an afterthought, and makes small-file performance even worse (as each connection requires separate TLS negotiation). There's no standard format for directory listings, just ad-hoc parsing of "ls -l" output. Support for modern filesystem features like extended attributes is largely nonexistent. Need I continue? :)
- chuckadams 24d agoThe strange way FTP manages connections goes back to FTP being older than TCP/IP itself, and thus using older circuit-switched networks. It wouldn't have been unusual for a server to dial up the receiving machine on-demand, which didn't have to be the machine running the command session. Before SMTP came around, email was commonly implemented on top of FTP.
- inigyou 24d agoFTP was written for an early version of TCP/IP (which wasn't called that). Maybe you're thinking of UUCP, which did often run over dial-up circuits and was used for email, but didn't require two connections.
- chuckadams 23d agoNo, I was thinking of FTP, but I was probably off the mark anyway: I'd noticed that FTP was mentioned in the RFCs and surrounding discussions long before RFC 793, and that it seemed to be behaving like a point-to-point network, but it hadn't occurred to me that it might have just been using an ancestor of TCP/IP -- some variant of the "Host protocol" perhaps? Hard to get the full context, it was before my time: my beard may be grey now, but I'm not that old.
- inigyou 23d agoThe original version of TCP/IP was (is currently thought to have been) called Network Control Program/Protocol or NCP. There's a reason current legacy IP is version number 4.