Module jdk.httpserver


module jdk.httpserver
定义了JDK特定的HTTP服务器API,并提供了jwebserver工具来运行一个最小的HTTP服务器。

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

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

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)
    布尔值,如果为true,则在所有传入连接上设置TCP_NODELAY套接字选项。

模块图:
jdk.httpserver的模块图jdk.httpserver的模块图
工具指南:
jwebserver
自JDK版本:
9
  • Packages

    Exports
    Package
    Description
    提供了一个简单的高级Http服务器API,可用于构建嵌入式HTTP服务器。
    提供了一个可插拔的服务提供者接口,允许用其他实现替换HTTP服务器实现。
  • Services

    Uses
    Type
    Description
    用于HttpServer的服务提供者类。