Веб-сервер с функциональностью CGI (проект) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Новая страница, с помощью формы Новый_проект)
 
 
(не показано 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