Кэширующий веб-сервер (проект): различия между версиями
Vyacovlev (обсуждение | вклад) Новая страница, с помощью формы Новый_проект |
Нет описания правки |
||
| (не показано 10 промежуточных версий 2 участников) | |||
| Строка 1: | Строка 1: | ||
{{Карточка_проекта | {{Карточка_проекта | ||
|name= | |name=Кэширующий веб-сервер | ||
|mentor=Виктор Яковлев | |mentor=Виктор Яковлев | ||
|mentor_login={{URLENCODE:Vyacovlev|WIKI}} | |mentor_login={{URLENCODE:Vyacovlev|WIKI}} | ||
| Строка 8: | Строка 8: | ||
|number_of_students=15 | |number_of_students=15 | ||
|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], в которой нужно указать ссылку на страницу с репозиторием. | |||
=== Что это за проект? === | === Что это за проект? === | ||
| Строка 19: | Строка 35: | ||
=== Чему вы научитесь? === | === Чему вы научитесь? === | ||
1. Устройство протокола HTTP, работа с заголовками и запросами | 1. Устройство протокола HTTP, работа с заголовками и запросами | ||
2. Взаимодействию нитей в Unix | 2. Взаимодействию нитей в Unix | ||
3. Умение разрабатывать программы для Unix-подобных систем и ориентироваться в POSIX API | 3. Умение разрабатывать программы для Unix-подобных систем и ориентироваться в POSIX API | ||
4. Работать с очередью ядра Linux и FreeBSD | 4. Работать с очередью ядра Linux и FreeBSD | ||
=== Какие начальные требования? === | === Какие начальные требования? === | ||
1. Умение разрабатывать программы на Cи или C++ | 1. Умение разрабатывать программы на Cи или C++ | ||
2. Умение пользоваться виртуальными машинами | 2. Умение пользоваться виртуальными машинами | ||
| Строка 39: | Строка 59: | ||
=== Критерии оценки === | === Критерии оценки === | ||
4 балла. Реализован веб-сервер, который умеет выдавать статические страницы, использую механизм epoll/kqueue | 4 балла. Реализован веб-сервер, который умеет выдавать статические страницы, использую механизм epoll/kqueue | ||
6 баллов. Сервер умеет перенаправлять запрос другому серверу и передавать обратно ответ | 6 баллов. Сервер умеет перенаправлять запрос другому серверу и передавать обратно ответ | ||
8 баллов. Реализована корректная работа с использованием нескольких нитей | 8 баллов. Реализована корректная работа с использованием нескольких нитей | ||
+1 балл. Реализована поддержка | |||
+1 балл. Реализована поддержка WebSocket-прокси | |||
+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 | |||
Текущая версия от 16:15, 18 октября 2017
| Ментор | Виктор Яковлев |
| Учебный семестр | Осень 2016 |
| Учебный курс | 2-й курс |
| Максимальное количество студентов, выбравших проект: 15 | |
| Внимание! Данный проект находится в архиве и реализован не будет. |
Диклэймер. Впервые ставлю 40% "неудов", но снижать требования или идти ещё на какие-то послабления - уже просто никак не возможно.
Просьбы "можно отправить до завтра" не принимаются. На проектную работу было выделено 7 месяцев. Один день никого не спасет.
Контактная информация
Канал в Telegram для объявлений: @hse_cs_projects_15x_yacovlev
Нужно создать приватный репозиторий в BitBucket или GitHub, и добавить в collaborators ментора:
- BitBucket: victor_yacovlev - GitHub: victor-yacovlev
После этого - заполнить форму https://goo.gl/forms/lzoRPbyyWJskFc2j2, в которой нужно указать ссылку на страницу с репозиторием.
Что это за проект?
Введение
Веб-серверы - это программы, которые работают на физических серверах и обеспечивают выдачу содержимого браузерам.
Кэширующий веб-сервер - это сервер с минимальной функциональность, который умеет только выдавать статику, либо перенаправлять запросы другим серверам. В отличии от полноценных веб-серверов, они ориентированы на быструю работу с большим количеством подключений.
Чему вы научитесь?
1. Устройство протокола HTTP, работа с заголовками и запросами
2. Взаимодействию нитей в Unix
3. Умение разрабатывать программы для Unix-подобных систем и ориентироваться в POSIX API
4. Работать с очередью ядра Linux и FreeBSD
Какие начальные требования?
1. Умение разрабатывать программы на Cи или C++
2. Умение пользоваться виртуальными машинами
Какие будут использоваться технологии?
Только низкоуровневые API систем Linux и FreeBSD. Использование сторонних библиотек запрещено.
Темы вводных занятий
Направления развития
Нет. Это учебный проект для отработки практических навыков по курсу АКОС.
Критерии оценки
4 балла. Реализован веб-сервер, который умеет выдавать статические страницы, использую механизм epoll/kqueue
6 баллов. Сервер умеет перенаправлять запрос другому серверу и передавать обратно ответ
8 баллов. Реализована корректная работа с использованием нескольких нитей
+1 балл. Реализована поддержка WebSocket-прокси
+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