Submitting lots of form data to the server is often slow because most consumer ISPs have very asymmetrical bandwidth, where the download dwarfs the upload.
In robust HTML, this could work as an attribute patterned after
<form accept-encoding="br gzip deflate" method="post" enctype="multipart/form-data"> <label>CSV files: <input type="file" name="csv-data" accept=".csv" multiple> </label> <button>Upload</button> </form>
Possible issue with attribute name
I seem to recall that hyphenated attribute names have to be special-cased in various parts of the parsing algorithm, so
acceptencoding might be more interoperable.
The attribute should contain space-separated compression algorithm tokens — the ones defined for
If the server doesn’t accept compressed request bodies, or if doesn’t support the algorithms the browser sends in the
Content-Encoding request header, it would return
406 Not Acceptable. The browser then might attempt to send the form data the old-fashioned way.
I’m not sure what the most idiomatic way to do this for
fetch would be; adding a
Content-Encoding header in the fetch options? Or is that too much magic?