How is the HTTP version of a browser request and the HTTP version of a server response determined?

Yes, I believe you have the gist of it with one exception:

  1. Each request specifies the HTTP protocol level.
  2. The web server decides what to do differently (if anything) based on a request with up/down level versioning.
  3. HTTP/1.1 is well established and any decent server will support it.

The version matching however is not quite as adaptive as you suggest though. If the client request specifies a MAJOR version that the server does not support, the server responds with…

505 HTTP Version Not Supported

In your case, 1.1 and 1.0 share a major version, so (with some exceptions) your assumption is correct, the server will try to respond to a down level request.

For more info on http response codes, see RFC 2616 section 10 and section 3.1