Кэширующий веб-сервер (проект) — различия между версиями
Vyacovlev (обсуждение | вклад) (Новая страница, с помощью формы Новый_проект) |
м |
||
Строка 19: | Строка 19: | ||
=== Чему вы научитесь? === | === Чему вы научитесь? === | ||
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: | Строка 43: | ||
=== Критерии оценки === | === Критерии оценки === | ||
4 балла. Реализован веб-сервер, который умеет выдавать статические страницы, использую механизм epoll/kqueue | 4 балла. Реализован веб-сервер, который умеет выдавать статические страницы, использую механизм epoll/kqueue | ||
+ | |||
6 баллов. Сервер умеет перенаправлять запрос другому серверу и передавать обратно ответ | 6 баллов. Сервер умеет перенаправлять запрос другому серверу и передавать обратно ответ | ||
+ | |||
8 баллов. Реализована корректная работа с использованием нескольких нитей | 8 баллов. Реализована корректная работа с использованием нескольких нитей | ||
+ | |||
+1 балл. Реализована поддержка POST-запросов | +1 балл. Реализована поддержка POST-запросов | ||
+ | |||
+1 балл. Сервер оформлен в виде системной службы для systemd | +1 балл. Сервер оформлен в виде системной службы для systemd | ||
+ | |||
+1 балл. Сервер корректно обрабатывает ошибочные запросы | +1 балл. Сервер корректно обрабатывает ошибочные запросы | ||
=== Ориентировочное расписание занятий === | === Ориентировочное расписание занятий === | ||
В зависимости от расписания других занятий, которое еще не опубликовано | В зависимости от расписания других занятий, которое еще не опубликовано |
Версия 21:28, 21 августа 2016
Ментор | Виктор Яковлев |
Учебный семестр | Осень 2016 |
Учебный курс | 2-й курс |
Максимальное количество студентов, выбравших проект: 15 | |
Что это за проект?
Введение
Веб-серверы - это программы, которые работают на физических серверах и обеспечивают выдачу содержимого браузерам.
Кэширующий веб-сервер - это сервер с минимальной функциональность, который умеет только выдавать статику, либо перенаправлять запросы другим серверам. В отличии от полноценных веб-серверов, они ориентированы на быструю работу с большим количеством подключений.
Чему вы научитесь?
1. Устройство протокола HTTP, работа с заголовками и запросами
2. Взаимодействию нитей в Unix
3. Умение разрабатывать программы для Unix-подобных систем и ориентироваться в POSIX API
4. Работать с очередью ядра Linux и FreeBSD
Какие начальные требования?
1. Умение разрабатывать программы на Cи или C++
2. Умение пользоваться виртуальными машинами
Какие будут использоваться технологии?
Только низкоуровневые API систем Linux и FreeBSD. Использование сторонних библиотек запрещено.
Темы вводных занятий
Направления развития
Нет. Это учебный проект для отработки практических навыков по курсу АКОС.
Критерии оценки
4 балла. Реализован веб-сервер, который умеет выдавать статические страницы, использую механизм epoll/kqueue
6 баллов. Сервер умеет перенаправлять запрос другому серверу и передавать обратно ответ
8 баллов. Реализована корректная работа с использованием нескольких нитей
+1 балл. Реализована поддержка POST-запросов
+1 балл. Сервер оформлен в виде системной службы для systemd
+1 балл. Сервер корректно обрабатывает ошибочные запросы
Ориентировочное расписание занятий
В зависимости от расписания других занятий, которое еще не опубликовано