模块 jdk.httpserver


模块jdk.httpserver
定义特定于 JDK 的 HTTP 服务 API,并提供用于运行最小 HTTP 服务的 jwebserver 工具。

com.sun.net.httpserver 包定义了一个高级 API,用于构建支持 HTTP 和 HTTPS 的服务。 SimpleFileServer 类实现了一个简单的 HTTP-only 文件服务,用于测试、开发和调试目的。默认实现是通过 jwebserver 工具和模块的主要入口点提供的,也可以使用 java -m jdk.httpserver 调用。

com.sun.net.httpserver.spi 包指定了一个服务提供者接口 (SPI),用于基于 com.sun.net.httpserver API 定位 HTTP 服务实现。

HTTP 服务 API 使用的系统属性

以下是 JDK 中默认 HTTP 服务实现使用的 JDK 特定系统属性的列表。如果给定一个不解析为数字的字符串,则以下任何采用数字值的属性均采用默认值。

  • sun.net.httpserver.idleInterval (默认值:30 秒)
    空闲连接保持打开状态的最长时间(以秒为单位)。此计时器具有特定于实现的粒度,这可能意味着空闲连接的关闭时间晚于指定的时间间隔。小于或等于零的值映射到默认设置。

  • jdk.httpserver.maxConnections (默认值:-1)
    一次打开的最大连接数。这包括活动和空闲连接。如果为零或负数,则不强制执行任何限制。

  • sun.net.httpserver.maxIdleConnections (默认值:200)
    一次最大空闲连接数。如果设置为零或负值,则连接在使用后关闭。

  • sun.net.httpserver.drainAmount (默认值:65536)
    将从未被其 HttpHandler 完全消耗的请求正文中自动读取和丢弃的最大字节数。如果剩余未读字节数小于此限制,则连接将放入空闲连接缓存中。如果没有,那么它将被关闭。

  • sun.net.httpserver.maxReqHeaders (默认值:200)
    请求中接受的标头字段的最大数量。如果在读取标头时超过此限制,则会终止连接并忽略请求。如果该值小于或等于零,则使用默认值。

  • sun.net.httpserver.maxReqTime (默认值:-1)
    允许接收请求标头和正文的最长时间(以毫秒为单位)。实际上,实际时间是请求大小、网络速度和处理程序处理延迟的函数。小于或等于零的值表示时间不受限制。如果超过限制,则连接终止,处理程序将收到 IOException 。此计时器具有特定于实现的粒度,这可能意味着请求在指定时间间隔之后中止。

  • sun.net.httpserver.maxRspTime (默认值:-1)
    允许接收响应标头和正文的最长时间(以毫秒为单位)。实际上,实际时间是响应大小、网络速度和处理程序处理延迟的函数。小于或等于零的值表示时间不受限制。如果超过限制,则连接终止,处理程序将收到 IOException 。此计时器具有特定于实现的粒度,这可能意味着响应在指定时间间隔之后中止。

  • sun.net.httpserver.nodelay (默认值:false)
    boolean,如果为真,则在所有传入连接上设置 TCP_NODELAY 套接字选项。

模块图:
Module graph for jdk.httpserverModule graph for jdk.httpserver
工具指南:
jwebserver
自从:
9
  • 输出
    描述
    提供简单的高级 Http 服务 API,可用于构建嵌入式 HTTP 服务。
    提供一个可插入的服务提供者接口,它允许用其他实现替换 HTTP 服务实现。
  • 服务

    用途
    类型
    描述
    HttpServer 的服务提供者类。