I've been setting the protocols allowed for http requests:
Yes there is a fallback procedure. The client contacts your server advertising the TLS version it would like to use in the initial ClientHello message.
If your server cannot support the client's preferred version then it will respond in its ServerHello message with the version it would prefer to use.
If the client agrees then the handshake continues. If the client cannot agree to your server's suggested version then it will respond with an alert and terminate the connection.
It's all documented in Appendix E of RFC5246.