The specification states:
The 306 status code was defined in a previous version of this
specification, is no longer used, and the code is reserved.
The purpose of the response is a bit different from
305. The idea is that if
a HTTP client already used a proxy, this response can be used to tell a client
that the client should start using a new proxy.
This was deemed as a security risk, and ultimately dropped from the
306 should not be used by anyone. It’s still an interesting
bit of HTTP history though!
HTTP/1.1 306 Switch Proxy Set-Proxy: SET; proxyURI="https://proxy.example.org:8080/" scope="http://", seconds=100
The preceding response would tell a client to use
proxy.example.org for all
http:// requests for the next 100 seconds.
The scope could also be limited to specific domains, specific paths or