Spec-Zone.ru › OpenJDK 27

Модуль jdk.httpserver

module jdk.httpserver
Определяет API HTTP-сервера, специфичный для JDK, и предоставляет инструмент jwebserver для запуска минимального HTTP-сервера.

Пакет com.sun.net.httpserver определяет высокоуровневый API для создания серверов с поддержкой HTTP и HTTPS. Класс SimpleFileServer реализует простой файловый сервер, работающий только по HTTP и предназначенный для тестирования, разработки и отладки. Реализация по умолчанию предоставляется с помощью инструмента jwebserver — основной точки входа модуля, которую также можно вызвать с помощью java -m jdk.httpserver.

Пакет com.sun.net.httpserver.spi определяет интерфейс поставщика услуг (SPI) для поиска реализаций HTTP-сервера на основе API com.sun.net.httpserver.

Системные свойства, используемые API HTTP-сервера

Ниже приведён список системных свойств, специфичных для 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.maxReqHeaderSize (по умолчанию: 393216 или 384kB)
    Максимальный размер секции полей заголовка, который сервер готов принять. Он вычисляется как сумма размера имени заголовка, размера значения заголовка и дополнительных 32 байтов для каждой строки секции полей. Строка запроса считается первой строкой секции полей: имя в ней пустое, а значение — вся строка. Если это ограничение превышено во время чтения заголовков, соединение прерывается, а запрос игнорируется. Если значение меньше или равно нулю, ограничение не устанавливается.

  • sun.net.httpserver.maxReqTime (по умолчанию: -1)
    Максимальное время в миллисекундах, отведённое на получение заголовков и тела запроса. На практике фактическое время зависит от размера запроса, скорости сети и задержек при обработке обработчиком. Значение, меньшее или равное нулю, означает, что время не ограничено. Если ограничение превышено, соединение прерывается, а обработчик получает IOException. Точность таймера зависит от реализации, поэтому обработка запросов может прерываться позже указанного интервала.

  • sun.net.httpserver.maxRspTime (по умолчанию: -1)
    Максимальное время в миллисекундах, отведённое на получение заголовков и тела ответа. На практике фактическое время зависит от размера ответа, скорости сети и задержек при обработке обработчиком. Значение, меньшее или равное нулю, означает, что время не ограничено. Если ограничение превышено, соединение прерывается, а обработчик получает IOException. Точность таймера зависит от реализации, поэтому обработка ответов может прерываться позже указанного интервала.

  • sun.net.httpserver.nodelay (по умолчанию: false)
    Логическое значение, которое при значении true устанавливает параметр сокета TCP_NODELAY для всех входящих соединений.

  • sun.net.httpserver.pathMatcher (по умолчанию: pathPrefix)
    Схема сопоставления путей, используемая для маршрутизации запросов к обработчикам контекста. Для свойства можно задать одно из следующих значений:

    pathPrefix (по умолчанию)
    Путь запроса должен начинаться с пути контекста, а все совпадающие сегменты пути должны быть идентичны. Например, путь контекста /foo будет соответствовать путям запроса /foo, /foo/ и /foo/bar, но не /foobar.
    stringPrefix
    Строка пути запроса должна начинаться со строки пути контекста. Например, путь контекста /foo будет соответствовать путям запроса /foo, /foo/, /foo/bar и /foobar.

    Если значение пустое или недопустимое, используется значение по умолчанию.

    Это свойство и возможность восстановить поведение сопоставления по префиксу строки могут быть удалены в одном из будущих выпусков.

Примечание об API:
API и SPI этого модуля разработаны и реализованы преимущественно для поддержки минимального HTTP-сервера и простой семантики HTTP.
Примечание по реализации:
Реализация HTTP-сервера по умолчанию, предоставляемая этим модулем, предназначена для простых задач, таких как локальное тестирование, разработка и отладка. Поэтому сервер не проектировался как полнофункциональный высокопроизводительный HTTP-сервер. До JDK 26 в реализации JDK по умолчанию карта атрибутов HttpExchange была общей с содержащим её HttpContext. Начиная с JDK 26, по умолчанию атрибуты обмена данными относятся к отдельному обмену, а доступ к атрибутам контекста осуществляется вызовом getHttpContext().getAttributes().
Новое системное свойство jdk.httpserver.attributes (значение по умолчанию: "") позволяет вернуть прежнее поведение. Чтобы восстановить поведение, существовавшее до JDK 26, задайте для этого свойства значение "context".
Граф модулей:
Module graph for jdk.httpserverModule graph for jdk.httpserver
Руководства по инструментам:
jwebserver
Начиная с:
9

Пакеты

Пакет Описание
com.sun.net.httpserver
Предоставляет простой высокоуровневый API HTTP-сервера, который можно использовать для создания встраиваемых HTTP-серверов.
com.sun.net.httpserver.spi
Предоставляет подключаемый интерфейс поставщика услуг, позволяющий заменять реализацию HTTP-сервера другими реализациями.

Службы

Тип Описание
HttpServerProvider
Класс поставщика услуг для HttpServer.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания, предназначенные для разработчиков, включая концептуальные обзоры, определения терминов, способы обхода проблем и примеры рабочего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API