Simplify HTTP(S) proposal by configuring using a URL
Created by: teor2345
I suggest we replace these four config items:
server_host: an IPv4 address, IPv6 address, or hostname. If a hostname is given, it must not be resolved once at startup; instead, it should be left up to the exit relay to resolve. (required) server_port: a port (optional, with sane default depending on protocol) protocol: one of http or https (required) file_path: path to the resource to download from the webserver. If not specified, defaults to something. It is a fatal configuration error to leave off the leading /. (optional)
With this one config item:
url: a HTTP or HTTPS URL for the bandwidth file. (required) The URL's hostname must not be resolved locally; instead, it should be left up to the exit relay to resolve. If the URL does not contain a file name, it defaults to "1G".
This allows users to specify standard URL protocols (http or https), hostnames (including IP addresses), non-default ports, and paths. It also allows users to specify usernames or passwords, if their server requires them.
And they can test the URL in a browser.
I chose "1G" following the torflow scheme.
It might be worth thinking about how we would increase the size of the file. I think it would take a major version increment to change the default file name. But we could do it manually as well using the URL.