SlideShare a Scribd company logo
Web технологии
Web технологии
•   https://github.com/mialinx/tp-stepic/
•   https://park.mail.ru/blog/show/154/
•   smal@corp.mail.ru
•   a.bekbulatov@corp.mail.ru
•   n.meleshenko@corp.mail.ru
2
О чем этот курс ?
•   Общая архитектура WWW
•   Протокол HTTP
•   Архитектура backend
•   Актуальные технологии и ПО
•   «Best practices»
3
Какие знания потребуются ?
•   Общие навыки программирование
•   Знание языка Python на базовом уровне
•   Использование Linux - на уровне пользователя
•   Желательно: опыт HTML верстки
4
Что останется за рамками курса ?
•   Сетевые технологии
•   Все используемые языки программирования
•   Frontend разработка
5
Internet vs WWW
Internet
Internet - глобальная сеть передачи данных
Протоколы
•   HTTP, SSH, P2P - прикладные протоколы
•   DNS - система имен
•   TCP - надежная последовательная передача данных
•   IP - глобальная адресация, передача в гетерогенной среде
7
World Wide Web
WWW - множество взаимосвязанных документов,
располагающихся на машинах подключенных к Internet
WWW - набор протоколов, серверного и клиентского ПО,
позволяющих получать доступ к документам
8
9
Документы
•   text/html
•   text/css
•   text/javascript
•   image/png
•   video/mp4
•   text/xml
•   application/json
•   Полный список MIME типов
Типы документов (MIME-типы)
Расширения файлов играют второстепенную роль
11
text/html
<html>
<body>
<link rel="stylesheet" href="/css/style.css">
<script src="http://code.jquery.com/jquery-2.1.4.js">
</script>
<p>Some text with <img src="pic/img1.png">
and <a href="#yes">hyperlinks</a>
</p>
</body>
</html>
12
text/css
.hljs-subst,
.hljs-title,
.json .hljs-value {
font-weight: normal;
color: #000;
}
13
text/xml
<response status="ok">
<friends>
<friend id="1" name="v.pupkin"/>
<friend id="2" name="a.pushkin"/>
<friend id="3" name="n.tesla"/>
</friends>
</response>
14
application/json
{
"status": "ok",
"friends": [
{ "id": 1, "name": "v.pupkin" },
{ "id": 2, "name": "a.pushkin" },
{ "id": 3, "name": "n.tesla" }
]
}
15
Документы могут быть
•   Статические
•   Это файлы на дисках сервера
•   Как правило, обладают постоянным адресом
•   Динамические
•   Создаются на каждый запрос
•   Содержимое зависит от времени и пользователя
•   Адрес может быть постоянным или меняться
16
URL
URL - unified resource locator
http://server.org:8080/path/doc.html?a=1&b=2#part1
•   http - протокол
•   server.org - DNS имя сервера
•   8080 - TCP порт
•   /path/doc.html - путь к файлу
•   a=1&b=2 - опции запроса
•   part1 - якорь, положение на странице
18
Абсолютные и относительные URL
•   http://server.org/1.html - абсолютный
•   //server.org/1.html - абсолютный (schemeless)
•   /another/page.html?a=1 - относительный (в пределах домена)
•   pictures/1.png - относительный (от URL текущего документа)
•   ?a=1&b=2 - относительный (от URL текущего документа)
•   #part2 - относительный (в пределах текущего документа)
19
Правила разрешения URL
https://site.com/path/page.html - основной документ
+ http://wikipedia.org = http://wikipedia.org
+ //cdn.org/jquery.js = https://cdn.org/jquery.js
+ /admin/index.html = https://site.com/admin/index.html
+ another.html = https://site.com/path/another.html
+ ?full=1 = https://site.com/path/page.html?full=1
+ #chapter2 = https://site.com/path/page.html#chaprer2
20
Как документы
могут ссылаться
друг на друга?
HTML - гиперссылки
Список товаров в <a href="/cart.php">корзине</a>
Список товаров в корзине
22
HTML - формы
<form action="https://duckduckgo.com/">
<input type="text" name="q" value="">
<input type="hidden" name="ia" value="images">
<button type="submit">Найти</a>
</form>
Найти
23
HTML - ресурсы
<link rel="stylesheet" href="/css/index.css">
<script src="http://code.jquery.com/jquery-2.1.4.js">
</script>
<img src="pictures/network.png" width="200" >
24
CSS - ресурсы
.slide {
background-image: url(../pictures/network.png)
}
@font-face {
font-family: Terminus;
src: url(fonts/terminus.ttf);
}
25
JavaScript - прямое указание URL
var saveApiUrl = '/items/save/';
var newTitle = 'Duck tales';
$.ajax({
type: 'POST',
url: saveApiUrl,
data: { id: 10, title: newTitle }
});
26
Клиент-
серверная
архитектура
Клиент-серверная архитектура
Web-клиенты работают на компьютерах конечных пользователей.
Задача Web-клиентов состоит в получении и отображении
документов.
Web-сервера работают (как правило) на серверах в датацентрах.
Их задача заключается в хранении (или генерации) и отдачи
документов.
28
29
Преимущества подхода
•   Открытый протокол
•   Стандартный клиент
•   Прозрачный способ взаимодействия приложений
•   Распределенная и масштабируемая система
30

