FTP isn't such a good protocol anyways (and there are better programs for accessing FTP than most web browsers); there is Gopher, HTTP(S), Plan9, TFTP, SSH, and other protocols.<p>(I also invented a httpdirlist format (I have been told that httpdirlist is like WebDAV but not as bad; but I don't know WebDAV so I cannot say if it is or not). But, sometimes, the other protocols is better than HTTP(S) anyways.)<p>I think it is fine to have them implemented in separate programs, although sometimes you might want to display the result in the browser; one possibility is that the user can configure a program to execute and can configure it to treat the data that program writes to stdout as a HTTP response (possibly with different permissions than normal; it might allow some things that are normally disallowed, and some things that are normally allowed might not work). You might then also want to support other MIME types. You can do this also with external programs; so one configuration option could be to allow treating the program as a filter to convert it into a format the browser understands (e.g. plain text, HTML, PNG, etc; perhaps farbfeld should be supported too, even only for the purpose of these external filters).