HTTP, Flask
Скринкаст первой части лекции
Скринкаст второй части лекции
Что нужно установить
С прошлого раза у вас должен быть установлен pip. С его помощью поставьте flask:
План лекции
- TCP/IP.
nc
/nc -l
: демонстрация пары сокетов. ifconfig
, ping
- Протокол HTTP. Запрос к Гуглу через
nc
- Вкладка Networks в Инструментах разработчика
- Прикидываемся веб-сервером: ответ браузеру через
nc -l
- Что происходит при загрузке страницы
- Реализация HTTP-протокола своими руками: веб-фреймворк на голых сокетах
python3 -m http.server
- Фреймворк Flask: routing, шаблоны. “Блог”.
Задание
Напишите сервис “Сокращатель ссылок”. Примеры таких сервисов: http://gg.gg/, http://goo.gl/.
Главный функционал:
- Пользователь вставляет ссылку, нажимает “Shorten”. Его перенаправляю на страницу, где написано, какая короткая ссылка ему выделена.
- Сервер запоминает во внутренних структурах короткую ссылку. Когда к серверу обращаются по короткой ссылке, сервер отправляет редирект на сохраненный длинный урл.
Дополнения:
- Пользователь может придумать своё короткое имя для ссылки.
- Подумайте, зачем людям такой сервис, как они будут его использовать? Нужно ли дать им возможность быстрого копирования созданной ссылки: в один клик, в одно нажатие клавиш?
- Покажите на главной странице все ссылки, добавленные на сайт. Или только последние 10.
Решение задания выложите на гитхаб, добавьте ссылку на вики-страничку.
Если сможете задеплоить в интернет самостоятельно, будет круто. Гуглить инструкции можно по словам “flask deploy”. Истории успеха напишите на вики-страничке с решениями.
Материалы
- Туториалы и документация к Фласку.
- Маленькая статья про HTTP
- RFC 2068 про HTTP 1.1: оригинал на английском, русский перевод
- Wappalyzer - расширение для Хрома, которое показывает веб-технологии, задействованные на текущей страничке