More Related Content

What's hot

HTTP протокол
HTTP протоколHTTP протокол
HTTP протокол
lectureswww lectureswww
 
Impress Application Server for node.js (ru)
Impress Application Server for node.js (ru)Impress Application Server for node.js (ru)
Impress Application Server for node.js (ru)
Timur Shemsedinov
 
Major mistakes in site moving
Major mistakes in site movingMajor mistakes in site moving
Major mistakes in site moving
Транслируем.бел
 
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложенияСтажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения7bits
 
Web весна 2013 лекция 1
Web весна 2013 лекция 1Web весна 2013 лекция 1
Web весна 2013 лекция 1Technopark
 
Консольные приложения на Go
Консольные приложения на GoКонсольные приложения на Go
Консольные приложения на Go
Andrey Smirnov
 
Основы Java. 4. Web
Основы Java. 4. WebОсновы Java. 4. Web
Основы Java. 4. Web
Sergey Nemchinsky
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
Andrey Smirnov
 
03 web server_architecture_ru
03 web server_architecture_ru03 web server_architecture_ru
03 web server_architecture_ru
mcroitor
 
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Ontico
 
Стажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTPСтажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTP7bits
 
сергей спиридонов
сергей спиридоновсергей спиридонов
сергей спиридоновkuchinskaya
 
Сергей Пузанков — Новый Поиск по блогам на bem-node
Сергей Пузанков — Новый Поиск по блогам на bem-nodeСергей Пузанков — Новый Поиск по блогам на bem-node
Сергей Пузанков — Новый Поиск по блогам на bem-node
Yandex
 
Сокеты
СокетыСокеты
Lesson1
Lesson1Lesson1
Lesson1
jinol
 
Доставка данных в реальном времени.
Доставка данных в реальном времени. Доставка данных в реальном времени.
Доставка данных в реальном времени.
beshkenadze
 
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
AvitoTech
 
Браузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачемБраузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачем
Pavel Klimiankou
 

What's hot (20)

HTTP протокол
HTTP протоколHTTP протокол
HTTP протокол
 
REST
RESTREST
REST
 
Impress Application Server for node.js (ru)
Impress Application Server for node.js (ru)Impress Application Server for node.js (ru)
Impress Application Server for node.js (ru)
 
WWW
WWWWWW
WWW
 
Major mistakes in site moving
Major mistakes in site movingMajor mistakes in site moving
Major mistakes in site moving
 
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложенияСтажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
 
Web весна 2013 лекция 1
Web весна 2013 лекция 1Web весна 2013 лекция 1
Web весна 2013 лекция 1
 
Консольные приложения на Go
Консольные приложения на GoКонсольные приложения на Go
Консольные приложения на Go
 
Основы Java. 4. Web
Основы Java. 4. WebОсновы Java. 4. Web
Основы Java. 4. Web
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
 
