In practice, many virtual servers may host at the same IP address, and listening at the same port. Because SSL/TLS is an transport layer protocol, there was no way to indicate the server hostname and then could not provide SSL/TLS connections between those virtual servers and their clients.
We have got many requests to support SNI extension, and a lot of Java applications cannot visit virtual SSL/TLS servers listening on the same IP address and port. Virtual hosts are widespread and we need to address the problem as soon as possible.
RFC4366 defines Server Name Indication (SNI) extension to support virtual servers.
TLS does not provide a mechanism for a client to tell a server the
name of the server it is contacting. It may be desirable for clients
to provide this information to facilitate secure connections to
servers that host multiple 'virtual' servers at a single underlying
In order to provide the server name, clients MAY include an extension
of type "server_name" in the (extended) client hello.