Основы веб-технологий

Содержание

Слайд 2

2014 © EPAM Systems, RD Dep.

Содержание

Обобщённая схема веб-технологий
Многоуровневая архитектура приложений
Принципы работы веб-приложений
Архитектура

2014 © EPAM Systems, RD Dep. Содержание Обобщённая схема веб-технологий Многоуровневая архитектура
веб-приложений
Java
ASP
PHP, Perl, Python, Ruby
Сравнение архитектур
Процесс разработки веб-приложений
Рекомендуемые источники информации

Слайд 3

ОБОБЩЁННАЯ СХЕМА ВЕБ-ТЕХНОЛОГИЙ

2014 © EPAM Systems, RD Dep.

ОБОБЩЁННАЯ СХЕМА ВЕБ-ТЕХНОЛОГИЙ 2014 © EPAM Systems, RD Dep.

Слайд 4

Обобщённая схема веб-технологий

2014 © EPAM Systems, RD Dep.

Веб-серверы и серверы приложений

Сетевые технологии

Базы

Обобщённая схема веб-технологий 2014 © EPAM Systems, RD Dep. Веб-серверы и серверы
данных

Языки программирования

Языки разметки и оформления

Языки и форматы обмена данными

Веб-приложения

Веб-сервисы

Слайд 5

Обобщённая схема веб-технологий

2014 © EPAM Systems, RD Dep.

Базы данных

Языки программирования

Языки разметки и

Обобщённая схема веб-технологий 2014 © EPAM Systems, RD Dep. Базы данных Языки
оформления

Языки и форматы обмена данными

Веб-приложения

Веб-сервисы

Веб-серверы и серверы приложений

Сетевые технологии

Слайд 6

Веб-серверы и серверы приложений

2014 © EPAM Systems, RD Dep.

Веб-сервер (web server) –

