Module bus.core

Enum Class Protocol

java.lang.Object
java.lang.Enum<Protocol>
org.miaixz.bus.core.net.Protocol
All Implemented Interfaces:
Serializable, Comparable<Protocol>, Constable

public enum Protocol extends Enum<Protocol>
网络协议枚举类,用于标识和处理多种网络协议。协议名称对应 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 Constants
    Enum Constant
    Description
    DICOM 协议,用于医学影像数据的传输和存储,遵循 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

    Fields
    Modifier and Type
    Field
    Description
    static final String
    本地 IPv4 地址,值为 "127.0.0.1",表示本地回环地址。
    static final String
    本地主机名,值为 "localhost",用于本地主机访问。
    static final String
    HTTP 前缀,格式为 "http://"。
    static final String
    HTTPS 前缀,格式为 "https://"。
    static final long
    IPv4 地址最大值,数值形式,值为 0xffffffffL,表示最大 IP 地址。
    static final String
    IPv4 地址最大值,字符串形式,值为 "255.255.255.255",表示广播地址。
    static final String
    IPv4 地址最小值,字符串形式,值为 "0.0.0.0",通常用于监听所有接口。
    static final String
    IPv4 未使用地址最大值,字符串形式,值为 "0.255.255.255",表示未分配地址范围。
    final String
    协议名称,用于标识协议类型。
    static final String
    WebSocket 前缀,格式为 "ws://"。
    static final String
    安全 WebSocket 前缀,格式为 "wss://"。
  • Method Summary

    Modifier and Type
    Method
    Description
    static Protocol
    get(String protocol)
    根据协议名称获取对应的协议枚举实例。
    static boolean
    判断 URL 是否为 HTTP 协议,支持标准前缀和 URL 编码格式。
    static boolean
    判断 URL 是否为 HTTPS 协议,支持标准前缀和 URL 编码格式。
    static boolean
    判断 URL 是否为 HTTPS 协议或本地主机。
    static boolean
    判断 URL 是否指向本地主机(域名或 IP),支持 IPv4 和 localhost。
    boolean
    判断协议是否为安全协议(基于 TLS/SSL)。
    boolean
    判断协议是否基于 TCP(非 UDP)。
    返回协议名称,用于 ALPN(应用层协议协商)协议标识,如 "http/1.1"、"h2" 等。
    static Protocol
    Returns the enum constant of this class with the specified name.
    static Protocol[]
    Returns an array containing the constants of this enum class, in the order they are declared.

    Methods inherited from class java.lang.Object

    getClass, notify, notifyAll, wait, wait, wait
  • Enum Constant Details

    • PIPE

      public static final Protocol PIPE
      命名管道协议,使用共享内存进行进程间通信,速度略快于套接字,仅适用于同一机器上的进程。 默认情况下,Java 不支持命名管道。
    • SOCKET

      public static final Protocol SOCKET
      可靠的 TCP/IP 套接字连接协议,提供面向连接的通信。
    • TCP

      public static final Protocol TCP
      传输控制协议(TCP),提供可靠的、面向连接的通信,广泛用于网络应用。
    • UDP

      public static final Protocol UDP
      用户数据报协议(UDP),提供无连接、不可靠的通信,适用于低延迟场景。
    • HTTP

      public static final Protocol HTTP
      超文本传输协议(HTTP),用于网页数据传输,基于明文传输。
    • HTTP_1_0

      public static final Protocol HTTP_1_0
      HTTP/1.0 协议,早期明文协议,不支持持久连接,遵循 RFC 1945。
    • HTTP_1_1

      public static final Protocol HTTP_1_1
      HTTP/1.1 协议,明文协议,支持持久连接和流水线处理,遵循 RFC 7230。
    • HTTP_2

      public static final Protocol HTTP_2
      HTTP/2 协议,二进制框架协议,支持头部压缩、请求多路复用和服务器推送,基于 HTTP/1.1 语义,遵循 RFC 7540。
    • HTTP_3

      public static final Protocol HTTP_3
      HTTP/3 协议,基于 QUIC 传输,支持高效多路复用和低延迟,遵循 RFC 9000。
    • SPDY_3

      public static final Protocol SPDY_3
      SPDY/3.1 协议,Chromium 的二进制框架协议,支持头部压缩和请求多路复用,基于 HTTP/1.1 语义(已废弃)。
    • H2_PRIOR_KNOWLEDGE

      public static final Protocol H2_PRIOR_KNOWLEDGE
      HTTP/2 明文协议,无需升级握手,要求客户端预知服务器支持明文 HTTP/2,遵循 RFC 7540。
    • QUIC

      public static final Protocol QUIC
      QUIC 协议(快速 UDP 互联网连接),基于 UDP 的安全多路复用传输,优化 HTTP/2 语义,遵循 RFC 9000。
    • SOAP_1_1

      public static final Protocol SOAP_1_1
      SOAP 1.1 协议,基于 XML 的简单对象访问协议,用于分布式系统通信,遵循 W3C 标准。
    • SOAP_1_2

      public static final Protocol SOAP_1_2
      SOAP 1.2 协议,SOAP 的升级版本,改进性能和兼容性,遵循 W3C 标准。
    • WS

      public static final Protocol WS
      WebSocket 协议(明文),用于双向实时通信,基于 TCP,遵循 RFC 6455。
    • WSS

      public static final Protocol WSS
      加密的 WebSocket 协议(安全),基于 TLS 的双向实时通信,遵循 RFC 6455。
    • HTTPS

      public static final Protocol HTTPS
      安全的超文本传输协议(HTTPS),基于 TLS/SSL 的加密 HTTP,遵循 RFC 2818。
    • SSL

      public static final Protocol SSL
      通用 SSL 协议,支持某些版本的 SSL 加密(已废弃)。
    • SSLv2

      public static final Protocol SSLv2
      SSL 2.0 协议,早期加密协议,因安全漏洞已废弃。
    • SSLv3

      public static final Protocol SSLv3
      SSL 3.0 协议,改进的加密协议,因安全漏洞已废弃。
    • TLS

      public static final Protocol TLS
      通用 TLS 协议,支持某些版本的 TLS 加密,提供安全通信。
    • TLSv1

      public static final Protocol TLSv1
      TLS 1.0 协议,遵循 RFC 2246,提供安全的加密通信(逐渐废弃)。
    • TLSv1_1

      public static final Protocol TLSv1_1
      TLS 1.1 协议,遵循 RFC 4346,改进安全性(逐渐废弃)。
    • TLSv1_2

      public static final Protocol TLSv1_2
      TLS 1.2 协议,遵循 RFC 5246,进一步增强安全性,广泛使用。
    • TLSv1_3

      public static final Protocol TLSv1_3
      TLS 1.3 协议,遵循 RFC 8446,提供更高安全性和性能,推荐使用。
    • DICOM

      public static final Protocol DICOM
      DICOM 协议,用于医学影像数据的传输和存储,遵循 ISO 12052。
    • HL7

      public static final Protocol HL7
      HL7 协议,用于医疗信息交换的标准化协议,遵循 HL7 国际标准。
    • OIDC

      public static final Protocol OIDC
      OpenID Connect 协议,基于 OAuth2 的身份验证协议,遵循 OpenID 标准。
    • SAML

      public static final Protocol SAML
      SAML 协议,用于单点登录和身份联合,遵循 OASIS 标准。
    • LDAP

      public static final Protocol LDAP
      轻量目录访问协议(LDAP),用于目录服务访问,遵循 RFC 4511。
  • Field Details

    • HTTP_PREFIX

      public static final String HTTP_PREFIX
      HTTP 前缀,格式为 "http://"。
    • HTTPS_PREFIX

      public static final String HTTPS_PREFIX
      HTTPS 前缀,格式为 "https://"。
    • WS_PREFIX

      public static final String WS_PREFIX
      WebSocket 前缀,格式为 "ws://"。
    • WSS_PREFIX

      public static final String WSS_PREFIX
      安全 WebSocket 前缀,格式为 "wss://"。
    • HOST_IPV4

      public static final String HOST_IPV4
      本地 IPv4 地址,值为 "127.0.0.1",表示本地回环地址。
      See Also:
    • HOST_LOCAL

      public static final String HOST_LOCAL
      本地主机名,值为 "localhost",用于本地主机访问。
      See Also:
    • IPV4_STR_MIN

      public static final String IPV4_STR_MIN
      IPv4 地址最小值,字符串形式,值为 "0.0.0.0",通常用于监听所有接口。
      See Also:
    • IPV4_STR_MAX

      public static final String IPV4_STR_MAX
      IPv4 地址最大值,字符串形式,值为 "255.255.255.255",表示广播地址。
      See Also:
    • IPV4_NUM_MAX

      public static final long IPV4_NUM_MAX
      IPv4 地址最大值,数值形式,值为 0xffffffffL,表示最大 IP 地址。
      See Also:
    • IPV4_UNUSED_STR_MAX

      public static final String IPV4_UNUSED_STR_MAX
      IPv4 未使用地址最大值,字符串形式,值为 "0.255.255.255",表示未分配地址范围。
      See Also:
    • name

      public final String name
      协议名称,用于标识协议类型。
  • Method Details

    • values

      public static Protocol[] 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

      public static Protocol valueOf(String name)
      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 name
      NullPointerException - if the argument is null
    • get

      public static Protocol get(String protocol) throws IOException
      根据协议名称获取对应的协议枚举实例。
      Parameters:
      protocol - 协议名称
      Returns:
      对应的协议枚举实例
      Throws:
      IOException - 如果协议名称未知
    • isHttp

      public static boolean isHttp(String url)
      判断 URL 是否为 HTTP 协议,支持标准前缀和 URL 编码格式。
      Parameters:
      url - 待验证的 URL
      Returns:
      true 如果是 HTTP 协议,false 否则
    • isHttps

      public static boolean isHttps(String url)
      判断 URL 是否为 HTTPS 协议,支持标准前缀和 URL 编码格式。
      Parameters:
      url - 待验证的 URL
      Returns:
      true 如果是 HTTPS 协议,false 否则
    • isLocalHost

      public static boolean isLocalHost(String url)
      判断 URL 是否指向本地主机(域名或 IP),支持 IPv4 和 localhost。
      Parameters:
      url - 待验证的 URL
      Returns:
      true 如果是本地主机,false 否则
    • isHttpsOrLocalHost

      public static boolean isHttpsOrLocalHost(String url)
      判断 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

      public String toString()
      返回协议名称,用于 ALPN(应用层协议协商)协议标识,如 "http/1.1"、"h2" 等。
      Overrides:
      toString in class Enum<Protocol>
      Returns:
      协议名称