What is SNI and How it works
Server Name Indication
SNI stands for Server Name Indication and is an extension of the TLS protocol. It indicates which hostname is being contacted by the browser at the beginning of the 'handshake'-process.
When making a TLS connection the client requests a digital certificate from the web server. Once the server sends the certificate, the client examines it and compares the name it was trying to connect to with the name included in the certificate.
If a match occurs the connection proceeds as normal. If a match is not found the user may be warned of the discrepancy and the connection may abort as the mismatch may indicate an attempted man-in-the-middle attack.
Because the number of IP addresses is limited, requiring every website to have its own IP address can cause problems in the long term. Server Name Indication (SNI) is the solution to this problem.
Some older browsers/systems cannot support the technique. This is because the SSL/TLS library can be transmitted as part of the request and as part of the operating system.
Browser that support SNI
In order to use Server Name Indication, the SSL/TLS library must be able to support SNI through an application. Apart from that, the application must submit the hostname to the SSL/TLS library. While a number of browsers and servers still do not support SNI, most new webbrowsers and SSL/TLS libraries have already implemented SNI support.
The following browsers do offer support for SNI:
Servers that Support SNI