Provides the initial headers and a 16 byte Base64 encoded random key for websocket connections
Creates a new ClientHandshaker
Check if the headers contain an 'Upgrade: websocket' header
Checks the headers received from the client and if they are valid, generates response headers