This may just highlight some misconception of mine, but I was curious:
If you had an HTTP/2 server running and wanted to make XHR requests in the browser to the server, would XHR automatically take advantage of the performance optimisations in headers and such that it provides?
Or would it ignore that functionality and operate as an HTTP request? If so, are there any things we can do to use the new optimisations in our requests?
You don't need to do anything. If the server supports HTTP/2, XHR will use it. Header compression and such will kick in automatically.
Test it: