SlideShare uma empresa Scribd logo
1 de 37
Web технологи
Дмитрий Смаль
О чем этот курс ?
Как программировать на PHP / Java?
Как сверстать красивую страничку?
Как сделать сайт?
Это курс о..

О том, как работают web приложения.
О “Best practise” web разработки.
О современных технологий web.
Зачем это все ?
Архитектор должен быть в курсе
Неплохой способ заработать $
Или.. что бы вовремя остановиться )
Немного истории..
История сети Internet
1969 – сеанс связи ARPANET
1971 – отправка первого Email
1983 – ARPANET переходит на TCP/IP
1984 – запущена система DNS
1989 – появление WWW, HTTP, HTML
1993 – первый браузер – NCSA Mosaic
1995 – Yahoo, Hotmail, Amazon.com
1998 – Mail.Ru
Число хостов в Internet
Браузерные войны
Эволюция web сайтов
Web 1.0 – до .com bubble. Статичное содержание
страниц, аскетичный дизайн, чаты, форумы, гостевые
книги.
Web 2.0 – новое поколение сайтов (после 2001) Usergenerated content. Предоставление и потребление API.
RSS. Обновление страниц “на лету” (ajax).
Web 3.0 - ??? Community-generated content.
Семантическая паутина. Уникальные идентификаторы и
микроформаты. Аскетичный дизайн
Ситуация на сегодняшний день
Тенденции развития ПО
●

●

Клиент-серверная архитектура.
Глобальные приложения:
поиск, почта – big data

●

Мобильные приложения

●

Software as a Service

●

Облачные сервисы

Тонкие клиенты.
cоциальные сети,
Web приложения
●

●

●

●

●

Традиционные сайты: новости, блоги, wiki, базы знаний,
визитки.
Глобальные приложения: почтовые сервисы, поиск,
социальные сети.
E-commerce: магазины, бронирование, цифровая
дистрибуция.
Замена desktop приложениям: банк-клиенты, CRM,
корпоративный софт.
SAAS – то же cамое, но онлайн.
Чем можно заняться ?
●

Front-end разработка

●

Back-end разработка

●

Разработка под мобильные платформы

●

Инфраструктура

●

Архитектура

●

Системное программирование

●

Прочее (seo, security, management)
Как работает web сайт ?
Архитектура

Клиент-серверное приложение
Ресурсы и адресация
Запрос – ответ (альтернативы ?)
IP адресация
●

94.100.191.201 – один из адресов Mail.Ru

●

127.0.0.1 – всегда адрес лок. компьютера

●

192.168.12.14 – private ip (не уникален)

●

192.168.0.0/16 – адрес подсети

●

12.0xbad – тоже валидный адрес

●

2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d
DNS
DNS
●

Отличие домена и зоны DNS

●

Что возвращает DNS? Виды записей

●

Рекурсивные и итеративные запросы

●

Обратные зоны

●

CDN – content delivery network

●

Google public DNS – 8.8.8.8 8.8.4.4
HTTP
GET /wiki/страница HTTP/1.1
Host: ru.wikipedia.org
Accept: text/html
Connection: close
(пустая строка)
HTTP/1.1 200 OK
Server: Apache
Content-Language: ru
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Connection: close
(HTML)
Протоколы Internet
●

HTTP – передача гипертекста

●

FTP – передача файлов

●

SMTP – передача почты

●

POP3, IMAP – получение почты

●

SSH – удаленный доступ к серверу

●

SFTP – FTP через SSH

●

XMPP – Jabber, мгновенные сообщения

●

TCP ?
Форматы Internet
●

RFC822 - Internet Text Message format

●

XML

●

JSON, JSONP

●

CSV

●

MIME

●

JPEG / PNG / GIF

●

PDF
URI vs URL
URI – идентификатор
mailto:me@tut.ru
tel:02
urn:isbn:0-395-36341-1

URL – определяет положение ресурса
http://tom:abc@host.com/h/1.html?a=b
http – протокол
tom:abc – логин / пароль
host.com – адрес сервера
/h/1.html – путь к ресурсу
a=b – параметры (query string)
HTTP – загрузка файлов
Загрузка с диска
1.html → /home/user/ht/1.html
img/1.jpg → /home/user/ht/img/1.jpg

Загрузка с сервера
DocumentRoot = /htdocs
http://www.ru/ → /htdocs/index.html
http://www.ru/img/1.jpg → /htdocs/img/1.jpg
HTML
<ul id="tab_main">
<li>
<a href="/content">
<img src="/img/content.png" alt="Статьи">
Статьи
</a>
</li>
<li>
<a href="/blog">
<img src="/img/blog.png" alt="Блог">
<b>Блог</b>
</a>
</li>
</ul>
HTML
HTML тэги
Парные: <b></b>(bold), <i></i>(italic), <a></a>
(anchor), <quote></quote>
Одиночные: <img>, <link>
Структурые: <body>, <ul>, <div>,<span>

HTML аттрибуты
Стандартные: id, style, class, title, ..
Специфичные: href, src, rowspan,
Пользовательские: data-myattr
Формы и ссылки
<a href=”/search/?q=bob&site=mail.ru”>Найти</a>
<a name=”chapter1”></a>
<a href=”#chapter1”>Глава 1</a>
<form method=”GET” action=”/search/”>
<input type=”text” name=”q” value=””/>
<input type=”text” name=”site” value=””/>
<input type=”submit”/>
</form>
CGI
Переменные окружения
REQUEST_METHOD – метод (GET, POST, …)
REQUEST_URI – строка запроса
QUERY_STRING - строка параметров
REMOTE_ADDR – ip адрес клиента
SCRIPT_NAME – имя текущего скрипта
HTTP_COOKIE – заголовок Cookie:
HTTP_REFERER – заголовок Referer:
CGI - скрипт
#!/usr/bin/python2.7
print "Content-Type: text/html"
print ""
print "<html><body>"
print "<h1>hello, world!</h1>"
import os
for k, v in os.environ.items():
print "%s = %s<br>" % (k, v)
print "</html></body>"

Ошибочка ?
Python

●

Скриптовый язык общего назначений

●

Синтаксис основан на отступах

●

Минимализм

●

Динамическая (но строгая) типизация

http://www.codecademy.com/tracks/python
Python (примеры)
animals = ['dog', 'tux', 'caterpillar']
for a in animals:
print(a)
if len(a) > 3:
print('%s_%s' % (a[0:2], ' for short'))
def reply(msg, user='author'):
return '<blockquote>' + user + ' says:<br>' 
+ msg + '</blockquote>'
import datetime
td = datetime.date.today()
from datetime import date
td = date.today()
Шаблонизация
Скрипт do.cgi
return render_to_response('sample.tpl', {
'say_hello' : True,
'environ': os.environ
})

Шаблон sample.tpl
<ul>
[% IF say_hello %]
<h1>Hello, world!</h1>
[% END %]
[% FOR e IN environ %]
<li>[% e.name %] = [% e.value %]</li>
[% END %]
</ul>
SSI
<!--# include file=”/header.html” –->
<div class=”user-email”>
<!--# set var=”Email” value=”me@a.ru” -->
<!--# echo var=”Email” -->
</div>
<!--# if expr=”$Email” →
Авторизован
<!--# else -->
Вам нужно авторизоваться
<!--# endif -->
<!--# config -->
JavaScript

●

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

●

Java / C подобный синтаксис

●

DOM – дерево, DHTML

●

События и обработчики

●

XHR и Ajax

●

JQuery, Prototype, Backbone, YUI, …

http://www.codecademy.com/tracks/javascript
FireBug - F12
Спасибо за внимание
Дмитрий Смаль, smal@corp.mail.ru

Mais conteúdo relacionado

Mais procurados

Артем Кувалдин: Основы HTML
Артем Кувалдин: Основы HTMLАртем Кувалдин: Основы HTML
Артем Кувалдин: Основы HTMLYandex
 
Client optimization drupal
Client optimization drupalClient optimization drupal
Client optimization drupalYury Glushkov
 
Web весна 2012 лекция 10
Web весна 2012 лекция 10Web весна 2012 лекция 10
Web весна 2012 лекция 10Technopark
 
SEO-Friendly Websites
SEO-Friendly WebsitesSEO-Friendly Websites
SEO-Friendly WebsitesElkaakle
 
Lesson1
Lesson1Lesson1
Lesson1jinol
 
HappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный веб
HappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный вебHappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный веб
HappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный вебHappyDev-lite
 
Доменные имена и хостинг
Доменные имена и хостингДоменные имена и хостинг
Доменные имена и хостингSergei Dubrov
 
Разработка адаптивных шаблонов на базе Omega
Разработка адаптивных шаблонов на базе OmegaРазработка адаптивных шаблонов на базе Omega
Разработка адаптивных шаблонов на базе OmegaTaras Omelianenko
 
State of the Standardized Web
State of the Standardized WebState of the Standardized Web
State of the Standardized WebYandex
 
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 LebedyukInterSystems
 
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
 
MongoDB basics in Russian
MongoDB basics in RussianMongoDB basics in Russian
MongoDB basics in RussianOleg Kachan
 
сергей спиридонов
сергей спиридоновсергей спиридонов
сергей спиридоновkuchinskaya
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...phpdevby
 

Mais procurados (20)

Артем Кувалдин: Основы HTML
Артем Кувалдин: Основы HTMLАртем Кувалдин: Основы HTML
Артем Кувалдин: Основы HTML
 
Speed Up Your Website
Speed Up Your WebsiteSpeed Up Your Website
Speed Up Your Website
 
HTTP протокол
HTTP протоколHTTP протокол
HTTP протокол
 
Major mistakes in site moving
Major mistakes in site movingMajor mistakes in site moving
Major mistakes in site moving
 
Client optimization drupal
Client optimization drupalClient optimization drupal
Client optimization drupal
 
Web весна 2012 лекция 10
Web весна 2012 лекция 10Web весна 2012 лекция 10
Web весна 2012 лекция 10
 
SEO-Friendly Websites
SEO-Friendly WebsitesSEO-Friendly Websites
SEO-Friendly Websites
 
Lesson1
Lesson1Lesson1
Lesson1
 
HappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный веб
HappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный вебHappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный веб
HappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный веб
 
Основы Java. 4. Web
Основы Java. 4. WebОсновы Java. 4. Web
Основы Java. 4. Web
 
Доменные имена и хостинг
Доменные имена и хостингДоменные имена и хостинг
Доменные имена и хостинг
 
Разработка адаптивных шаблонов на базе Omega
Разработка адаптивных шаблонов на базе OmegaРазработка адаптивных шаблонов на базе Omega
Разработка адаптивных шаблонов на базе Omega
 
State of the Standardized Web
State of the Standardized WebState of the Standardized Web
State of the Standardized Web
 
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
 
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)
 
MongoDB basics in Russian
MongoDB basics in RussianMongoDB basics in Russian
MongoDB basics in Russian
 
сергей спиридонов
сергей спиридоновсергей спиридонов
сергей спиридонов
 
KazHackStan 2017 | Tracking
KazHackStan 2017 | TrackingKazHackStan 2017 | Tracking
KazHackStan 2017 | Tracking
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
 
No sql.mongodb scaling
No sql.mongodb scalingNo sql.mongodb scaling
No sql.mongodb scaling
 

Semelhante a Web весна 2013 лекция 1

Web осень 2013 лекция 1
Web осень 2013 лекция 1Web осень 2013 лекция 1
Web осень 2013 лекция 1Technopark
 
Phalcon - самый быстрый PHP Framework
Phalcon - самый быстрый PHP FrameworkPhalcon - самый быстрый PHP Framework
Phalcon - самый быстрый PHP FrameworkOleksandr Torosh
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéInterSystems CEE
 
Web осень 2012 лекция 1
Web осень 2012 лекция 1Web осень 2012 лекция 1
Web осень 2012 лекция 1Technopark
 
Стажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTPСтажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTP7bits
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 67bits
 
Web весна 2012 лекция 1
Web весна 2012 лекция 1Web весна 2012 лекция 1
Web весна 2012 лекция 1Technopark
 
C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.Igor Shkulipa
 
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2Dima Dzuba
 
15.03.19 WebPromo SEOday SEO-инсайты из логов: от WP блога до международного ...
15.03.19 WebPromo SEOday SEO-инсайты из логов: от WP блога до международного ...15.03.19 WebPromo SEOday SEO-инсайты из логов: от WP блога до международного ...
15.03.19 WebPromo SEOday SEO-инсайты из логов: от WP блога до международного ...Vladislav Morgun
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBASlach
 
2013 09 17 архитектура веб-приложений
2013 09 17 архитектура веб-приложений2013 09 17 архитектура веб-приложений
2013 09 17 архитектура веб-приложенийYandex
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Artur Baranok
 
Drupal и мобильные устройства
Drupal и мобильные устройстваDrupal и мобильные устройства
Drupal и мобильные устройстваKonstantin Komelin
 
Drupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинDrupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинPVasili
 
Drupal и мобильные устройства комелин константин
Drupal и мобильные устройства комелин константинDrupal и мобильные устройства комелин константин
Drupal и мобильные устройства комелин константинdrupalconf
 
Платформа .NET Core глазами PHP-разработчика
Платформа .NET Core глазами PHP-разработчикаПлатформа .NET Core глазами PHP-разработчика
Платформа .NET Core глазами PHP-разработчикаГеоргий Драк
 
сравнение Drupal и 1с битрикс
сравнение Drupal и 1с битрикссравнение Drupal и 1с битрикс
сравнение Drupal и 1с битриксAndrii Podanenko
 
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)Sergey Skvortsov
 

Semelhante a Web весна 2013 лекция 1 (20)

Web осень 2013 лекция 1
Web осень 2013 лекция 1Web осень 2013 лекция 1
Web осень 2013 лекция 1
 
Phalcon - самый быстрый PHP Framework
Phalcon - самый быстрый PHP FrameworkPhalcon - самый быстрый PHP Framework
Phalcon - самый быстрый PHP Framework
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
 
Web осень 2012 лекция 1
Web осень 2012 лекция 1Web осень 2012 лекция 1
Web осень 2012 лекция 1
 
Web лекция 1
Web   лекция 1Web   лекция 1
Web лекция 1
 
Стажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTPСтажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTP
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
 
Web весна 2012 лекция 1
Web весна 2012 лекция 1Web весна 2012 лекция 1
Web весна 2012 лекция 1
 
C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.
 
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2
 
15.03.19 WebPromo SEOday SEO-инсайты из логов: от WP блога до международного ...
15.03.19 WebPromo SEOday SEO-инсайты из логов: от WP блога до международного ...15.03.19 WebPromo SEOday SEO-инсайты из логов: от WP блога до международного ...
15.03.19 WebPromo SEOday SEO-инсайты из логов: от WP блога до международного ...
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBA
 
2013 09 17 архитектура веб-приложений
2013 09 17 архитектура веб-приложений2013 09 17 архитектура веб-приложений
2013 09 17 архитектура веб-приложений
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...
 
Drupal и мобильные устройства
Drupal и мобильные устройстваDrupal и мобильные устройства
Drupal и мобильные устройства
 
Drupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинDrupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин Константин
 
Drupal и мобильные устройства комелин константин
Drupal и мобильные устройства комелин константинDrupal и мобильные устройства комелин константин
Drupal и мобильные устройства комелин константин
 
Платформа .NET Core глазами PHP-разработчика
Платформа .NET Core глазами PHP-разработчикаПлатформа .NET Core глазами PHP-разработчика
Платформа .NET Core глазами PHP-разработчика
 
сравнение Drupal и 1с битрикс
сравнение Drupal и 1с битрикссравнение Drupal и 1с битрикс
сравнение Drupal и 1с битрикс
 
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)
 

