Module java.base
Package javax.net.ssl

Class SNIServerName

java.lang.Object
javax.net.ssl.SNIServerName
直接已知的子类:
SNIHostName

public abstract class SNIServerName extends Object
该类的实例表示Server Name Indication(SNI)扩展中的服务器名称。

SNI扩展是一项功能,扩展了SSL/TLS/DTLS协议,用于在握手期间指示客户端尝试连接的服务器名称。请参阅TLS扩展(RFC 6066)的第3节“Server Name Indication”。

SNIServerName对象是不可变的。子类不应提供可以在创建后更改实例状态的方法。

自 JDK 版本:
1.8
另请参阅:
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    SNIServerName(int type, byte[] encoded)
    使用指定的名称类型和编码值创建一个SNIServerName
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    equals(Object other)
    指示某个其他对象是否与此服务器名称“相等”。
    final byte[]
    返回此服务器名称的编码服务器名称值的副本。
    final int
    返回此服务器名称的名称类型。
    int
    返回此服务器名称的哈希码值。
    返回此服务器名称的字符串表示,包括此SNIServerName对象中的服务器名称类型和编码服务器名称值。

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • SNIServerName

      protected SNIServerName(int type, byte[] encoded)
      使用指定的名称类型和编码值创建一个SNIServerName

      请注意,encoded字节数组会被克隆,以防止后续修改。

      参数:
      type - 服务器名称的类型
      encoded - 服务器名称的编码值
      抛出:
      IllegalArgumentException - 如果type不在0到255的范围内(包括0和255)
      NullPointerException - 如果encoded为null
  • Method Details

    • getType

      public final int getType()
      返回此服务器名称的名称类型。
      返回:
      此服务器名称的名称类型
    • getEncoded

      public final byte[] getEncoded()
      返回此服务器名称的编码服务器名称值的副本。
      返回:
      此服务器名称的编码服务器名称值的副本
    • equals

      public boolean equals(Object other)
      指示某个其他对象是否与此服务器名称“相等”。
      覆盖:
      equals 在类 Object
      参数:
      other - 用于比较的引用对象
      返回:
      如果且仅如果other是此对象的相同类,并且具有与此服务器名称相同的名称类型和编码值,则返回true。
      另请参阅:
    • hashCode

      public int hashCode()
      返回此服务器名称的哈希码值。

      哈希码值是使用此服务器名称的名称类型和编码值生成的。

      覆盖:
      hashCode 在类 Object
      返回:
      此服务器名称的哈希码值。
      另请参阅:
    • toString

      public String toString()
      返回此服务器名称的字符串表示,包括此SNIServerName对象中的服务器名称类型和编码服务器名称值。

      表示的确切细节未指定且可能会更改,但以下内容可能被视为典型:

           "type=<name type>, value=<name value>"
       

      在此类中,“<name type>”的格式为“[LITERAL] (INTEGER)”,其中可选的“LITERAL”是文字名称,INTEGER是名称类型的整数值。“<name value>”的格式为“XX:...:XX”,其中“XX”是字节值的十六进制表示。例如,伪服务器名称的返回值可能如下所示:

           "type=(31), value=77:77:77:2E:65:78:61:6D:70:6C:65:2E:63:6E"
       
           "type=host_name (0), value=77:77:77:2E:65:78:61:6D:70:6C:65:2E:63:6E"
       

      请注意,表示的确切细节未指定且可能会更改,子类可能会使用自己的格式覆盖该方法。

      覆盖:
      toString 在类 Object
      返回:
      此服务器名称的字符串表示