Кэширующий веб-сервер (проект) — различия между версиями

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

Ориентировочное расписание занятий

В зависимости от расписания других занятий, которое еще не опубликовано