03 web server_architecture_ru
03 web server_architecture_ru03 web server_architecture_ru
03 web server_architecture_ru
 
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
 
Стажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTPСтажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTP
 
сергей спиридонов
сергей спиридоновсергей спиридонов
сергей спиридонов
 
Сергей Пузанков — Новый Поиск по блогам на bem-node
Сергей Пузанков — Новый Поиск по блогам на bem-nodeСергей Пузанков — Новый Поиск по блогам на bem-node
Сергей Пузанков — Новый Поиск по блогам на bem-node
 
Сокеты
СокетыСокеты
Сокеты
 
Lesson1
Lesson1Lesson1
Lesson1
 
Доставка данных в реальном времени.
Доставка данных в реальном времени. Доставка данных в реальном времени.
Доставка данных в реальном времени.
 
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
 
Браузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачемБраузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачем
 

Viewers also liked

14 - Web-технологии. Обработка форм
14 - Web-технологии. Обработка форм14 - Web-технологии. Обработка форм
14 - Web-технологии. Обработка форм
Roman Brovko
 
13 - Web-технологии. Отображение данных
13 - Web-технологии. Отображение данных13 - Web-технологии. Отображение данных
13 - Web-технологии. Отображение данных
Roman Brovko
 
10 - Web-технологии. MVC фреймворки (продолжение)
10 - Web-технологии. MVC фреймворки (продолжение)10 - Web-технологии. MVC фреймворки (продолжение)
10 - Web-технологии. MVC фреймворки (продолжение)
Roman Brovko
 
02 - Установка macOS
02 - Установка macOS02 - Установка macOS
02 - Установка macOS
Roman Brovko
 
03 - Установка Xcode
03 - Установка Xcode03 - Установка Xcode
03 - Установка Xcode
Roman Brovko
 
01 - Системные требования
01 - Системные требования01 - Системные требования
01 - Системные требования
Roman Brovko
 
16 - Web-технологии. Технология AJAX
16 - Web-технологии. Технология AJAX16 - Web-технологии. Технология AJAX
16 - Web-технологии. Технология AJAX
Roman Brovko
 
12 - Web-технологии. Django модели
12 - Web-технологии. Django модели12 - Web-технологии. Django модели
12 - Web-технологии. Django модели
Roman Brovko
 
11 - Web-технологии. Работа с СУБД
11 - Web-технологии. Работа с СУБД11 - Web-технологии. Работа с СУБД
11 - Web-технологии. Работа с СУБД
Roman Brovko
 
презентация 6
презентация 6презентация 6
презентация 6
Rusov1
 
презентация 4. введение в css
презентация 4. введение в cssпрезентация 4. введение в css
презентация 4. введение в css
Rusov1
 
презентация лекция 3 (1)
презентация лекция 3 (1)презентация лекция 3 (1)
презентация лекция 3 (1)
Victor Salimgareev
 
Эссе по теме браузеры
Эссе по теме браузерыЭссе по теме браузеры
Эссе по теме браузеры
Maxim Moroz
 
браузеры
браузерыбраузеры
Обзор интернет браузеров
Обзор интернет браузеровОбзор интернет браузеров
Обзор интернет браузеров
Alina Kolosova
 
04 - Практика UML. Описание прецедентов
04 - Практика UML. Описание прецедентов04 - Практика UML. Описание прецедентов
04 - Практика UML. Описание прецедентов
Roman Brovko
 
04 - Web-технологии. CSS - язык описания стилей
04 - Web-технологии. CSS - язык описания стилей04 - Web-технологии. CSS - язык описания стилей
04 - Web-технологии. CSS - язык описания стилей
Roman Brovko
 
03 - Web-технологии. Язык разметки HTML
03 - Web-технологии. Язык разметки HTML03 - Web-технологии. Язык разметки HTML
03 - Web-технологии. Язык разметки HTML
Roman Brovko
 
Практический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLПрактический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UML
Nikolai Kireev
 

Viewers also liked (20)

