Skip to content

p1xelse/iu7-networks-cp

Repository files navigation

iu7-networks-cp | thread pool + epoll()

Написать классический статик сервер для отдачи контента с диска.

Требования:

  1. Поддержка запросов GET и HEAD (поддержка статусов 200, 403, 404).
  2. Ответ на Неподдерживаемые запросы статусом 405
  3. Выставление content type в зависимости от типа файла (поддержка .html, .css, .js, .png, .jpg, .jpeg, .swf, .gif)
  4. Корректная передача файлов размером в 100мб.
  5. Сервер по умолчанию должен возвращать html-страницу на выбранную тему с css-стилем.
  6. Учесть минимальные требования к безопасности статик-серверов (предусмотреть ошибку в случае если адрес будет выходить за root директорию сервера)
  7. Реализовать логгер.
  8. Использовать язык Си. Сторонние библиотеки запрещены.
  9. Реализовать архитектуру по одному из вариантов представленных ниже (номер варианта = ваш порядковый номер в списке электронного университета mod количество вариантов + 1)
  10. Статик сервер должен работать стабильно.
  11. Провести сравнение результатов прохождения нагрузочного тестирования при помощи apache benchmark с nginx.

Варианты архитектуры сервера (для каждого студента определяется по <порядковый номер студента> mod 8):

  1. thread pool + select()
  2. prefork + select()
  3. thread pool + pselect()
  4. prefork + pselect()
  5. thread pool + poll()
  6. prefork + poll()
  7. thread pool + epoll() -- мой варик
  8. prefork + epoll()

About

Курсовой проект по сетям

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages