Skip to content

Latest commit

 

History

History
170 lines (145 loc) · 5.37 KB

programm.md

File metadata and controls

170 lines (145 loc) · 5.37 KB

Web технологий

Программа курса

Архитектура Web приложений

  • Понятие URL и документа
  • Виды документов: HTML, CSS, JS, JSON.
  • Абсолютные и относительные URL
  • Правила разрешения URL-ов
  • Гиперссылки
  • Клиент-серверная архитектура

Web-клиенты

  • Консольные утилиты. Telnet.
  • Библиотеки в ЯП. libcurl, urllib.
  • Браузер.
  • Фичи браузера: куки, сессии, Referer.
  • Основной сценарий работы
  • Классические web приложения
  • One-page приложения

HTML

  • основы разметки
  • DOCTYPE
  • Картинки, стили, скрипты и другие ресурсы
  • Блочные и строчные тэги
  • Таблицы и списки
  • Гиперссылки и формы

CSS

  • синтаксис
  • селекторы
  • псевдоклассы и псевдоэлементы
  • приоритеты стилей и каскадирование
  • основные стили
  • позиционирование
  • box-model

Сетевые протоколы

  • DNS
  • Домены и зоны, делегирование
  • Рекурсивные запросы
  • TCP
  • Понятие порта
  • TCP handshake
  • TCP клиент и сервер
  • TLS

Протокол HTTP

  • Назначение и ключевые особенности
  • Синтаксис запроса и ответа
  • Методы запросов
  • HTTP заголовки
  • Коды ответа
  • Управление соединением

Web-сервера

  • Файлы и процессы сервера
  • Внутренняя архитектура сервера
  • Примеры конфигурации
  • Понятие location
  • Методы обработки сетевых соединений

Архитектура frontend - backend

  • Задачи frontend сервера
  • Reverse proxy
  • Проксирование запросов
  • Application сервера
  • Протоколы CGI, FastCGI, WSGI

MVC фреймворки (1)

  • Компоненты MVC
  • Django как пример MVC фреймворка
  • Структура Django проекта
  • Модульность в Djnago: приложения
  • Конфигурация проектов
  • Маршрутизация URL
  • Обратная маршрутизация URL

MVC фреймворки (2)

  • Контроллеры в Djnago
  • Объекты HttpRequest и HttpResponse
  • Получение GET и POST параметров
  • Работа с HTTP заголовками в Django
  • Декораторы
  • Шаблонизация в Django
  • Наследование шаблонов
  • Context processors

Работа с СУБД

  • Реляционная модель данных
  • Проектирование баз данных
  • Работа с СУБД в Python
  • Работа с СУБД в Django
  • Понятие ORM, модели Django
  • Описание таблиц и связей в модели Django
  • Типы полей в моделях

API моделей Django

  • Создание и изменение объектов
  • Загрузка данных из базы
  • QuerySet
  • ModelManagers
  • Расширение ModelManagers
  • Миграции баз данных

Отображение данных

  • Отображение страницы объекта
  • 404-страницы
  • Отображение связанных сущностей
  • Отображение списка объектов
  • Постраничное отображение
  • Progressive loading

Обработка форм

  • GET и POST формы
  • Общий сценарий обработки
  • Перенаправления в HTTP
  • Описание форм в Django
  • Типы полей в формах Django
  • Валидация данных
  • Использование форм в контроллерах и шаблонах
  • CSRF

Сессии и Авторизация

  • Basic HTTP Authorization
  • Механизм Cookie
  • Установка и получение cookie в HTTP
  • Авторизация с использованием cookie
  • Сценарий входа: login
  • Сценарий проверки сессии
  • Middleware в Django
  • Безопасное хранение паролей
  • Безопасность сессий

Технология AJAX

  • AJAX на стоне клиента
  • AJAX запросы с использованием jQuery
  • Передача HTML и JSON в AJAX запросах
  • Особенности контроллеров для AJAX
  • Cross Origin Resource Sharing

Real-time сообщения

  • Общая архитектура
  • Polling
  • Long-polling (comet)
  • Server-push
  • WebSocket
  • Механизм обновления (Upgrade) соединений

TODO:

Дополнительные технологии

  • Очереди сообщений
  • Full-text search
  • Cron и Celery

Кеширование

  • разновидности кешей
  • proxy caching
  • memcached

TODO2:

  • Расширения протокола HTTP
  • HTTP/2.0 и SPDY
  • расставить RFC
  • расставить ссылки на литературу