Веб-серверы и серверы приложений 2014 © EPAM Systems, RD Dep. Веб-сервер (web
специальное ПО, принимающее запросы (request) (как правило – HTTP) от веб-клиентов (web client), и генерирующее соответствующий ответ (response).

Веб-клиент

Веб-сервер

Магия ☺

Запрос

Ответ

Взаимодействие

Об этом – чуть позже

Слайд 7

Веб-серверы и серверы приложений

2014 © EPAM Systems, RD Dep.

Для отображения одной страницы

Веб-серверы и серверы приложений 2014 © EPAM Systems, RD Dep. Для отображения
может выполняться много запросов: браузеру необходимо получить множество различных элементов – css-файлы, js-файлы, картинки и т.д.

Слайд 8

Веб-серверы и серверы приложений

2014 © EPAM Systems, RD Dep.

Основные функции веб-сервера…

КАКИЕ?

Веб-серверы и серверы приложений 2014 © EPAM Systems, RD Dep. Основные функции веб-сервера… КАКИЕ?

Слайд 9

Веб-серверы и серверы приложений: функции веб-сервера

2014 © EPAM Systems, RD Dep.

Обработка запросов

Веб-серверы и серверы приложений: функции веб-сервера 2014 © EPAM Systems, RD Dep.
и генерация ответов.

Обеспечение опосредованного доступа к ФС.

Обеспечение интерфейса к серверу приложений.

Контроль прав доступа.

Шифрование трафика.

Балансировка нагрузки.

Маршрутизация запросов (по виртуальным хостам).

Обработка ошибочных ситуаций.

Протоколирование.

Слайд 10

Веб-серверы и серверы приложений

2014 © EPAM Systems, RD Dep.

Наиболее распространённые веб-серверы:

По данным

Веб-серверы и серверы приложений 2014 © EPAM Systems, RD Dep. Наиболее распространённые
http://w3techs.com/technologies/overview/web_server/all.

Данные на 01.02.2018

Слайд 11

Веб-серверы и серверы приложений

2014 © EPAM Systems, RD Dep.

А ещё?

Что ещё нам

Веб-серверы и серверы приложений 2014 © EPAM Systems, RD Dep. А ещё?
надо знать о работе веб-сервера?

Что может негативно сказаться на работоспособности сервера?

Слайд 12

Веб-серверы и серверы приложений

2014 © EPAM Systems, RD Dep.

Веб-сервер в ответ на

Веб-серверы и серверы приложений 2014 © EPAM Systems, RD Dep. Веб-сервер в
запрос отдаёт «некий контент»:

Контент

Статический
(Static)

Динамический
(Dynamic)

Всё то, что «уже готово» к передаче клиенту.

Всё то, что «создаётся на лету» по факту поступления запроса.

Может быть закэширован.

Слайд 13

Веб-серверы и серверы приложений

2014 © EPAM Systems, RD Dep.

Веб-сервер также может выполнять

Веб-серверы и серверы приложений 2014 © EPAM Systems, RD Dep. Веб-сервер также
«преобразование URL».

Преобразование URL (URL rewriting) – способ представить динамические URL в максимально удобной для восприятия человеком форме.

www.site.com/catalog/notebooks/hp/new/

www.site.com/index.php?page=catalog&category=notebooks&vendor=hp&mode=new

VS

См. подробности здесь: http://httpd.apache.org/docs/current/mod/mod_rewrite.html.

Слайд 14

Веб-серверы и серверы приложений

2014 © EPAM Systems, RD Dep.

Один из способов реализации

Веб-серверы и серверы приложений 2014 © EPAM Systems, RD Dep. Один из
преобразования URL – использование модуля mod_rewrite веб-сервера Apache.

См. подробности здесь: http://httpd.apache.org/docs/current/mod/mod_rewrite.html.

Не самый корректный, но самый простой пример. В файле .htaccess прописывается:

RewriteEngine On
RewriteBase /
RewriteRule .* index.php?url=$0 [QSA,L]

Теперь запрос к любому объекту будет переадресован на index.php.

Слайд 15

Веб-серверы и серверы приложений

2014 © EPAM Systems, RD Dep.

Сервер приложений (application server)

Веб-серверы и серверы приложений 2014 © EPAM Systems, RD Dep. Сервер приложений
– специальное ПО, выполняющее для взаимодействующих с ним приложений ряд специфических функций, таких как управление производительностью, безопасностью, взаимодействие с операционной системой и т.п.

Частным случаем серверов приложений можно считать т.н. «среды исполнения» (.NET Framework, Java Runtime Environment, PHP и т.п.)

Сервер приложений

Приложение

Приложение

Приложение

Приложение

Приложение

Приложение

Слайд 16

Веб-серверы и серверы приложений: функции сервера приложений

2014 © EPAM Systems, RD Dep.

Изолирование

Веб-серверы и серверы приложений: функции сервера приложений 2014 © EPAM Systems, RD
приложения от ОС и «железа».

Предоставление API для типичных действий.

Управление ресурсами.

Протоколирование.

Оптимизация выполнения операций.

Балансировка нагрузки (в некоторых случаях).

Обработка ошибочных ситуаций.

Слайд 17

Сетевые технологии

2014 © EPAM Systems, RD Dep.

Какие сетевые технологии задействованы в работе

Сетевые технологии 2014 © EPAM Systems, RD Dep. Какие сетевые технологии задействованы
веб-технологий?

Сетевые технологии (network technologies) – совокупность технологий, обеспечивающих функционирование компьютерных сетей и аппаратных и программных средств, использующих в своей работе компьютерные сети.

Слайд 18

Сетевые технологии: что задействовано?

2014 © EPAM Systems, RD Dep.

Для полноценного понимания сетевых

Сетевые технологии: что задействовано? 2014 © EPAM Systems, RD Dep. Для полноценного
технологий, задействованных в работе веб-приложений, рекомендуется ознакомиться с семиуровневой моделью ISO/OSI (особое внимание стоит уделить уровням 6-7).
См.: http://en.wikipedia.org/wiki/OSI_model
Если вкратце, то…

Слайд 19

Сетевые технологии: OSI-модель, уровни

2014 © EPAM Systems, RD Dep.

Сетевые технологии: OSI-модель, уровни 2014 © EPAM Systems, RD Dep.

Слайд 20

Сетевые технологии: OSI-модель, протоколы

2014 © EPAM Systems, RD Dep.

HTTPS  — расширение протокола HTTP, поддерживающее шифрование. Данные,

Сетевые технологии: OSI-модель, протоколы 2014 © EPAM Systems, RD Dep. HTTPS —
передаваемые по протоколу HTTPS, «упаковываются» в криптографический протокол SSL или TLS.
Метод HTTP — последовательность из любых символов, кроме управляющих и разделителей, указывающая на основную операцию над ресурсом. 
GET
POST
OPTIONS
HEAD
PUT
PATCH
DELETE
TRACE
CONNECT

Слайд 21

2014 © EPAM Systems, RD Dep.

2014 © EPAM Systems, RD Dep.

Слайд 22

Сетевые технологии: HTTP коды

2014 © EPAM Systems, RD Dep.
Код состояния HTTP — часть

Сетевые технологии: HTTP коды 2014 © EPAM Systems, RD Dep. Код состояния
первой строки ответа сервера при запросах по протоколу HTTP.
1xx Informational
2xx Success
3xx Redirection
4xx Client Error
5xx Server Error

Слайд 23

Базы данных

2014 © EPAM Systems, RD Dep.

Веб-клиент

Веб-сервер

Запрос

Ответ

Базы данных (databases) под управлением СУБД

Базы данных 2014 © EPAM Systems, RD Dep. Веб-клиент Веб-сервер Запрос Ответ
(DBMS, database management systems, системы управления базами данных) являются универсальным хранилищем информации для веб-приложений.

Сервер приложений

СУБД

Слайд 24

Базы данных

2014 © EPAM Systems, RD Dep.

Веб-сервер

В каких случаях происходят эти варианты

Базы данных 2014 © EPAM Systems, RD Dep. Веб-сервер В каких случаях
взаимодействий?

Сервер приложений

СУБД

1

2

3

Например, протоколирование или авторизация.

Слайд 25

Базы данных

2014 © EPAM Systems, RD Dep.

А бывают ли ситуации, когда с

Базы данных 2014 © EPAM Systems, RD Dep. А бывают ли ситуации,
СУБД взаимодействует веб-клиент?

Веб-клиент

СУБД

?

Как правило, в случае «встроенных» «СУБД».

Слайд 26

Базы данных

2014 © EPAM Systems, RD Dep.

Что хранится и НЕ хранится в

Базы данных 2014 © EPAM Systems, RD Dep. Что хранится и НЕ хранится в БД:
БД:

Слайд 27

«Что где хранится» (расширенная версия)

2014 © EPAM Systems, RD Dep.

Хранится в БД

Хранится

«Что где хранится» (расширенная версия) 2014 © EPAM Systems, RD Dep. Хранится
в файловой системе

Генерируется динамически

Структура приложения (сайта)

Текстовое наполнение страниц

Некоторые настройки

Скрипты

Мультимедийная информация

Некоторые настройки

Кэш готовых страниц

Кэш готовых страниц

Готовые страницы

Текстовая информация

Мультимедийная информация

Слайд 28

Языки и форматы и обмена данными

2014 © EPAM Systems, RD Dep.

Загляните на

Языки и форматы и обмена данными 2014 © EPAM Systems, RD Dep.
http://w3schools.com

XML

DTD

WSDL

SOAP

JSON

RSS

и т.д.

Слайд 29

Языки и форматы и обмена данными

2014 © EPAM Systems, RD Dep.

XML (eXtensible

Языки и форматы и обмена данными 2014 © EPAM Systems, RD Dep.
Markup Language) – формат хранения и обмена структурированными данными.

DTD –
WSDL –
SOAP –
JSON –
RSS –

?

Может быть, мы ещё что-то забыли?

Слайд 30

Языки программирования

2014 © EPAM Systems, RD Dep.

Java

ASP

PHP

Perl

Python

Ruby

JavaScript

ActionScript

Работают на стороне сервера

Работают на стороне

Языки программирования 2014 © EPAM Systems, RD Dep. Java ASP PHP Perl
клиента

Может быть, мы ещё что-то забыли?

Слайд 31

Языки разметки и оформления

2014 © EPAM Systems, RD Dep.

HTML

HTML5

CSS

CSS3

Загляните на http://w3schools.com

Языки разметки и оформления 2014 © EPAM Systems, RD Dep. HTML HTML5

Слайд 32

Языки разметки и оформления

2014 © EPAM Systems, RD Dep.

HTML (Hypertext Markup Language,

Языки разметки и оформления 2014 © EPAM Systems, RD Dep. HTML (Hypertext
язык гипертекстовой разметки) – специальный язык РАЗМЕТКИ, используемый для описания структуры документа.

XHTML (Extensible Hypertext Markup Language, расширяемый язык гипертекстовой разметки) – более строгий «вариант» HTML, базирующийся на спецификациях XML.

HTML5 – «улучшенная» версия HTML, добавляющая широкий спектр новых возможностей. Полный список нововведений в HTML5 можно увидеть здесь:
http://www.w3.org/TR/html5-diff/

Слайд 33

Языки разметки и оформления

2014 © EPAM Systems, RD Dep.

CSS (Cascading Style Sheets,

Языки разметки и оформления 2014 © EPAM Systems, RD Dep. CSS (Cascading
каскадные таблицы стилей) – язык описания внешнего вида документа (написанного с использованием HTML).

CSS3 (CSS4) – новые версии CSS, следующие той же логике развития, что и HTML5 по отношению к «классическому» HTML (XHTML).

Слайд 34

Веб-приложения

2014 © EPAM Systems, RD Dep.

Веб-приложение (web application) – приложение, использующее для

Веб-приложения 2014 © EPAM Systems, RD Dep. Веб-приложение (web application) – приложение,
своей работы Интернет или интранет (локальную сеть). Как правило, работает по архитектуре: «веб-клиент + веб-сервер + сервер приложений + СУБД».
Часто веб-приложения строятся так, что для их работы необходим браузер, но это – не обязательное условие.

Давайте назовём несколько примеров веб-приложений разных видов.

Слайд 35

Веб-сервисы

2014 © EPAM Systems, RD Dep.

Веб-сервис (web service) – ПО, предоставляющее возможность

Веб-сервисы 2014 © EPAM Systems, RD Dep. Веб-сервис (web service) – ПО,
обмена данными по сети между приложениями, устройствами и другими веб-сервисами.

Клиент

Веб-сервис

Запрос

Ответ

Давайте приведём примеры веб-сервисов.

Слайд 36

МНОГОУРОВНЕВАЯ АРХИТЕКТУРА ПРИЛОЖЕНИЙ

2014 © EPAM Systems, RD Dep.

МНОГОУРОВНЕВАЯ АРХИТЕКТУРА ПРИЛОЖЕНИЙ 2014 © EPAM Systems, RD Dep.

Слайд 37

Многоуровневая архитектура приложений

2014 © EPAM Systems, RD Dep.

Уровень 1

Интерфейс 1

Уровень 2

Уровень N

.
.
.

Уровень
данных

Уровень
бизнес-логики

Уровень
представления

Интерфейс

Многоуровневая архитектура приложений 2014 © EPAM Systems, RD Dep. Уровень 1 Интерфейс
2

Слайд 38

Многоуровневая архитектура приложений

2014 © EPAM Systems, RD Dep.

Уровень
данных

Уровень
бизнес-логики

Уровень
представления

Отвечает за ввод-вывод данных, их

Многоуровневая архитектура приложений 2014 © EPAM Systems, RD Dep. Уровень данных Уровень
форматирование и отображение.

Выполняет непосредственно возложенные на приложение задачи.

Обеспечивает операции по сохранению, извлечению и некоторой обработке данных.

Слайд 39

Многоуровневая архитектура приложений

2014 © EPAM Systems, RD Dep.

Уровень
данных

Уровень
бизнес-логики

Уровень
представления

Браузер

СУБД

Веб-сервер и сервер приложений

Многоуровневая архитектура приложений 2014 © EPAM Systems, RD Dep. Уровень данных Уровень

Слайд 40

Многоуровневая архитектура приложений

2014 © EPAM Systems, RD Dep.

Уровень
данных

Уровень
бизнес-логики

Уровень
представления

Браузер

СУБД

Веб-сервер и сервер приложений

Всегда ли

Многоуровневая архитектура приложений 2014 © EPAM Systems, RD Dep. Уровень данных Уровень
схема именно такая? Или есть другие варианты?

Слайд 41

Многоуровневая архитектура приложений

2014 © EPAM Systems, RD Dep.

Каковы преимущества и недостатки многоуровневой

Многоуровневая архитектура приложений 2014 © EPAM Systems, RD Dep. Каковы преимущества и недостатки многоуровневой архитектуры?
архитектуры?

Слайд 42

ПРИНЦИПЫ РАБОТЫ ВЕБ-ПРИЛОЖЕНИЙ

2014 © EPAM Systems, RD Dep.

ПРИНЦИПЫ РАБОТЫ ВЕБ-ПРИЛОЖЕНИЙ 2014 © EPAM Systems, RD Dep.

Слайд 43

Рассмотрим на большой картинке

2014 © EPAM Systems, RD Dep.

Веб-приложения работают просто. Очень

Рассмотрим на большой картинке 2014 © EPAM Systems, RD Dep. Веб-приложения работают
просто.
А сложность ситуации заключается в том, что в работе задействовано очень много компонентов, которые выполняют очень много действий.

Слайд 44

АРХИТЕКТУРА ВЕБ-ПРИЛОЖЕНИЙ

2014 © EPAM Systems, RD Dep.

АРХИТЕКТУРА ВЕБ-ПРИЛОЖЕНИЙ 2014 © EPAM Systems, RD Dep.

Слайд 45

JAVA

2014 © EPAM Systems, RD Dep.

JAVA 2014 © EPAM Systems, RD Dep.

Слайд 46

Tomcat

Java (один из возможных вариантов архитектуры)

2014 © EPAM Systems, RD Dep.

Клиент

Java приложение

Tomcat Java (один из возможных вариантов архитектуры) 2014 © EPAM Systems, RD
(applet)

JSP

Web сервисы

EJB

СУБД

БД

Всё верно? Ничего не забыли?

Слайд 47

ASP.NET

2014 © EPAM Systems, RD Dep.

ASP.NET 2014 © EPAM Systems, RD Dep.

Слайд 48

.NET Framework

ASP.NET (классический вариант архитектуры)

2014 © EPAM Systems, RD Dep.

IIS

Клиент

СУБД

БД

Всё верно? Ничего

.NET Framework ASP.NET (классический вариант архитектуры) 2014 © EPAM Systems, RD Dep.
не забыли?

Приложение

Слайд 49

PHP, PERL, PYTHON, RUBY И Т.Д. И Т.П.

2014 © EPAM Systems, RD Dep.

PHP, PERL, PYTHON, RUBY И Т.Д. И Т.П. 2014 © EPAM Systems, RD Dep.

Слайд 50

PHP, Perl, Python, Ruby и т.д. (универсальная архитектура)

2014 © EPAM Systems, RD

PHP, Perl, Python, Ruby и т.д. (универсальная архитектура) 2014 © EPAM Systems,
Dep.

Среда исполнения

Apache

Клиент

СУБД

БД

Всё верно? Ничего не забыли?

Приложение

Слайд 51

СРАВНЕНИЕ АРХИТЕКТУР

2014 © EPAM Systems, RD Dep.

СРАВНЕНИЕ АРХИТЕКТУР 2014 © EPAM Systems, RD Dep.

Слайд 52

Сравнение архитектур

2014 © EPAM Systems, RD Dep.

Java

ASP.NET

PHP, Perl, etc…

Что здесь выглядит похоже?

Сравнение архитектур 2014 © EPAM Systems, RD Dep. Java ASP.NET PHP, Perl,
А в чём отличия?

Слайд 53

ПРОЦЕСС РАЗРАБОТКИ ВЕБ-ПРИЛОЖЕНИЙ

2014 © EPAM Systems, RD Dep.

ПРОЦЕСС РАЗРАБОТКИ ВЕБ-ПРИЛОЖЕНИЙ 2014 © EPAM Systems, RD Dep.

Слайд 54

Процесс разработки веб-приложений

2014 © EPAM Systems, RD Dep.

Разработка общей концепции приложения, создание

Процесс разработки веб-приложений 2014 © EPAM Systems, RD Dep. Разработка общей концепции
структуры и т.д.

Создание графической концепции и графических макетов основных страниц приложения.

Вёрстка графического макета. Создание шаблонов основных страниц.

Разработка нового (или адаптация существующего) движка.

Разработка новой (или адаптация существующей) базы данных.

Финальное тестирование и размещение приложения на хостинге.

1

2

3

4

5

6

Слайд 55

WEB-BROWSER

2014 © EPAM Systems, RD Dep.

WEB-BROWSER 2014 © EPAM Systems, RD Dep.

Слайд 56

Браузеры, хранение данных

2014 © EPAM Systems, RD Dep.

Бра́узер или веб-обозрева́тель  — прикладное программное обеспечение для просмотра веб-страниц; содержания веб-

Браузеры, хранение данных 2014 © EPAM Systems, RD Dep. Бра́узер или веб-обозрева́тель
документов, компьютерных файлов и их каталогов; управления веб-приложениями; а также для решения других задач.
Cookie
Local Storage
Session Storage

Слайд 57

Браузеры, хранение данных

2014 © EPAM Systems, RD Dep.

Cookie - небольшой фрагмент данных,

Браузеры, хранение данных 2014 © EPAM Systems, RD Dep. Cookie - небольшой
отправленный веб-сервером и хранимый на компьютере пользователя.
Веб-клиент (обычно веб-браузер) всякий раз при попытке открыть страницу соответствующего сайта пересылает этот фрагмент данных веб-серверу в составе HTTP-запроса.
Аутентификация пользователя
Хранение настроек и предпочтений
Отслеживание состояния сеанса доступа пользователя
Ведение статистики о пользователях
Куки легко перехватить и подменить

Слайд 58

Браузеры, хранение данных

2014 © EPAM Systems, RD Dep.

Интернет-хранилище или DOM-хранилище — это программные методы и

Браузеры, хранение данных 2014 © EPAM Systems, RD Dep. Интернет-хранилище или DOM-хранилище
протоколы веб-приложения, используемые для хранения данных в веб-браузере. Интернет-хранилище представляет собой постоянное хранилище данных, похожее на куки, но со значительно расширенной ёмкостью и без хранения информации в заголовке запроса HTTP.
локальное хранилище (localStorage)
сессионное хранилище (sessionStorage)

Слайд 59

ХОСТИНГ

2014 © EPAM Systems, RD Dep.

ХОСТИНГ 2014 © EPAM Systems, RD Dep.

Слайд 60

Хостинг

2014 © EPAM Systems, RD Dep.

Хо́стинг — услуга по предоставлению ресурсов для размещения информации на сервере, постоянно находящемся в сети

Хостинг 2014 © EPAM Systems, RD Dep. Хо́стинг — услуга по предоставлению
(обычно Интернет).
- ОС
- поддержка CGI: Perl, PHP, Python, ASP, Ruby, JSP, Java
- поддержка .htaccess/.htpasswd (для Apache)
поддержка баз данных
Hosting provider
Amazon AWS and Heroku, Docker, Microsoft Azure
Собственный сервер

Слайд 61

РЕКОМЕНДУЕМЫЕ ИСТОЧНИКИ ИНФОРМАЦИИ

2014 © EPAM Systems, RD Dep.

РЕКОМЕНДУЕМЫЕ ИСТОЧНИКИ ИНФОРМАЦИИ 2014 © EPAM Systems, RD Dep.

Слайд 62

Рекомендуемые источники информации

2014 © EPAM Systems, RD Dep.

http://google.com

http://w3schools.com

http://habrahabr.ru

Рекомендуемые источники информации 2014 © EPAM Systems, RD Dep. http://google.com http://w3schools.com http://habrahabr.ru