Веб-сервер с функциональностью CGI (проект) — различия между версиями
Vyacovlev (обсуждение | вклад) (Новая страница, с помощью формы Новый_проект) |
м |
||
Строка 24: | Строка 24: | ||
=== Чему вы научитесь? === | === Чему вы научитесь? === | ||
1. Устройство протокола HTTP, работа с заголовками и запросами | 1. Устройство протокола HTTP, работа с заголовками и запросами | ||
+ | |||
2. Взаимодействию процессов в Unix | 2. Взаимодействию процессов в Unix | ||
+ | |||
3. Умение разрабатывать программы для Unix-подобных систем и ориентироваться в POSIX API | 3. Умение разрабатывать программы для Unix-подобных систем и ориентироваться в POSIX API | ||
Строка 32: | Строка 34: | ||
=== Какие будут использоваться технологии? === | === Какие будут использоваться технологии? === | ||
Только POSIX. | Только POSIX. | ||
+ | |||
Использование сторонних библиотек запрещено. | Использование сторонних библиотек запрещено. | ||
Строка 42: | Строка 45: | ||
=== Критерии оценки === | === Критерии оценки === | ||
4 балла. Реализован веб-сервер, который умеет выдавать статические страницы и обслуживать одновременно несколько подключений | 4 балла. Реализован веб-сервер, который умеет выдавать статические страницы и обслуживать одновременно несколько подключений | ||
+ | |||
6 баллов. Помимо выдачи статического содержимого, сервер умеет выполнять сторонние программы и выдавать результат их работы | 6 баллов. Помимо выдачи статического содержимого, сервер умеет выполнять сторонние программы и выдавать результат их работы | ||
+ | |||
9 баллов. Реализована функциональность прерывания работы и изоляции потенциально опасных CGI-скриптов. | 9 баллов. Реализована функциональность прерывания работы и изоляции потенциально опасных CGI-скриптов. | ||
+ | |||
+1 балл. Реализована поддержка POST-запросов | +1 балл. Реализована поддержка POST-запросов | ||
+ | |||
+1 балл. Сервер оформлен в виде системной службы для systemd | +1 балл. Сервер оформлен в виде системной службы для systemd | ||
+ | |||
+1 балл. Сервер корректно обрабатывает ошибочные запросы | +1 балл. Сервер корректно обрабатывает ошибочные запросы | ||
=== Ориентировочное расписание занятий === | === Ориентировочное расписание занятий === | ||
В зависимости от расписания других занятий, которое еще не опубликовано | В зависимости от расписания других занятий, которое еще не опубликовано |
Версия 21:29, 21 августа 2016
Ментор | Витор Яковлев |
Учебный семестр | Осень 2016 |
Учебный курс | 2-й курс |
Максимальное количество студентов, выбравших проект: 23 | |
Что это за проект?
Введение
Веб-серверы - это программы, которые работают на физических серверах и обеспечивают выдачу содержимого браузерам.
Common Gateway Interface (CGI) - простой интерфейс взаимодействия между веб-сервером и сторонними программами, генерирующими динамический контент. В отличии от веб-фреймворков, используется там, где нужна очень простая функциональность.
Что требуется
Реализовать веб-сервер, функционально аналогичный старым версиям Apache. Требования к серверу: Уметь выдавать как статический, так и динамический контент; уметь обрабатывать ошибки.
Чему вы научитесь?
1. Устройство протокола HTTP, работа с заголовками и запросами
2. Взаимодействию процессов в Unix
3. Умение разрабатывать программы для Unix-подобных систем и ориентироваться в POSIX API
Какие начальные требования?
Умение разрабатывать программы на Cи или C++
Какие будут использоваться технологии?
Только POSIX.
Использование сторонних библиотек запрещено.
Темы вводных занятий
Направления развития
Нет. Это учебный проект для отработки практических навыков по курсу АКОС.
Критерии оценки
4 балла. Реализован веб-сервер, который умеет выдавать статические страницы и обслуживать одновременно несколько подключений
6 баллов. Помимо выдачи статического содержимого, сервер умеет выполнять сторонние программы и выдавать результат их работы
9 баллов. Реализована функциональность прерывания работы и изоляции потенциально опасных CGI-скриптов.
+1 балл. Реализована поддержка POST-запросов
+1 балл. Сервер оформлен в виде системной службы для systemd
+1 балл. Сервер корректно обрабатывает ошибочные запросы
Ориентировочное расписание занятий
В зависимости от расписания других занятий, которое еще не опубликовано