public final class SNIHostName extends SNIServerName
host_name in a Server Name
 Indication (SNI) extension.
 As described in section 3, "Server Name Indication", of TLS Extensions (RFC 6066), "HostName" contains the fully qualified DNS hostname of the server, as understood by the client. The encoded server name value of a hostname is represented as a byte string using ASCII encoding without a trailing dot. This allows the support of Internationalized Domain Names (IDN) through the use of A-labels (the ASCII-Compatible Encoding (ACE) form of a valid string of Internationalized Domain Names for Applications (IDNA)) defined in RFC 5890.
 Note that SNIHostName objects are immutable.
SNIServerName, 
StandardConstants.SNI_HOST_NAME| Constructor and Description | 
|---|
| SNIHostName(byte[] encoded)Creates an  SNIHostNameusing the specified encoded value. | 
| SNIHostName(String hostname)Creates an  SNIHostNameusing the specified hostname. | 
| Modifier and Type | Method and Description | 
|---|---|
| static SNIMatcher | createSNIMatcher(String regex)Creates an  SNIMatcherobject forSNIHostNames. | 
| boolean | equals(Object other)Compares this server name to the specified object. | 
| String | getAsciiName()Returns the  StandardCharsets.US_ASCII-compliant hostname of
 thisSNIHostNameobject. | 
| int | hashCode()Returns a hash code value for this  SNIHostName. | 
| String | toString()Returns a string representation of the object, including the DNS
 hostname in this  SNIHostNameobject. | 
getEncoded, getTypepublic SNIHostName(String hostname)
SNIHostName using the specified hostname.
 
 Note that per RFC 6066,
 the encoded server name value of a hostname is
 StandardCharsets.US_ASCII-compliant.  In this method,
 hostname can be a user-friendly Internationalized Domain Name
 (IDN).  IDN.toASCII(String, int) is used to enforce the
 restrictions on ASCII characters in hostnames (see
 RFC 3490,
 RFC 1122,
 RFC 1123) and
 translate the hostname into ASCII Compatible Encoding (ACE), as:
 
     IDN.toASCII(hostname, IDN.USE_STD3_ASCII_RULES);
 
 
 The hostname argument is illegal if it:
 
hostname is empty,hostname ends with a trailing dot,hostname is not a valid Internationalized
      Domain Name (IDN) compliant with the RFC 3490 specification.hostname - the hostname of this server nameNullPointerException - if hostname is nullIllegalArgumentException - if hostname is illegalpublic SNIHostName(byte[] encoded)
SNIHostName using the specified encoded value.
 This method is normally used to parse the encoded name value in a requested SNI extension.
 Per RFC 6066,
 the encoded name value of a hostname is
 StandardCharsets.US_ASCII-compliant.  However, in the previous
 version of the SNI extension (
 RFC 4366),
 the encoded hostname is represented as a byte string using UTF-8
 encoding.  For the purpose of version tolerance, this method allows
 that the charset of encoded argument can be
 StandardCharsets.UTF_8, as well as
 StandardCharsets.US_ASCII.  IDN.toASCII(String) is used
 to translate the encoded argument into ASCII Compatible
 Encoding (ACE) hostname.
 
 It is strongly recommended that this constructor is only used to parse
 the encoded name value in a requested SNI extension.  Otherwise, to
 comply with RFC 6066,
 please always use StandardCharsets.US_ASCII-compliant charset
 and enforce the restrictions on ASCII characters in hostnames (see
 RFC 3490,
 RFC 1122,
 RFC 1123)
 for encoded argument, or use
 SNIHostName(String) instead.
 
 The encoded argument is illegal if it:
 
encoded is empty,encoded ends with a trailing dot,encoded is not encoded in
      StandardCharsets.US_ASCII or
      StandardCharsets.UTF_8-compliant charset,encoded is not a valid Internationalized
      Domain Name (IDN) compliant with the RFC 3490 specification.
 Note that the encoded byte array is cloned
 to protect against subsequent modification.
encoded - the encoded hostname of this server nameNullPointerException - if encoded is nullIllegalArgumentException - if encoded is illegalpublic String getAsciiName()
StandardCharsets.US_ASCII-compliant hostname of
 this SNIHostName object.
 Note that, per RFC 6066, the returned hostname may be an internationalized domain name that contains A-labels. See RFC 5890 for more information about the detailed A-label specification.
StandardCharsets.US_ASCII-compliant hostname
         of this SNIHostName objectpublic boolean equals(Object other)
Per RFC 6066, DNS hostnames are case-insensitive. Two server hostnames are equal if, and only if, they have the same name type, and the hostnames are equal in a case-independent comparison.
equals in class SNIServerNameother - the other server name object to compare with.other is considered
         equal to this instanceObject.hashCode(), 
HashMappublic int hashCode()
SNIHostName.
 
 The hash code value is generated using the case-insensitive hostname
 of this SNIHostName.
hashCode in class SNIServerNameSNIHostName.Object.equals(java.lang.Object), 
System.identityHashCode(java.lang.Object)public String toString()
SNIHostName object.
 The exact details of the representation are unspecified and subject to change, but the following may be regarded as typical:
     "type=host_name (0), value= <hostname>"
 
 The "<hostname>" is an ASCII representation of the hostname,
 which may contains A-labels.  For example, a returned value of an pseudo
 hostname may look like:
 
     "type=host_name (0), value=www.example.com"
 
 or
 
     "type=host_name (0), value=xn--fsqu00a.xn--0zwm56d"
 
 Please NOTE that the exact details of the representation are unspecified and subject to change.
toString in class SNIServerNamepublic static SNIMatcher createSNIMatcher(String regex)
SNIMatcher object for SNIHostNames.
 
 This method can be used by a server to verify the acceptable
 SNIHostNames.  For example,
 
     SNIMatcher matcher =
         SNIHostName.createSNIMatcher("www\\.example\\.com");
 
 will accept the hostname "www.example.com".
 
     SNIMatcher matcher =
         SNIHostName.createSNIMatcher("www\\.example\\.(com|org)");
 
 will accept hostnames "www.example.com" and "www.example.org".regex - the 
         regular expression pattern
         representing the hostname(s) to matchSNIMatcher object for SNIHostNamesNullPointerException - if regex is
         nullPatternSyntaxException - if the regular expression's
         syntax is invalid Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.