Mais de Technopark

Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelTechnopark
 
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuTechnopark
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARNTechnopark
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. SparkTechnopark
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache MahoutTechnopark
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeperTechnopark
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveTechnopark
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Technopark
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Technopark
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Technopark
 
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSTechnopark
 
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы HadoopTechnopark
 
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceTechnopark
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"Technopark
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...Technopark
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"Technopark
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"Technopark
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"Technopark
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"Technopark
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...Technopark
 

Mais de Technopark (20)

Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
 
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARN
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
 
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFS
 
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы Hadoop
 
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduce
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
 

Web весна 2013 лекция 1

  • 2. О чем этот курс ?
  • 3. Как программировать на PHP / Java? Как сверстать красивую страничку? Как сделать сайт?
  • 4. Это курс о.. О том, как работают web приложения. О “Best practise” web разработки. О современных технологий web.
  • 6. Архитектор должен быть в курсе Неплохой способ заработать $ Или.. что бы вовремя остановиться )
  • 8. История сети Internet 1969 – сеанс связи ARPANET 1971 – отправка первого Email 1983 – ARPANET переходит на TCP/IP 1984 – запущена система DNS 1989 – появление WWW, HTTP, HTML 1993 – первый браузер – NCSA Mosaic 1995 – Yahoo, Hotmail, Amazon.com 1998 – Mail.Ru
  • 11. Эволюция web сайтов Web 1.0 – до .com bubble. Статичное содержание страниц, аскетичный дизайн, чаты, форумы, гостевые книги. Web 2.0 – новое поколение сайтов (после 2001) Usergenerated content. Предоставление и потребление API. RSS. Обновление страниц “на лету” (ajax). Web 3.0 - ??? Community-generated content. Семантическая паутина. Уникальные идентификаторы и микроформаты. Аскетичный дизайн
  • 13. Тенденции развития ПО ● ● Клиент-серверная архитектура. Глобальные приложения: поиск, почта – big data ● Мобильные приложения ● Software as a Service ● Облачные сервисы Тонкие клиенты. cоциальные сети,
  • 14. Web приложения ● ● ● ● ● Традиционные сайты: новости, блоги, wiki, базы знаний, визитки. Глобальные приложения: почтовые сервисы, поиск, социальные сети. E-commerce: магазины, бронирование, цифровая дистрибуция. Замена desktop приложениям: банк-клиенты, CRM, корпоративный софт. SAAS – то же cамое, но онлайн.
  • 15. Чем можно заняться ? ● Front-end разработка ● Back-end разработка ● Разработка под мобильные платформы ● Инфраструктура ● Архитектура ● Системное программирование ● Прочее (seo, security, management)
  • 17. Архитектура Клиент-серверное приложение Ресурсы и адресация Запрос – ответ (альтернативы ?)
  • 18. IP адресация ● 94.100.191.201 – один из адресов Mail.Ru ● 127.0.0.1 – всегда адрес лок. компьютера ● 192.168.12.14 – private ip (не уникален) ● 192.168.0.0/16 – адрес подсети ● 12.0xbad – тоже валидный адрес ● 2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d
  • 19. DNS
  • 20. DNS ● Отличие домена и зоны DNS ● Что возвращает DNS? Виды записей ● Рекурсивные и итеративные запросы ● Обратные зоны ● CDN – content delivery network ● Google public DNS – 8.8.8.8 8.8.4.4
  • 21. HTTP GET /wiki/страница HTTP/1.1 Host: ru.wikipedia.org Accept: text/html Connection: close (пустая строка) HTTP/1.1 200 OK Server: Apache Content-Language: ru Content-Type: text/html; charset=utf-8 Content-Length: 1234 Connection: close (HTML)
  • 22. Протоколы Internet ● HTTP – передача гипертекста ● FTP – передача файлов ● SMTP – передача почты ● POP3, IMAP – получение почты ● SSH – удаленный доступ к серверу ● SFTP – FTP через SSH ● XMPP – Jabber, мгновенные сообщения ● TCP ?
  • 23. Форматы Internet ● RFC822 - Internet Text Message format ● XML ● JSON, JSONP ● CSV ● MIME ● JPEG / PNG / GIF ● PDF
  • 24. URI vs URL URI – идентификатор mailto:me@tut.ru tel:02 urn:isbn:0-395-36341-1 URL – определяет положение ресурса http://tom:abc@host.com/h/1.html?a=b http – протокол tom:abc – логин / пароль host.com – адрес сервера /h/1.html – путь к ресурсу a=b – параметры (query string)
  • 25. HTTP – загрузка файлов Загрузка с диска 1.html → /home/user/ht/1.html img/1.jpg → /home/user/ht/img/1.jpg Загрузка с сервера DocumentRoot = /htdocs http://www.ru/ → /htdocs/index.html http://www.ru/img/1.jpg → /htdocs/img/1.jpg
  • 26. HTML <ul id="tab_main"> <li> <a href="/content"> <img src="/img/content.png" alt="Статьи"> Статьи </a> </li> <li> <a href="/blog"> <img src="/img/blog.png" alt="Блог"> <b>Блог</b> </a> </li> </ul>
  • 27. HTML HTML тэги Парные: <b></b>(bold), <i></i>(italic), <a></a> (anchor), <quote></quote> Одиночные: <img>, <link> Структурые: <body>, <ul>, <div>,<span> HTML аттрибуты Стандартные: id, style, class, title, .. Специфичные: href, src, rowspan, Пользовательские: data-myattr
  • 28. Формы и ссылки <a href=”/search/?q=bob&site=mail.ru”>Найти</a> <a name=”chapter1”></a> <a href=”#chapter1”>Глава 1</a> <form method=”GET” action=”/search/”> <input type=”text” name=”q” value=””/> <input type=”text” name=”site” value=””/> <input type=”submit”/> </form>
  • 29. CGI Переменные окружения REQUEST_METHOD – метод (GET, POST, …) REQUEST_URI – строка запроса QUERY_STRING - строка параметров REMOTE_ADDR – ip адрес клиента SCRIPT_NAME – имя текущего скрипта HTTP_COOKIE – заголовок Cookie: HTTP_REFERER – заголовок Referer:
  • 30. CGI - скрипт #!/usr/bin/python2.7 print "Content-Type: text/html" print "" print "<html><body>" print "<h1>hello, world!</h1>" import os for k, v in os.environ.items(): print "%s = %s<br>" % (k, v) print "</html></body>" Ошибочка ?
  • 31. Python ● Скриптовый язык общего назначений ● Синтаксис основан на отступах ● Минимализм ● Динамическая (но строгая) типизация http://www.codecademy.com/tracks/python
  • 32. Python (примеры) animals = ['dog', 'tux', 'caterpillar'] for a in animals: print(a) if len(a) > 3: print('%s_%s' % (a[0:2], ' for short')) def reply(msg, user='author'): return '<blockquote>' + user + ' says:<br>' + msg + '</blockquote>' import datetime td = datetime.date.today() from datetime import date td = date.today()
  • 33. Шаблонизация Скрипт do.cgi return render_to_response('sample.tpl', { 'say_hello' : True, 'environ': os.environ }) Шаблон sample.tpl <ul> [% IF say_hello %] <h1>Hello, world!</h1> [% END %] [% FOR e IN environ %] <li>[% e.name %] = [% e.value %]</li> [% END %] </ul>
  • 34. SSI <!--# include file=”/header.html” –-> <div class=”user-email”> <!--# set var=”Email” value=”me@a.ru” --> <!--# echo var=”Email” --> </div> <!--# if expr=”$Email” → Авторизован <!--# else --> Вам нужно авторизоваться <!--# endif --> <!--# config -->
  • 35. JavaScript ● Язык программирования браузера ● Java / C подобный синтаксис ● DOM – дерево, DHTML ● События и обработчики ● XHR и Ajax ● JQuery, Prototype, Backbone, YUI, … http://www.codecademy.com/tracks/javascript