14 - Web-технологии. Обработка форм
14 - Web-технологии. Обработка форм14 - Web-технологии. Обработка форм
14 - Web-технологии. Обработка форм
 
13 - Web-технологии. Отображение данных
13 - Web-технологии. Отображение данных13 - Web-технологии. Отображение данных
13 - Web-технологии. Отображение данных
 
10 - Web-технологии. MVC фреймворки (продолжение)
10 - Web-технологии. MVC фреймворки (продолжение)10 - Web-технологии. MVC фреймворки (продолжение)
10 - Web-технологии. MVC фреймворки (продолжение)
 
02 - Установка macOS
02 - Установка macOS02 - Установка macOS
02 - Установка macOS
 
03 - Установка Xcode
03 - Установка Xcode03 - Установка Xcode
03 - Установка Xcode
 
01 - Системные требования
01 - Системные требования01 - Системные требования
01 - Системные требования
 
16 - Web-технологии. Технология AJAX
16 - Web-технологии. Технология AJAX16 - Web-технологии. Технология AJAX
16 - Web-технологии. Технология AJAX
 
12 - Web-технологии. Django модели
12 - Web-технологии. Django модели12 - Web-технологии. Django модели
12 - Web-технологии. Django модели
 
11 - Web-технологии. Работа с СУБД
11 - Web-технологии. Работа с СУБД11 - Web-технологии. Работа с СУБД
11 - Web-технологии. Работа с СУБД
 
презентация 6
презентация 6презентация 6
презентация 6
 
презентация 4. введение в css
презентация 4. введение в cssпрезентация 4. введение в css
презентация 4. введение в css
 
презентация лекция 3 (1)
презентация лекция 3 (1)презентация лекция 3 (1)
презентация лекция 3 (1)
 
Эссе по теме браузеры
Эссе по теме браузерыЭссе по теме браузеры
Эссе по теме браузеры
 
браузеры
браузерыбраузеры
браузеры
 
Обзор интернет браузеров
Обзор интернет браузеровОбзор интернет браузеров
Обзор интернет браузеров
 
04 - Практика UML. Описание прецедентов
04 - Практика UML. Описание прецедентов04 - Практика UML. Описание прецедентов
04 - Практика UML. Описание прецедентов
 
Brauzery
BrauzeryBrauzery
Brauzery
 
04 - Web-технологии. CSS - язык описания стилей
04 - Web-технологии. CSS - язык описания стилей04 - Web-технологии. CSS - язык описания стилей
04 - Web-технологии. CSS - язык описания стилей
 
03 - Web-технологии. Язык разметки HTML
03 - Web-технологии. Язык разметки HTML03 - Web-технологии. Язык разметки HTML
03 - Web-технологии. Язык разметки HTML
 
Практический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLПрактический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UML
 

Similar to 01 - Web-технологии. Архитектура Web приложений

Алексей Бережной — «HTTP-протокл»
Алексей Бережной — «HTTP-протокл»Алексей Бережной — «HTTP-протокл»
Алексей Бережной — «HTTP-протокл»Yandex
 
Алексей Бережной - http-протокол
Алексей Бережной - http-протоколАлексей Бережной - http-протокол
Алексей Бережной - http-протокол
Yandex
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 67bits
 
Git, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентомGit, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентом
Alex Musayev
 
Введение в Web-технологии
Введение в Web-технологииВведение в Web-технологии
Введение в Web-технологии
Eugen Dashkovsky
 
Введение в курс
Введение в курсВведение в курс
Введение в курс
Eugen Dashkovsky
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
InterSystems CEE
 
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Ontico
 
Стажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложенияСтажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложения7bits
 
gRPC в продакшне для мобильных приложений
gRPC в продакшне для мобильных приложенийgRPC в продакшне для мобильных приложений
gRPC в продакшне для мобильных приложений
Mad Devs
 
Phalcon - самый быстрый PHP Framework
Phalcon - самый быстрый PHP FrameworkPhalcon - самый быстрый PHP Framework
Phalcon - самый быстрый PHP Framework
Oleksandr Torosh
 
