20. Веб-программирование.
В широком смысле - всё что относится к созданию веб-сайтов (веб-приложений), в более узком - только та часть, которая в ключает в себя программирование в том или ином виде. Далее рассмотрим веб-программирование в общем, а потом перейдём к Django.
Немного истории
- Про сеть и её элементы.
- Клиент и сервер.
- Простые веб-сайты
- Динамические веб-сайты (aka web 2.0)
- Веб-приложения и интерфейсы сетевого взаимодействия программ.
Клиент-серверное взаимодействие
- Клиент посылает запрос и получает ответ.
- Форматы сообщений и способов их передачи (xml, html, json, http(s), url).
- Способы обработки запроса (сервер, интерфейсы обработчиков (cgi, fastcgi, wsgi), обработчики).
- Клиент выполняет постоянный обмен сообщениями с сервером в рамках сессии.
Некоторые задачи и инструменты веб-программирования
- Организация логики, маршрутизация (routing) и обработка запросов внутри приложения (сайта).
- Языки разметки.
- Шаблонизаторы.
- Интернационализация.
- Базы данных и ORM.
- Безопасность (авторизация, аутентификация, уязвимости при обработке и хранении данных).
- Управление сайтом и его содержимым.
- Фреймворки.
Django - фреймворк для веб-программирования
- Паттерн MVC как способ органзации логики (и отличия в названиях в случае c Django).
- URL routers для задания правил маршрутизации при обработке запросов.
- html и django templates шаблонизатор - для формирования веб-страниц.
- Инструменты интернационализации содержимого сайта, в т.ч. в шаблонах и javascript.
- Встроенная Django ORM для упрощения программного взаимодействия с базами данных.
- Готовые механизмы авторизации, аутентификации и работы с системой пользователей.
- Встроенные возможности для избегания распространённых уязвимостей (SQL injection, XSS, CSRF и т.д.).
- Автоматический интерфейс администратора.