27 января 2023

Apache, прощай!

Представляю первую версию многопоточного http.net сервера для Windows, написанного на C#. Сервер написан с нуля в течение января 2023 года. Причем это мой первый опыт использования C#. Реализован уникальный механизм с использованием массива объектов сессий. По умолчанию предусмотрена одновременная обработка 8888-ти запросов, но в параметрах можно указать любое до 15383. По умолчанию в качестве скриптов используются очень быстрые wsf-файлы компонента ОС Windows WSH, где могут использоваться языки JScript и VBScript. В параметрах можно определить любой обработчик скриптов. Сервер реализован в виде консольной утилиты. Выдаваемая помощь:
D:\work\httpd>http.net /?
Многопоточный http.net сервер версия 1.8, (C) kornienko.ru март 2024.

ИСПОЛЬЗОВАНИЕ:
    http.net [Параметр1 Значение1] [Параметр2 Значение2] ...

    При необходимости указываются пары Параметр и Значение. Если значение текст и содержит
    пробелы, то его необходимо заключать в кавычки.

Параметры:                                                          Значения по умолчанию:
     -d      Папка, содержащая домены.                                        ../www/
     -i      Главный документ в папках. Главный документ в папке, заданной    index.html
             параметром -d используется для отображения страницы с кодом
             404 - файл не найден. Для сжатия трафика поддерживаются файлы,
             сжатые методом gzip вида имя.расширение.gz, например -
             index.html.gz или library.js.gz и т.д.
     -p      Порт, который прослушивает сервер.                               8080
     -b      Размер буферов чтения и записи.                                  16384
     -s      Количество одновременно обрабатываемых запросов. Максимальное    8888
             число ограничивается только производительностью процессора и
             размером оперативной памяти.
     -q      Количество дополнительных запросов, хранящихся в очереди,        8888
             если превышено количество поступивших одновременно запросов,
             заданных параметром -s. Если сумма обрабатываемых и ожидающих
             в очереди запросов будет превышена, то клиенту посылается
             отказ в обслуживании.
     -log    Размер журнала регистрации запросов в строках. Журнал состоит    10000
             из двух чередующихся версий http.net.x.log и http.net.y. Если
             задан размер менее 80, то журнал не ведётся.
     -less   Максимальный размер небольших файлов, которые должны             524288
             кешироваться. Все такие файлы при обращении к ним для повышения
             производительности будут сохраняться в оперативной памяти.
     -post   Максимальный размер принимаемого запроса для передачи            33554432
             файлу-скрипту. Если он будет превышен, то запрос помещается в
             файл, имя которого передается скрипту в переменной окружения
             POST_FILENAME. Другие формируемые переменные окружения -
             SCRIPT_FILENAME, QUERY_STRING, HTTP_COOKIE, REMOTE_ADDR. Если в
             данных запроса отсутствует директива form-..., то входящий
             поток данных целиком будет помещен в файл. Эта особенность
             может использоваться для передачи серверу файлов. При этом имя
             файла будет находиться в переменной окружения POST_FILENAME.
     -proc   Используемый оброботчик скриптов. Если нобходимо, то нужно       cscript.exe
             также включить полный путь к исполняемому файлу. По умолчанию
             используется встроенный в ОС Microsoft Windows компонент,
             очень быстрый обработчик - сервер сценариев (WSH), использующий
             языки JScript и VBScript.
     -args   Дополнительные параметры командной строки запуска оброботчика.
             При использовании cscript.exe в случае, если дополнительные
             параметры не заданы, используется параметр //Nologo.
     -ext    Расширение файлов-скриптов.                                      wsf
D:\work\httpd>
Ссылка на проект на github.com https://github.com/Arkady23/http.net

Комментариев нет:

Отправить комментарий

NVME диск в очень старый ПК с 775 сокетом. Размещение папки Users на втором диске

При обращении к поисковикам с вопросом об установке современного быстрого диска формфактора M2 NVME узнаешь, что людей волнует тема размещен...