Web лекция 1
Web   лекция 1Web   лекция 1
Web лекция 1
Technosphere1
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard Lebedyuk
InterSystems
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHP
Alexander Lisachenko
 
Web осень 2013 лекция 1
Web осень 2013 лекция 1Web осень 2013 лекция 1
Web осень 2013 лекция 1Technopark
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
Александр Ежов
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Sergey Xek
 
Web осень 2012 лекция 1
Web осень 2012 лекция 1Web осень 2012 лекция 1
Web осень 2012 лекция 1Technopark
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...rit2011
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...rit2011
 

Similar to 01 - Web-технологии. Архитектура Web приложений (20)

Алексей Бережной — «HTTP-протокл»
Алексей Бережной — «HTTP-протокл»Алексей Бережной — «HTTP-протокл»
Алексей Бережной — «HTTP-протокл»
 
Алексей Бережной - http-протокол
Алексей Бережной - http-протоколАлексей Бережной - http-протокол
Алексей Бережной - http-протокол
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
 
Git, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентомGit, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентом
 
Введение в Web-технологии
Введение в Web-технологииВведение в Web-технологии
Введение в Web-технологии
 
Введение в курс
Введение в курсВведение в курс
Введение в курс
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
 
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
 
Стажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложенияСтажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложения
 
gRPC в продакшне для мобильных приложений
gRPC в продакшне для мобильных приложенийgRPC в продакшне для мобильных приложений
gRPC в продакшне для мобильных приложений
 
Phalcon - самый быстрый PHP Framework
Phalcon - самый быстрый PHP FrameworkPhalcon - самый быстрый PHP Framework
Phalcon - самый быстрый PHP Framework
 
Web лекция 1
Web   лекция 1Web   лекция 1
Web лекция 1
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard Lebedyuk
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHP
 
Web осень 2013 лекция 1
Web осень 2013 лекция 1Web осень 2013 лекция 1
Web осень 2013 лекция 1
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
 
Web осень 2012 лекция 1
Web осень 2012 лекция 1Web осень 2012 лекция 1
Web осень 2012 лекция 1
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
 

More from Roman Brovko

Individual task Networking
Individual task NetworkingIndividual task Networking
Individual task Networking
Roman Brovko
 
Networking essentials lect3
Networking essentials lect3Networking essentials lect3
Networking essentials lect3
Roman Brovko
 
Gl embedded starterkit_ethernet
Gl embedded starterkit_ethernetGl embedded starterkit_ethernet
Gl embedded starterkit_ethernet
Roman Brovko
 
Networking essentials lect2
Networking essentials lect2Networking essentials lect2
Networking essentials lect2
Roman Brovko
 
Networking essentials lect1
Networking essentials lect1Networking essentials lect1
Networking essentials lect1
Roman Brovko
 
Bare metal training_07_spi_flash
Bare metal training_07_spi_flashBare metal training_07_spi_flash
Bare metal training_07_spi_flash
Roman Brovko
 
Bare metal training_06_I2C
Bare metal training_06_I2CBare metal training_06_I2C
Bare metal training_06_I2C
Roman Brovko
 
Glesk worshop
Glesk worshopGlesk worshop
Glesk worshop
Roman Brovko
 
Bare metal training_05_uart
Bare metal training_05_uartBare metal training_05_uart
Bare metal training_05_uart
Roman Brovko
 
Bare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensorBare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensor
Roman Brovko
 
Bare metal training_03_timers_pwm
Bare metal training_03_timers_pwmBare metal training_03_timers_pwm
Bare metal training_03_timers_pwm
Roman Brovko
 
Bare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttonsBare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttons
Roman Brovko
 
Bare metal training_01_hello_world
Bare metal training_01_hello_worldBare metal training_01_hello_world
Bare metal training_01_hello_world
Roman Brovko
 
Bare metal training_00_prerequisites
Bare metal training_00_prerequisitesBare metal training_00_prerequisites
Bare metal training_00_prerequisites
Roman Brovko
 
