WebDAV сервер на Python (проект)

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Ментор Яковлев Виктор Вадимович
Учебный семестр Весна 2016
Учебный курс 1-й курс
Максимальное количество студентов, выбравших проект: 10



Что это за проект?

Протокол WebDAV является расширением протокола HTTP, дополняя протокол командами для управления файлами на удаленном сервере. Протокол WebDAV поддерживается штатным средствами многих операционных систем (включая Windows, где службы WebDAV можно подключать как обычные сетевые диски). Используется таким ПО, как Яндекс.Диск, ownCloud и различные groupware-системы (варианты протокола CalDAV и CardDAV).

Модуль http.server, входящий в стандартную библиотеку Python3 содержит реализацию сервера (класс HTTPServer), который осуществляет обработку сетевых соединений с помощью зарегистрированного обработчика, и классы обработчиков запросов: BaseHTTPRequestHandler (базовый класс), SimpleHTTPRequestHandler (наследует BaseHTTPRequestHandler) и CGIHTTPRequestHandler (наследует SimpleHTTPRequestHandler).

Класс SimpleHTTPRequestHandler поддерживает только HTTP-команды HEAD и GET, которых достаточно для выдачи статического контента "только для чтения", класс CGIHTTPRequestHandler дополнительно поддерживает команду POST.

В то же время, для поддержки функциональности WebDAV, стандартным классам не хватает поддержки команд PUT, DELETE, PROPFIND, MKCOL, COPY, MOVE.

Реализовать класс, дополняющий функциональность входящего в стандартную библиотеку класса SimpleHTTPRequestHandler поддержкой набора команд, необходимого для реализации обработчика протокола WebDAV.

Чему вы научитесь?

  • Реализация сетевого взаимодействия на верхних уровнях модели OSI.
  • Устройство протокола HTTP, работа с заголовками и запросами.

Какие начальные требования?

  • Знание технического английского языка для чтения документации.
  • Знание языка программирования Python.
  • Умение настраивать веб-сервер Apache, который можно использовать в качестве эталонной реализации.

Какие будут использоваться технологии?

Стандартная библиотека языка Python 3.

Темы вводных занятий

Обзорное занятие по основам сетевых технологий.

Направления развития

Реализация практически применимых виртуальных файловых систем поверх протокола WebDAV.

Критерии оценки

4: Реализация минимального набора команд WebDAV и тестового сервера.

6: Реализация полного набора команд, необходимого для доступа к серверу штатными средствами проводника Windows и KDE.

8: Реализация виртуальной файловой системы аудиоколлекции, либо любой другой виртуальной файловой системы на усмотрение исполнителя.

+1 балл. Виртуальная файловая система доступна не только для чтения, но и для записи.

+1 балл. Результат работы оформлен в виде пакета pip.

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

В зависимости от расписания.