- All Implemented Interfaces:
Serializable,Comparable<Protocol>,Constable
网络协议枚举类,用于标识和处理多种网络协议。协议名称对应
URL.getProtocol() 或 URI.getScheme() 返回的 scheme(如
http、https 等),而非具体协议版本(如 http/1.1、spdy/3.1 等)。 本类用于区分 HTTP 消息构造方式及相关协议特性,支持多种通信协议的识别与验证。- Since:
- Java 17+
- Author:
- Kimi Liu
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>> -
Enum Constant Summary
Enum ConstantsEnum ConstantDescriptionDICOM 协议,用于医学影像数据的传输和存储,遵循 ISO 12052。HTTP/2 明文协议,无需升级握手,要求客户端预知服务器支持明文 HTTP/2,遵循 RFC 7540。HL7 协议,用于医疗信息交换的标准化协议,遵循 HL7 国际标准。超文本传输协议(HTTP),用于网页数据传输,基于明文传输。HTTP/1.0 协议,早期明文协议,不支持持久连接,遵循 RFC 1945。HTTP/1.1 协议,明文协议,支持持久连接和流水线处理,遵循 RFC 7230。HTTP/2 协议,二进制框架协议,支持头部压缩、请求多路复用和服务器推送,基于 HTTP/1.1 语义,遵循 RFC 7540。HTTP/3 协议,基于 QUIC 传输,支持高效多路复用和低延迟,遵循 RFC 9000。安全的超文本传输协议(HTTPS),基于 TLS/SSL 的加密 HTTP,遵循 RFC 2818。轻量目录访问协议(LDAP),用于目录服务访问,遵循 RFC 4511。OpenID Connect 协议,基于 OAuth2 的身份验证协议,遵循 OpenID 标准。命名管道协议,使用共享内存进行进程间通信,速度略快于套接字,仅适用于同一机器上的进程。QUIC 协议(快速 UDP 互联网连接),基于 UDP 的安全多路复用传输,优化 HTTP/2 语义,遵循 RFC 9000。SAML 协议,用于单点登录和身份联合,遵循 OASIS 标准。SOAP 1.1 协议,基于 XML 的简单对象访问协议,用于分布式系统通信,遵循 W3C 标准。SOAP 1.2 协议,SOAP 的升级版本,改进性能和兼容性,遵循 W3C 标准。可靠的 TCP/IP 套接字连接协议,提供面向连接的通信。SPDY/3.1 协议,Chromium 的二进制框架协议,支持头部压缩和请求多路复用,基于 HTTP/1.1 语义(已废弃)。通用 SSL 协议,支持某些版本的 SSL 加密(已废弃)。SSL 2.0 协议,早期加密协议,因安全漏洞已废弃。SSL 3.0 协议,改进的加密协议,因安全漏洞已废弃。传输控制协议(TCP),提供可靠的、面向连接的通信,广泛用于网络应用。通用 TLS 协议,支持某些版本的 TLS 加密,提供安全通信。TLS 1.0 协议,遵循 RFC 2246,提供安全的加密通信(逐渐废弃)。TLS 1.1 协议,遵循 RFC 4346,改进安全性(逐渐废弃)。TLS 1.2 协议,遵循 RFC 5246,进一步增强安全性,广泛使用。TLS 1.3 协议,遵循 RFC 8446,提供更高安全性和性能,推荐使用。用户数据报协议(UDP),提供无连接、不可靠的通信,适用于低延迟场景。WebSocket 协议(明文),用于双向实时通信,基于 TCP,遵循 RFC 6455。加密的 WebSocket 协议(安全),基于 TLS 的双向实时通信,遵循 RFC 6455。 -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String本地 IPv4 地址,值为 "127.0.0.1",表示本地回环地址。static final String本地主机名,值为 "localhost",用于本地主机访问。static final StringHTTP 前缀,格式为 "http://"。static final StringHTTPS 前缀,格式为 "https://"。static final longIPv4 地址最大值,数值形式,值为 0xffffffffL,表示最大 IP 地址。static final StringIPv4 地址最大值,字符串形式,值为 "255.255.255.255",表示广播地址。static final StringIPv4 地址最小值,字符串形式,值为 "0.0.0.0",通常用于监听所有接口。static final StringIPv4 未使用地址最大值,字符串形式,值为 "0.255.255.255",表示未分配地址范围。final String协议名称,用于标识协议类型。static final StringWebSocket 前缀,格式为 "ws://"。static final String安全 WebSocket 前缀,格式为 "wss://"。 -
Method Summary
Modifier and TypeMethodDescriptionstatic Protocol根据协议名称获取对应的协议枚举实例。static boolean判断 URL 是否为 HTTP 协议,支持标准前缀和 URL 编码格式。static boolean判断 URL 是否为 HTTPS 协议,支持标准前缀和 URL 编码格式。static booleanisHttpsOrLocalHost(String url) 判断 URL 是否为 HTTPS 协议或本地主机。static booleanisLocalHost(String url) 判断 URL 是否指向本地主机(域名或 IP),支持 IPv4 和 localhost。booleanisSecure()判断协议是否为安全协议(基于 TLS/SSL)。booleanisTcp()判断协议是否基于 TCP(非 UDP)。toString()返回协议名称,用于 ALPN(应用层协议协商)协议标识,如 "http/1.1"、"h2" 等。static ProtocolReturns the enum constant of this class with the specified name.static Protocol[]values()Returns an array containing the constants of this enum class, in the order they are declared.
-
Enum Constant Details
-
PIPE
命名管道协议,使用共享内存进行进程间通信,速度略快于套接字,仅适用于同一机器上的进程。 默认情况下,Java 不支持命名管道。 -
SOCKET
可靠的 TCP/IP 套接字连接协议,提供面向连接的通信。 -
TCP
传输控制协议(TCP),提供可靠的、面向连接的通信,广泛用于网络应用。 -
UDP
用户数据报协议(UDP),提供无连接、不可靠的通信,适用于低延迟场景。 -
HTTP
超文本传输协议(HTTP),用于网页数据传输,基于明文传输。 -
HTTP_1_0
HTTP/1.0 协议,早期明文协议,不支持持久连接,遵循 RFC 1945。 -
HTTP_1_1
HTTP/1.1 协议,明文协议,支持持久连接和流水线处理,遵循 RFC 7230。 -
HTTP_2
HTTP/2 协议,二进制框架协议,支持头部压缩、请求多路复用和服务器推送,基于 HTTP/1.1 语义,遵循 RFC 7540。 -
HTTP_3
HTTP/3 协议,基于 QUIC 传输,支持高效多路复用和低延迟,遵循 RFC 9000。 -
SPDY_3
SPDY/3.1 协议,Chromium 的二进制框架协议,支持头部压缩和请求多路复用,基于 HTTP/1.1 语义(已废弃)。 -
H2_PRIOR_KNOWLEDGE
HTTP/2 明文协议,无需升级握手,要求客户端预知服务器支持明文 HTTP/2,遵循 RFC 7540。 -
QUIC
QUIC 协议(快速 UDP 互联网连接),基于 UDP 的安全多路复用传输,优化 HTTP/2 语义,遵循 RFC 9000。 -
SOAP_1_1
SOAP 1.1 协议,基于 XML 的简单对象访问协议,用于分布式系统通信,遵循 W3C 标准。 -
SOAP_1_2
SOAP 1.2 协议,SOAP 的升级版本,改进性能和兼容性,遵循 W3C 标准。 -
WS
WebSocket 协议(明文),用于双向实时通信,基于 TCP,遵循 RFC 6455。 -
WSS
加密的 WebSocket 协议(安全),基于 TLS 的双向实时通信,遵循 RFC 6455。 -
HTTPS
安全的超文本传输协议(HTTPS),基于 TLS/SSL 的加密 HTTP,遵循 RFC 2818。 -
SSL
通用 SSL 协议,支持某些版本的 SSL 加密(已废弃)。 -
SSLv2
SSL 2.0 协议,早期加密协议,因安全漏洞已废弃。 -
SSLv3
SSL 3.0 协议,改进的加密协议,因安全漏洞已废弃。 -
TLS
通用 TLS 协议,支持某些版本的 TLS 加密,提供安全通信。 -
TLSv1
TLS 1.0 协议,遵循 RFC 2246,提供安全的加密通信(逐渐废弃)。 -
TLSv1_1
TLS 1.1 协议,遵循 RFC 4346,改进安全性(逐渐废弃)。 -
TLSv1_2
TLS 1.2 协议,遵循 RFC 5246,进一步增强安全性,广泛使用。 -
TLSv1_3
TLS 1.3 协议,遵循 RFC 8446,提供更高安全性和性能,推荐使用。 -
DICOM
DICOM 协议,用于医学影像数据的传输和存储,遵循 ISO 12052。 -
HL7
HL7 协议,用于医疗信息交换的标准化协议,遵循 HL7 国际标准。 -
OIDC
OpenID Connect 协议,基于 OAuth2 的身份验证协议,遵循 OpenID 标准。 -
SAML
SAML 协议,用于单点登录和身份联合,遵循 OASIS 标准。 -
LDAP
轻量目录访问协议(LDAP),用于目录服务访问,遵循 RFC 4511。
-
-
Field Details
-
HTTP_PREFIX
HTTP 前缀,格式为 "http://"。 -
HTTPS_PREFIX
HTTPS 前缀,格式为 "https://"。 -
WS_PREFIX
WebSocket 前缀,格式为 "ws://"。 -
WSS_PREFIX
安全 WebSocket 前缀,格式为 "wss://"。 -
HOST_IPV4
本地 IPv4 地址,值为 "127.0.0.1",表示本地回环地址。- See Also:
-
HOST_LOCAL
本地主机名,值为 "localhost",用于本地主机访问。- See Also:
-
IPV4_STR_MIN
IPv4 地址最小值,字符串形式,值为 "0.0.0.0",通常用于监听所有接口。- See Also:
-
IPV4_STR_MAX
IPv4 地址最大值,字符串形式,值为 "255.255.255.255",表示广播地址。- See Also:
-
IPV4_NUM_MAX
public static final long IPV4_NUM_MAXIPv4 地址最大值,数值形式,值为 0xffffffffL,表示最大 IP 地址。- See Also:
-
IPV4_UNUSED_STR_MAX
IPv4 未使用地址最大值,字符串形式,值为 "0.255.255.255",表示未分配地址范围。- See Also:
-
name
协议名称,用于标识协议类型。
-
-
Method Details
-
values
Returns an array containing the constants of this enum class, in the order they are declared.- Returns:
- an array containing the constants of this enum class, in the order they are declared
-
valueOf
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)- Parameters:
name- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException- if this enum class has no constant with the specified nameNullPointerException- if the argument is null
-
get
根据协议名称获取对应的协议枚举实例。- Parameters:
protocol- 协议名称- Returns:
- 对应的协议枚举实例
- Throws:
IOException- 如果协议名称未知
-
isHttp
判断 URL 是否为 HTTP 协议,支持标准前缀和 URL 编码格式。- Parameters:
url- 待验证的 URL- Returns:
- true 如果是 HTTP 协议,false 否则
-
isHttps
判断 URL 是否为 HTTPS 协议,支持标准前缀和 URL 编码格式。- Parameters:
url- 待验证的 URL- Returns:
- true 如果是 HTTPS 协议,false 否则
-
isLocalHost
判断 URL 是否指向本地主机(域名或 IP),支持 IPv4 和 localhost。- Parameters:
url- 待验证的 URL- Returns:
- true 如果是本地主机,false 否则
-
isHttpsOrLocalHost
判断 URL 是否为 HTTPS 协议或本地主机。- Parameters:
url- 待验证的 URL- Returns:
- true 如果是 HTTPS 或本地主机,false 否则
-
isTcp
public boolean isTcp()判断协议是否基于 TCP(非 UDP)。- Returns:
- true 如果是 TCP 协议,false 如果是 UDP
-
isSecure
public boolean isSecure()判断协议是否为安全协议(基于 TLS/SSL)。- Returns:
- true 如果是安全协议(HTTPS, WSS, TLS, SSL 等),false 否则
-
toString
返回协议名称,用于 ALPN(应用层协议协商)协议标识,如 "http/1.1"、"h2" 等。
-