Skip to content

Latest commit

 

History

History
18 lines (14 loc) · 1.42 KB

README.md

File metadata and controls

18 lines (14 loc) · 1.42 KB

Курсовой проект по дисциплине "Компьютерные сети"

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

Требования:

  • поддержка запросов GET и HEAD;
  • поддержка статусов 200, 403, 404, 405;
  • выставление content-type в зависимости от типа файла (поддержка html, css, js, png, jpg, jpeg, swf, gif);
  • корректная передача файлов размером в 100Мб;
  • обработка ошибки в случае выхода адреса за корневую директорию сервера;
  • реализация логгера;
  • реализация архитектуры prefork + pselect().

Средства реализации:

  • ОС на базе ядра Linux (версия ядра - 6.5.13)
  • C (pselect, socket и т.д.)

Примечание. По ошибке реализовал архитектуру fork вместо prefork: каждому клиенту - по обслуживающему процессу (prefork подразумевает использование пула конечного числа дочерних процессов для обслуживания клиентов). Тем не менее, работа была успешно защищена.