C language lect_23_advanced
C language lect_23_advancedC language lect_23_advanced
C language lect_23_advanced
Roman Brovko
 
C language lect_22_advanced
C language lect_22_advancedC language lect_22_advanced
C language lect_22_advanced
Roman Brovko
 
C language lect_21_advanced
C language lect_21_advancedC language lect_21_advanced
C language lect_21_advanced
Roman Brovko
 
подготовка рабочего окружения
подготовка рабочего окруженияподготовка рабочего окружения
подготовка рабочего окружения
Roman Brovko
 
C language lect_20_advanced
C language lect_20_advancedC language lect_20_advanced
C language lect_20_advanced
Roman Brovko
 
C language lect_19_basics
C language lect_19_basicsC language lect_19_basics
C language lect_19_basics
Roman Brovko
 

More from Roman Brovko (20)

Individual task Networking
Individual task NetworkingIndividual task Networking
Individual task Networking
 
Networking essentials lect3
Networking essentials lect3Networking essentials lect3
Networking essentials lect3
 
Gl embedded starterkit_ethernet
Gl embedded starterkit_ethernetGl embedded starterkit_ethernet
Gl embedded starterkit_ethernet
 
Networking essentials lect2
Networking essentials lect2Networking essentials lect2
Networking essentials lect2
 
Networking essentials lect1
Networking essentials lect1Networking essentials lect1
Networking essentials lect1
 
Bare metal training_07_spi_flash
Bare metal training_07_spi_flashBare metal training_07_spi_flash
Bare metal training_07_spi_flash
 
Bare metal training_06_I2C
Bare metal training_06_I2CBare metal training_06_I2C
Bare metal training_06_I2C
 
Glesk worshop
Glesk worshopGlesk worshop
Glesk worshop
 
Bare metal training_05_uart
Bare metal training_05_uartBare metal training_05_uart
Bare metal training_05_uart
 
Bare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensorBare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensor
 
Bare metal training_03_timers_pwm
Bare metal training_03_timers_pwmBare metal training_03_timers_pwm
Bare metal training_03_timers_pwm
 
Bare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttonsBare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttons
 
Bare metal training_01_hello_world
Bare metal training_01_hello_worldBare metal training_01_hello_world
Bare metal training_01_hello_world
 
Bare metal training_00_prerequisites
Bare metal training_00_prerequisitesBare metal training_00_prerequisites
Bare metal training_00_prerequisites
 
C language lect_23_advanced
C language lect_23_advancedC language lect_23_advanced
C language lect_23_advanced
 
C language lect_22_advanced
C language lect_22_advancedC language lect_22_advanced
C language lect_22_advanced
 
C language lect_21_advanced
C language lect_21_advancedC language lect_21_advanced
C language lect_21_advanced
 
подготовка рабочего окружения
подготовка рабочего окруженияподготовка рабочего окружения
подготовка рабочего окружения
 
C language lect_20_advanced
C language lect_20_advancedC language lect_20_advanced
C language lect_20_advanced
 
