public abstract class SNIServerName extends Object
SNI扩展是扩展SSL / TLS协议以指示客户端在握手期间尝试连接的服务器名称的功能。 见第3节,“服务器名称指示”中, TLS Extensions (RFC 6066) 。
SNIServerName
对象是不可变的。 子类不能提供可以在创建实例后更改实例状态的方法。
SSLParameters.getServerNames()
,
SSLParameters.setServerNames(List)
Modifier | Constructor and Description |
---|---|
protected |
SNIServerName(int type, byte[] encoded)
使用指定的名称类型和编码值创建一个
SNIServerName 。
|
protected SNIServerName(int type, byte[] encoded)
SNIServerName
。
请注意, encoded
字节数组被克隆以防止后续修改。
type
- 服务器名称的类型
encoded
- 服务器名称的编码值
IllegalArgumentException
- 如果
type
不在0到255(含)范围内。
NullPointerException
- 如果
encoded
为空
public final int getType()
public final byte[] getEncoded()
public boolean equals(Object other)
equals
在
Object
other
- 与之比较的参考对象。
other
与该对象相同,
other
true,并且具有与该服务器名称相同的名称类型和编码值。
Object.hashCode()
, HashMap
public int hashCode()
使用此服务器名称的名称类型和编码值生成哈希码值。
hashCode
在
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
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"
请注意,表示的确切细节未指定并可能更改,子类可以使用自己的格式覆盖该方法。