Веб-сервер с функциональностью CGI (проект) — различия между версиями
Vyacovlev (обсуждение | вклад) (Новая страница, с помощью формы Новый_проект) |
|||
(не показано 8 промежуточных версии 2 участников) | |||
Строка 1: | Строка 1: | ||
{{Карточка_проекта | {{Карточка_проекта | ||
|name=Веб-сервер с функциональностью CGI | |name=Веб-сервер с функциональностью CGI | ||
− | |mentor= | + | |mentor=Виктор Яковлев |
|mentor_login={{URLENCODE:Vyacovlev|WIKI}} | |mentor_login={{URLENCODE:Vyacovlev|WIKI}} | ||
|semester=Осень 2016 | |semester=Осень 2016 | ||
Строка 8: | Строка 8: | ||
|number_of_students=23 | |number_of_students=23 | ||
|categorize=yes | |categorize=yes | ||
+ | |is_archived=yes | ||
}} | }} | ||
+ | |||
+ | '''Диклэймер'''. Впервые ставлю 40% "неудов", но снижать требования или идти ещё на какие-то послабления - уже просто никак не возможно. | ||
+ | Просьбы "можно отправить до завтра" не принимаются. На проектную работу было выделено 7 месяцев. Один день никого не спасет. | ||
+ | |||
+ | === Контактная информация === | ||
+ | |||
+ | Канал в Telegram для объявлений: [https://telegram.me/hse_cs_projects_15x_yacovlev @hse_cs_projects_15x_yacovlev] | ||
+ | |||
+ | Нужно создать '''приватный''' репозиторий в BitBucket или GitHub, и добавить в collaborators ментора: | ||
+ | |||
+ | - BitBucket: victor_yacovlev | ||
+ | - GitHub: victor-yacovlev | ||
+ | |||
+ | После этого - заполнить форму [https://goo.gl/forms/lzoRPbyyWJskFc2j2 https://goo.gl/forms/lzoRPbyyWJskFc2j2], в которой нужно указать ссылку на страницу с репозиторием. | ||
=== Что это за проект? === | === Что это за проект? === | ||
Строка 24: | Строка 39: | ||
=== Чему вы научитесь? === | === Чему вы научитесь? === | ||
1. Устройство протокола HTTP, работа с заголовками и запросами | 1. Устройство протокола HTTP, работа с заголовками и запросами | ||
+ | |||
2. Взаимодействию процессов в Unix | 2. Взаимодействию процессов в Unix | ||
+ | |||
3. Умение разрабатывать программы для Unix-подобных систем и ориентироваться в POSIX API | 3. Умение разрабатывать программы для Unix-подобных систем и ориентироваться в POSIX API | ||
Строка 32: | Строка 49: | ||
=== Какие будут использоваться технологии? === | === Какие будут использоваться технологии? === | ||
Только POSIX. | Только POSIX. | ||
+ | |||
Использование сторонних библиотек запрещено. | Использование сторонних библиотек запрещено. | ||
Строка 42: | Строка 60: | ||
=== Критерии оценки === | === Критерии оценки === | ||
4 балла. Реализован веб-сервер, который умеет выдавать статические страницы и обслуживать одновременно несколько подключений | 4 балла. Реализован веб-сервер, который умеет выдавать статические страницы и обслуживать одновременно несколько подключений | ||
+ | |||
6 баллов. Помимо выдачи статического содержимого, сервер умеет выполнять сторонние программы и выдавать результат их работы | 6 баллов. Помимо выдачи статического содержимого, сервер умеет выполнять сторонние программы и выдавать результат их работы | ||
+ | |||
9 баллов. Реализована функциональность прерывания работы и изоляции потенциально опасных CGI-скриптов. | 9 баллов. Реализована функциональность прерывания работы и изоляции потенциально опасных CGI-скриптов. | ||
+ | |||
+1 балл. Реализована поддержка POST-запросов | +1 балл. Реализована поддержка POST-запросов | ||
+ | |||
+1 балл. Сервер оформлен в виде системной службы для systemd | +1 балл. Сервер оформлен в виде системной службы для systemd | ||
+ | |||
+1 балл. Сервер корректно обрабатывает ошибочные запросы | +1 балл. Сервер корректно обрабатывает ошибочные запросы | ||
=== Ориентировочное расписание занятий === | === Ориентировочное расписание занятий === | ||
− | + | ||
+ | Аудитории: 432 (вторник), 322 (суббота) | ||
+ | |||
+ | 1 ноября (вторник) - две пары: 15:10-16:30, 16:40-18:00 | ||
+ | |||
+ | 5 ноября (суббота) - 12:10-13:30 | ||
+ | |||
+ | 8 ноября (вторник) - две пары: 15:10-16:30, 16:40-18:00 | ||
+ | |||
+ | 19 ноября (суббота) - 12:10-13:30 | ||
+ | |||
+ | 29 ноября (вторник) - две пары: 15:10-16:30, 16:40-18:00 | ||
+ | |||
+ | 3 декабря (суббота) - 12:10-13:30 |
Текущая версия на 19:13, 18 октября 2017
Ментор | Виктор Яковлев |
Учебный семестр | Осень 2016 |
Учебный курс | 2-й курс |
Максимальное количество студентов, выбравших проект: 23 | |
Внимание! Данный проект находится в архиве и реализован не будет. |
Диклэймер. Впервые ставлю 40% "неудов", но снижать требования или идти ещё на какие-то послабления - уже просто никак не возможно. Просьбы "можно отправить до завтра" не принимаются. На проектную работу было выделено 7 месяцев. Один день никого не спасет.
Контактная информация
Канал в Telegram для объявлений: @hse_cs_projects_15x_yacovlev
Нужно создать приватный репозиторий в BitBucket или GitHub, и добавить в collaborators ментора:
- BitBucket: victor_yacovlev - GitHub: victor-yacovlev
После этого - заполнить форму https://goo.gl/forms/lzoRPbyyWJskFc2j2, в которой нужно указать ссылку на страницу с репозиторием.
Что это за проект?
Введение
Веб-серверы - это программы, которые работают на физических серверах и обеспечивают выдачу содержимого браузерам.
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 балл. Сервер корректно обрабатывает ошибочные запросы
Ориентировочное расписание занятий
Аудитории: 432 (вторник), 322 (суббота)
1 ноября (вторник) - две пары: 15:10-16:30, 16:40-18:00
5 ноября (суббота) - 12:10-13:30
8 ноября (вторник) - две пары: 15:10-16:30, 16:40-18:00
19 ноября (суббота) - 12:10-13:30
29 ноября (вторник) - две пары: 15:10-16:30, 16:40-18:00
3 декабря (суббота) - 12:10-13:30