C language lect_19_basics
C language lect_19_basicsC language lect_19_basics
C language lect_19_basics
 

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

  • 2. Web технологии •   https://github.com/mialinx/tp-stepic/ •   https://park.mail.ru/blog/show/154/ •   smal@corp.mail.ru •   a.bekbulatov@corp.mail.ru •   n.meleshenko@corp.mail.ru 2
  • 3. О чем этот курс ? •   Общая архитектура WWW •   Протокол HTTP •   Архитектура backend •   Актуальные технологии и ПО •   «Best practices» 3
  • 4. Какие знания потребуются ? •   Общие навыки программирование •   Знание языка Python на базовом уровне •   Использование Linux - на уровне пользователя •   Желательно: опыт HTML верстки 4
  • 5. Что останется за рамками курса ? •   Сетевые технологии •   Все используемые языки программирования •   Frontend разработка 5
  • 7. Internet Internet - глобальная сеть передачи данных Протоколы •   HTTP, SSH, P2P - прикладные протоколы •   DNS - система имен •   TCP - надежная последовательная передача данных •   IP - глобальная адресация, передача в гетерогенной среде 7
  • 8. World Wide Web WWW - множество взаимосвязанных документов, располагающихся на машинах подключенных к Internet WWW - набор протоколов, серверного и клиентского ПО, позволяющих получать доступ к документам 8
  • 9. 9
  • 11. •   text/html •   text/css •   text/javascript •   image/png •   video/mp4 •   text/xml •   application/json •   Полный список MIME типов Типы документов (MIME-типы) Расширения файлов играют второстепенную роль 11
  • 12. text/html <html> <body> <link rel="stylesheet" href="/css/style.css"> <script src="http://code.jquery.com/jquery-2.1.4.js"> </script> <p>Some text with <img src="pic/img1.png"> and <a href="#yes">hyperlinks</a> </p> </body> </html> 12
  • 14. text/xml <response status="ok"> <friends> <friend id="1" name="v.pupkin"/> <friend id="2" name="a.pushkin"/> <friend id="3" name="n.tesla"/> </friends> </response> 14
  • 15. application/json { "status": "ok", "friends": [ { "id": 1, "name": "v.pupkin" }, { "id": 2, "name": "a.pushkin" }, { "id": 3, "name": "n.tesla" } ] } 15
  • 16. Документы могут быть •   Статические •   Это файлы на дисках сервера •   Как правило, обладают постоянным адресом •   Динамические •   Создаются на каждый запрос •   Содержимое зависит от времени и пользователя •   Адрес может быть постоянным или меняться 16
  • 17. URL
  • 18. URL - unified resource locator http://server.org:8080/path/doc.html?a=1&b=2#part1 •   http - протокол •   server.org - DNS имя сервера •   8080 - TCP порт •   /path/doc.html - путь к файлу •   a=1&b=2 - опции запроса •   part1 - якорь, положение на странице 18
  • 19. Абсолютные и относительные URL •   http://server.org/1.html - абсолютный •   //server.org/1.html - абсолютный (schemeless) •   /another/page.html?a=1 - относительный (в пределах домена) •   pictures/1.png - относительный (от URL текущего документа) •   ?a=1&b=2 - относительный (от URL текущего документа) •   #part2 - относительный (в пределах текущего документа) 19
  • 20. Правила разрешения URL https://site.com/path/page.html - основной документ + http://wikipedia.org = http://wikipedia.org + //cdn.org/jquery.js = https://cdn.org/jquery.js + /admin/index.html = https://site.com/admin/index.html + another.html = https://site.com/path/another.html + ?full=1 = https://site.com/path/page.html?full=1 + #chapter2 = https://site.com/path/page.html#chaprer2 20
  • 22. HTML - гиперссылки Список товаров в <a href="/cart.php">корзине</a> Список товаров в корзине 22
  • 23. HTML - формы <form action="https://duckduckgo.com/"> <input type="text" name="q" value=""> <input type="hidden" name="ia" value="images"> <button type="submit">Найти</a> </form> Найти 23
  • 24. HTML - ресурсы <link rel="stylesheet" href="/css/index.css"> <script src="http://code.jquery.com/jquery-2.1.4.js"> </script> <img src="pictures/network.png" width="200" > 24
  • 25. CSS - ресурсы .slide { background-image: url(../pictures/network.png) } @font-face { font-family: Terminus; src: url(fonts/terminus.ttf); } 25
  • 26. JavaScript - прямое указание URL var saveApiUrl = '/items/save/'; var newTitle = 'Duck tales'; $.ajax({ type: 'POST', url: saveApiUrl, data: { id: 10, title: newTitle } }); 26
  • 28. Клиент-серверная архитектура Web-клиенты работают на компьютерах конечных пользователей. Задача Web-клиентов состоит в получении и отображении документов. Web-сервера работают (как правило) на серверах в датацентрах. Их задача заключается в хранении (или генерации) и отдачи документов. 28
  • 29. 29
  • 30. Преимущества подхода •   Открытый протокол •   Стандартный клиент •   Прозрачный способ взаимодействия приложений •   Распределенная и масштабируемая система 30