Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
Веб-программирование. Конспект лекций
Имеется обновленная версия этого конспекта: www.4stud.info/
Содержание
1.
2.
3.
4.
5.
6.
7.
8.
9.
Основы World Wide Web (WWW)
Основы HTML
Каскадные таблицы стилей
Протокол HTTP
Динамический HTML. DOM и клиентские скрипты
Общий шлюзовый интерфейс (CGI)
Модули веб-сервера. ISAPI и apache modules
Расширяемый язык разметки XML. Технологии на основе XML.
Перспективы развития веб-технологий
Основы World Wide Web (WWW)
Что такое Интернет?
Интернет - это глобальная компьютерная сеть, объединяющая локальные сети предприятий и
организаций и компьютеры отдельных пользователей в общее информационное пространство. Интернет
использует для связи магистральные каналы поставщиков телекоммуникационных услуг и клиентские
каналы («последняя миля»). Интернет представляет свою инфраструктуру для прикладных сервисов
различного назначения (файлообменных, почтовых, гипертекстовых, VoIP и проч.)
Что такое WWW?
World Wide Web (WWW, web, веб, Всемирная паутина) — это распределенная информационная
система, предоставляющая доступ к гипертекстовым документам по протоколу HTTP (HyperText
Transfer Protocol). WWW - это сетевая технология, построенная на клиент-серверной архитектуре и
использующая инфраструктуру Интернет для взаимодействия между сервером и клиентом (рис. 1).
Серверы WWW (web-серверы) - это хранилища гипертекстовой (в общем случае) информации.
Документы, представленные в виде гипертекста называются web-страницами. Несколько web-страниц,
объединенных общей тематикой, оформлением, связанных гипертекстовыми ссылками и обычно
находящихся на одном и том же web-сервере, называются web-сайтом. По данным за октябрь 2009 г.
(http://netcraft.com) во Всемирной паутине насчитывалось более 230 млн. сайтов, размещенных на
миллионах web-серверов. Для загрузки и просмотра информации с web-сайтов используются
специальные программы — браузеры. Браузер - это программа, способная понимать гипертекст и
отображать содержимое веб-страниц.
Стр. 1 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
Рис.1. Клиент-серверная архитектура WWW
Тим Бернерс-Ли
Сэр Тимоти Джон Бернерс-Ли — британский учёный-физик, изобретатель концепции
Всемирной паутины (совместно с Робертом Кайо), автор URL, HTTP и HTML.
Действующий глава Консорциума Всемирной паутины (W3C). Автор концепции
семантической паутины и множества других разработок в области информационных
технологий.
Как работает WWW?
В основе WWW - взаимодействие веб-сервера и браузеров по специальному протоколу (HTTP).
Веб-сервер - это программа, запущенная на сетевом компьютере и ожидающая клиентские запросы по
протоколу HTTP. Браузер может обратиться к веб-серверу по доменному имени или по ip-адресу,
передавая в запросе идентификатор требуемого ресурса. Получив запрос от клиента, сервер находит
соответствующий ресурс на локальном устройстве хранения и отправляет его как ответ. Браузер
принимает ответ и обрабатывает его соответствующим образом, в зависимости от типа ресурса
(отображает гипертекст, показывает изображения, сохраняет полученные файлы и т.п.).
Основной тип ресурсов Всемирной паутины - гипертекстовые страницы. Гипертекст - это обычный
Стр. 2 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
текст, размеченный специальными управляющими конструкциями, тегами. Браузер считывает теги и
интерпретирует их как команды форматирования при выводе информации. Теги описывают структуру
документа, а специальные теги, якоря и гиперссылки, позволяют установить связи между
веб-страницами и перемещаться как внутри веб-сайта, так и между сайтами.
Возможности WWW обеспечиваются четырьмя составляющими:
универсальный способ адресации ресурсов в сети URL (Universal Resource Locator);
язык гипертекстовой разметки документов HTML (HyperText Markup Language);
протокол передачи гипертекста HTTP (HyperText Transfer Protocol);
общий шлюзовый интерфейс CGI (Common Gateway Interface).
Что такое домен и доменное имя?
Домен - определенная зона в системе доменных имён (DNS) Интернет, выделенная какой-либо стране,
международной организации, региону, юридическому или физическому лицу для целей обеспечения
доступа к предоставляемой им в Интернете информации. Примеры доменов: .edu, .ru, .com, .org, .net и
т.д.
Доменое имя - в системе DNS символьная строка, состоящая из имени домена ([и субдоменов]) и имени
хоста в этом домене, сопоставленная с сетевым адресом этого хоста. Примеры доменных имен:
example.com, test.example.com, test.test.example.com.
Что такое URL?
Для доступа к любым сетевым ресурсам необходимо знать где они размещены и как к ним можно
обратиться. Во Всемирной паутине используется стандартизованная схема адресации и идентификации,
учитывающую опыт адресации и идентификации e-mail, Gopher, WAIS, telnet, ftp и т.п. - URL, Uniform
Resource Locator.
URL (Uniform Resource Locator, RFC 1738) - унифицированный локатор (указатель) ресурсов,
стандартизированный способ записи адреса ресурса в WWW и сети Интернет. Адрес URL имеет
гибкую и расширяемую структуру для максимально естественного указания местонахождения ресурсов
в сети. Для представления адреса используется ограниченный набор символов ASCII. Общий вид
адреса можно представить так:
<схема>://<логин>:<пароль>@<хост>:<порт>/<полный-путь-к-ресурсу>
Где:
схема
схема обращения к ресурсу: http, ftp, gopher, mailto, news, telnet, file, man, info, whatis, ldap, wais и
т.п.
логин:пароль
имя пользователя и его пароль, используемые для доступа к ресурсу
хост
доменное имя хоста или его IP-адрес.
порт
порт хоста для подключения
полный-путь-к-ресурсу
уточняющая информация о месте нахождения ресурса (зависит от протокола).
Стр. 3 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
Примеры URL:
http://example.com
#запрос стартовой страницы по умолчанию
http://www.example.com/site/map.html
#запрос заданной страницы в указанном каталоге
http://example.com:81/script.php
#подключение на нестандартный порт
http://example.org/script.php?key=value
#запрос с передачей параметров скрипту
ftp://user:pass@ftp.example.org
#подключение к ftp-серверу с авторизацией
http://192.168.0.1/example/www #подключение по сетевому адресу
file:///srv/www/htdocs/index.html
#открытие локального файла
gopher://example.com/1
#подключение к серверу gopher
Версии HTML
RFC 1866 — HTML 2.0, — 22.09.1995г.;
HTML 3.2 — 14.01.1997г.;
HTML 4.0 — 18.12.1997г.;
HTML 4.01 — 24.12.1999г.;
ISO/IEC 15445:2000 (ISO HTML, основан на HTML 4.01 Strict) — 15.05.2000г.;
HTML 5 — с 2004 г. в разработке.
Официальной спецификации HTML 1.0 не существует. До 1995г. существовало множество
неофициальных стандартов HTML. Чтобы стандартная версия отличалась от них, ей сразу присвоили
второй номер.
Версия 3.1 официально никогда не предлагалась, и следующей версией стандарта HTML стала 3.2.
В HTML 4.0 добавлены специфичные элементы, а некоторые теги были отмечены как устаревшие и
нерекомендованные.
Что такое HTML?
HTML (HyperText Markup Language — «язык разметки гипертекста») — стандартный язык разметки
документов во Всемирной паутине. Большинство веб-страниц созданы при помощи языка HTML. Язык
HTML интерпретируется браузером и отображается в виде документа, в удобной для человека форме.
HTML является приложением SGML (стандартного обобщённого языка разметки) и соответствует
международному стандарту ISO 8879.
HTML создавался как язык для обмена научной и технической документацией, пригодный для
использования людьми, не являющимися специалистами в области вёрстки. Для этого он представляет
небольшой (сравнительно) набор структурных и семантических элементов — тегов. С помощью HTML
можно легко создать относительно простой, но красиво оформленный документ. Изначально язык
HTML был задуман и создан как средство структурирования и форматирования документов без их
привязки к средствам воспроизведения (отображения). В идеале, текст с разметкой HTML должен
единообразно воспроизводиться на различном оборудовании (монитор ПК, экран органайзера,
ограниченный по размерам экран мобильного телефона, медиа-проектор). Однако современное
применение HTML очень далеко от его изначальной задачи. Со временем основная идея
платформонезависимости языка HTML стала жертвой коммерциализации WWW и потребностей в
мультимедийном и графическом оформлении.
Что такое HTTP?
HTTP (HyperText Transfer Protocol, RFC 2616, текущая версия HTTP/1.1) - протокол передачи
гипертекста. Этот протокол изначально был предназначен для обмена гипертекстовыми документами,
Стр. 4 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
сейчас его возможности существенно расширены (в частности, добавлены функции поддержки
потокового вещания). HTTP - типичный клиент-серверный протокол, обмен сообщениями идёт по схеме
«запрос-ответ» в виде ASCII-команд. Особенностью протокола HTTP является возможность указать в
запросе и ответе способ представления одного и того же ресурса по различным параметрам: формату,
кодировке, языку и т. д. Именно благодаря возможности указания способа кодирования сообщения
клиент и сервер могут обмениваться двоичными данными, хотя данный протокол является текстовым.
HTTP - протокол прикладного уровня, но используется также в качестве «транспорта» для других
прикладных протоколов, таких как SOAP, XML-RPC, WebDAV.
Что такое CGI?
Common Gateway Interface (CGI) - это механизм доступа к программам на стороне сервера.
Спецификация Common Gateway Interface (CGI) была разработана для расширения возможностей
WWW за счет подключения различного внешнего программного обеспечения. При использовании CGI
веб-сервер представляет браузеру доступ к исполнимым программам, запускаемым на его (серверной
стороне) через стандартные потоки ввода и вывода, что упрощает программирование до предела.
Механизм CGI можно разделить на четыре части:
переменные окружения, через них приложению передаются данные и служебная информация
командная строка (при запросах типа ISINDEX)
стандартный ввод, используемый при передаче данных по методу POST
стандартный вывод, который предназначен для возврата данных серверу.
Интерфейс CGI используется для создания динамических веб-сайтов, например, когда веб-страницы
формируются из результатов запроса к базе данных. Сейчас популярность CGI снизилась, т.к. появились
более совершенные альтернативные решения (например, модули расширения веб-серверов).
Программное обеспечение WWW
Веб-серверы
Веб-сервер — это сетевое приложение, обслуживающее HTTP-запросы от клиентов, обычно
веб-браузеров. Веб-сервер принимает запросы и возвращает ответы, обычно вместе с HTML-страницей,
изображением, файлом, медиа-потоком или другими данными. Веб-серверы — основа Всемирной
паутины.
Созданием программного обеспечения web-серверов занимаются многие разработчики, но наибольшую
популярность в WWW получили такие программные продукты, как Apache (Apache Software
Foundation), IIS (Microsoft), QZHTTP (он же qq.com), Google Web Server (GWS, Google Inc.) и nginx
(И.Сысоев) (Рис. 2)
Apache - свободный web-сервер с открытым исходным кодом, распространяется под совместимой с
GPL лицензией. Apache уже многие годы является лидером по распространенности во Всемирной
паутине в силу своей надежности, гибкости, масштабируемости и безопасности.
IIS (Internet Information Services) - проприетарный набор серверов для нескольких служб Интернета,
разработанный Майкрософт и распространяемый с ОС семейства Windows NT. Основным компонентом
IIS является веб-сервер, также поддерживаются протоколы FTP, POP3, SMTP, NNTP.
Стр. 5 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
QZHTTP - модифицированный Apache, используемый на китайском портале qq.com. На нем
размещены сервисы онлайн-дневников и мгновенного обмена сообщениями.
Google Web Server (GWS) - разработка компании Google на основе web-сервера Apache. GWS
оптимизирован для выполнения приложений сервиса Google Applications.
nginx [engine x] — это HTTP-сервер, совмещенный с почтовым прокси-сервером. Разработан
И.Сысоевым для компании Рамблер. Осенью 2004 года вышел первый публично доступный релиз,
сейчас nginx используется рядом крупных сайтов.
lighttpd — веб-сервер, разрабатываемый с расчётом на быстроту и защищённость при использовании на
сильно нагруженных сайтах, а также соответствие стандартам. lighttpd — свободное программное
обеспечение, распространяемое по лицензии BSD.
Рис. 2. Распределение web-серверов на октябрь 2009 г.
(по данным netcraft.com)
Браузеры
Браузер, веб-обозреватель (web-browser) — это клиентское программное обеспечение для доступа к
веб-серверам по протоколу HTTP и просмотра веб-страниц. Как правило браузеры дополнительно
поддерживают и ряд других протоколов (например ftp, file, mms, pop3).
Первые HTTP-клиенты были консольными и работали в текстовом режиме, позволяя читать гипертекст
и перемещаться по ссылкам. Сейчас консольные браузеры (такие, как lynx, w3m или links) практически
не используются рядовыми посетителями веб-сайтов. Тем не менее такие браузеры весьма полезны для
веб-разработчиков, так как позволяют "увидеть" веб-страницу "глазами" поискового робота.
Исторически первым браузером в современном понимании (т.е. с графическим интерфейсом и т.д.) была
программа NCSA Mosaic, разработанная Марком Андерисеном и Эриком Бина. Mosaic имел довольно
ограниченные возможности, но его открытый исходный код стал основой для последующих разработок.
Стр. 6 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
Ныне браузер — комплексное приложение для обработки и вывода разных компонентов веб-страницы.
Наибольшую распространенность в мире имеют четыре браузера (с появлением Google Chrome их
стало пять): Internet Explorer (Microsoft), Firefox (Mozilla Foundation), Safari (Apple) и Opera (Opera
Software ASA) (Рис. 3).
Internet Explorer (IE) - браузер, разработанный компанией Майкрософт, является наиболее
распространенным в мире. Это связано с тем, что IE тесно интегрирован c ОС Windows и поставляется
вместе с ней. Платформозависим (поддержка сторонних ОС прекращена, начиная с версии 5).
Единственный браузер, напрямую поддерживающий технологию ActiveX. Не полностью совместим со
стандартами W3C, в связи с чем требует дополнительных затрат от веб-разработчиков.
Firefox - свободный кроссплатформенный браузер, разрабатываемый Mozilla Foundation и
распространяемый под тройной лицензией GPL/LGPL/MPL. В основе браузера - движок Gekko,
который изначально создавался для Netscape Communicator. Однако, вместо того, чтобы предоставить
все возможности движка в стандартной поставке, Firefox реализует лишь основную его
функциональность, предоставляя пользователям возможность модифицировать браузер в соответствии
с их требованиями через поддержку расширений (add-ons), тем оформления и плагинов.
Такая лёгкая расширяемость достигается, в основном, за счёт использования в интерфейсе специально
разработанного исключительно для Gecko языка разметки XUL и стандартных JavaScript и CSS. Это
иногда приводит к более медленной работе интерфейса и повышенным требованиям к оперативной
памяти. Для тех, кому нужны функции движка Gecko, а не расширяемый интерфейс, существуют
сторонние браузеры, в которых интерфейс реализован по-другому; например, Camino, SeaMonkey,
Epiphany и Kazehakase.
Safari - проприетарный браузер, разработаный корпорацией Apple и входящий в состав операционной
системы Mac OS X. Бесплатно распространяется для операционных систем семейства Microsoft
Windows. В браузере используется уникальный по производительности интерпретатор JavaScript,
опережающий аналоги более чем в 2 раза. Среди других особенностей: функция «Snapback», которая
позволяет мгновенно вернуться к исходным результатам поиска или к верхнему уровню любого
веб-сайта; те же графические технологии, что и в Mac OS X; предварительная поддержка стандартов
CSS3 и HTML 5; автоматическое распознавание и подгрузка отсутствующих в системе шрифтов;
интеграция мультимедийных технологий QuickTime.
Google Chrome — браузер с открытым исходным кодом, разрабатываемый компанией Google. Первая
стабильная версия вышла 11 декабря 2008 года. В отличие от многих других браузеров, в Chrome
каждая вкладка является отдельным процессом. В случае если процесс обработки содержимого вкладки
зависнет, его можно будет завершить без риска потери данных других вкладок. Еще одна особенность интеллектуальная адресная строка (Omnibox). К возможности автозаполнения она добавляет поисковые
функции с учетом популярности сайта, релевантности и пользовательских предпочтений (истории
переходов). Планируется кроссплатформенность.
Opera — кроссплатформенный многофункциональный веб-браузер, разработанный в 1994 году группой
исследователей из норвежской компании Telenor. Дальнейшая разработка ведется Opera Software ASA.
Браузер Opera обладает высокой скоростью работы и совместим с основными стандартами WWW.
Отличительными особенностями Opera долгое время являлись многостраничный интерфейс (система
вкладок) и возможность масштабирования веб-страниц целиком, вместе с графикой. Функция Small
Screen Rendering позволяет переформатировать документ для отображения на экранах мобильных
устройств. В Opera, кроме стандартных способов навигации предусмотрены так называемые «жесты
мышью». На разных этапах развития в Opera были интегрированы возможности почтового/новостного
Стр. 7 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
клиента Opera Mail, адресной книги, клиента сети BitTorrent, агрегатора RSS, клиента IRC, менеджера
закачек, WAP-браузера, а также поддержка виджетов — графические модулей, работающих вне окна
браузера.
Специальные редакции, Opera Mobile и Opera Mini, существенно опережают прочие браузеры по числу
установок на мобильные телефоны. Opera также единственный браузер для игровых систем Nintendo
DS и Wii. Движок Opera (Presto) лицензирован Adobe и интегрирован в пакет для веб-разработчиков
Adobe Creative Suite.
До 2005 года Opera распространялся в виде ad-ware, а с 2005 года версии Opera для ПК и устройств
мобильной связи (кроме Opera Mobile) доступны бесплатно.
Рис. 3. Статистика браузеров за период 07.2008 г - 10.2009 г.
(по данным statcounter.com)
Основы HTML
Язык разметки гипертекста
HTML (HyperText Markup Language) — язык разметки гипертекста, предназначенный для создания
веб-страниц.
HTML представляет простые правила оформления и компактный набор структурных и семантических
элементов разметки (тегов), которые позволяют создавать веб-страницы разной сложности. HTML
позволяет описывать способ представления логических частей документа (заголовки, абзацы, списки и
т.д.). Изначально язык HTML был задуман и создан как средство структурирования и форматирования
документов без привязки к средствам отображения. В идеале, гипертекстовый документ должен
одинаково выглядеть на различных устройствах (монитор ПЭВМ, экран ПДА или мобильного телефона,
принтер, медиа-проектор и т.п.).
HTML не является языком программирования, но веб-страницы могут содержать встроенные или
загружаемые программы на скриптовых языках (в первую очередь Javascript) и программы-апплеты на
языке Java.
Стр. 8 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
Версии HTML
Разработкой спецификаций языка HTML и утверждением их в качестве официальных стандартов
занимается Консорциум всемирной паутины (W3C). Помимо W3C, в развитии языка участвуют
IT-компании и сообщество разработчиков.
Официальной спецификации HTML 1.0 не существует. До 1995 года существовало множество
неофициальных спецификаций HTML, появившихся в ходе браузерных войн.
RFC 1866 — HTML 2.0, одобренный как официальный стандарт 22 сентября 1995 года;
HTML 3 (март 1996) - не нашла поддержки у разработчиков
HTML 3.2 — 14 января 1997 года;
HTML 4.0 — 18 декабря 1997 года (многие унаследованные элементы были отмечены как
устаревшие и нерекомендованные к использованию (англ. deprecated).);
HTML 4.01 — 24 декабря 1999 года (версия включала малозаметные, но существенные изменения
по сравнению с предыдущей);
ISO/IEC 15445:2000 (ISO HTML, основан на HTML 4.01 Strict) — 15 мая 2000 года.
HTML 5 — с 2004 года в разработке (W3C совместно с сообществом WHATWG).
Перспективы
С 2004 г W3C разрабатывает HTML версии 5. Черновой вариант спецификации языка появился в
Интернете 20 ноября 2007 года. Параллельно ведётся работа по дальнейшему развитию HTML под
названием XHTML (англ. eXtensible Hypertext Markup Language — «расширяемый язык разметки
гипертекста»). Пока XHTML по своим возможностям сопоставим с HTML, однако предъявляет более
строгие требования к синтаксису. Как и HTML, XHTML является подмножеством языка SGML, однако
XHTML, в отличие от предшественника, основан на XML. Вариант XHTML 1.0 был одобрен в качестве
Рекомендации Консорциума всемирной паутины 26 января 2000 года.
Планируемая спецификация XHTML 2.0 разрывает совместимость со старыми версиями HTML и
XHTML, что не очень устраивает некоторых веб-разработчиков и производителей браузеров. Группой
WHATWG (англ. Web Hypertext Application Technology Working Group) разрабатывается спецификация
Web Applications 1.0, часто неофициально называемая «HTML 5», которая расширяет HTML (впрочем,
имея и совместимый с XHTML 1.0 XML-синтаксис) для лучшего представления семантики различных
типичных страниц, например форумов, сайтов аукционов, поисковых систем, онлайн-магазинов и т.д.,
которые не очень удачно вписываются в модель XHTML 2.
Элементы гипертекста
Структура HTML-документа
HTML-документ состоит из текста, который представляет собой информационное содержимое и
специальных средств языка HTML — тегов разметки, которые определяют структуру и внешний вид
документа при его отображении браузером. Структура HTML-документа (рис. 1) довольно проста:
1. Описание документа начинается с указания его типа (секция DOCTYPE).
2. Текст документа заключается в тег . Текст документа состоит из заголовка и тела, которые
выделяются соответственно тегами и .
В заголовке () указывают название HTML-документа и другие параметры, которые
браузер будет использовать при отображении документа.
Тело документа () — это та часть, в которую помещается собственно содержимое
Стр. 9 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
HTML-документа. Тело включает предназначенный для
отображения текст и управляющую разметку документа
(теги), которые используются браузером.
Наличие секции DOCTYPE позволяет указать браузеру, какой тип
документа ему предстоит разбирать, т.е, какие требования нужно
выполнять при обработке гипертекста.
Заголовок предназначен для размещения метаинформации,
описывающей веб-документ как таковой.
Блок содержит то, что нужно показать пользователю: текст,
изображения, внедренные объекты и пр.
В листинге 1 приведен простой пример html-разметки.
Листинг 1. Простой веб-документ (открыть)
Рис. 1. Общая структура
Почему откровенна веданта?
Почему Откровенна Веданта?
Трактат о амбивалентности бытия, сомнениях и адживике
Философия нетривиальна и это не умозаключение, а плод переработки бытийного.
Моцзы, Сюнъцзы и др. считали, что сомнение естественно понимает под собой гений,
изменяя привычную реальность. Отношение к современности, как принято считать,
непредсказуемо, а созерцание, конечно, транспонирует гравитационный парадокс,
ломая рамки привычных представлений. Позитивизм преобразует дуализм, не учитывая
мнения авторитетов. Можно предположить, что вещь в себе представляет собой типичный
здравый смысл, учитывая опасность, которую представляли собой писания Дюринга.
При этом буквы А, В, I, О символизируют соответственно суждения:
общеутвердительное;
общеотрицательное;
частноутвердительное;
частноотрицательное.
Структурализм, как принято считать, подчеркивает закон исключённого третьего,
открывая новые горизонты. Адживика преобразует неоднозначный предмет деятельности,
tertium nоn datur. Согласно предыдущему, дуализм оспособляет примитивный бабувизм,
ломая рамки привычных представлений. Наряду с этим вещь в себе дискредитирует
сенсибельный принцип восприятия.
В целом, представляется логичным, что адживика трансформирует субъективный
гедонизм, тогда как бабувизм контролирует предмет деятельности, tertium nоn datur.
DOCTYPE
Секция DOCTYPE указывает браузеру тип документа и версию использованного языка разметки. Здесь
также указывается название и область видимости описания этого языка и адрес файла dtd (document
type definition).
Стр. 10 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
Примеры DOCTYPE:
Гипертекстовый документ в формате HTML 4.01, содержащий фреймы.
Гипертекстовый документ в формате HTML 4.01 со строгим синтаксисом (т.е. не использованы
устаревшие и не рекомендованные теги).
Гипертекстовый документ в формате HTML 4.01 с нестрогим («переходным») синтаксисом (т.е.
использованы устаревшие или не рекомендованные теги и атрибуты).
Пока не стандартизованное объявление для документов HTML5.
Стандарт требует, чтобы секция DOCTYPE присутствовала в документе, т.к. это позволяет ускорить и
улучшить обработку гипертекста. Это достигается за счет того, что браузер может не делать
предположений о том, как интерпретировать теги, а свериться со стандартным определением (файлом
.dtd). Подробное описание DOCTYPE — на сайте Консорциума W3C.
Мета-теги
Мета-тег HTML — это элемент разметки html, описывающий свойства документа как такового
(метаданные). Назначение мета-тега определяется набором его атрибутов, которые задаются в теге
.
Мета-теги размещают в блоке ... веб-страницы. Они не являются обязательными
элементами, но могут быть весьма полезны.
Пример описания метаданных:
— автор веб-документа
— дата последнего изменения веб-страницы
— авторские права
— список ключевых слов
— краткое описание (реферат)
— запрет на индексирование
— тип и кодировка
— управление кэшированием
— перенаправление
Теги
Тег (html-тег, тег разметки) — управляющая символьная последовательность, которая задает способ
отображения гипертекстовой информации.
HTML-тег состоит из имени, за которым может следовать необязательный список атрибутов. Весь тег
(вместе с атрибутами) заключается в угловые скобки <>:
<имя_тега [атрибуты]>
Стр. 11 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
Как правило, теги являются парными и состоят из начального и конечного тегов, между которыми и
помещается информация. Имя конечного тега совпадает с именем начального, но перед именем
конечного тега ставится косая черта / (...). Конечные теги никогда не содержат атрибутов.
Некоторые теги не имеют конечного элемента, например тег . Регистр символов для тегов не
имеет значения.
Примеры часто используемых тегов HTML:
... — контейнер гипертекста
... — контейнер заголовка документа
... — название документа (то, что отображается в заголовке окна браузера)
... — контейнер тела документа
...
— контейнер общего назначения (структурный блок)
... — заголовок N-ного уровня (N = 1...6)
...
— основной текст
... — гиперссылка
... — нумерованный список
...
— маркированный список
...
— элемент списка
...
— контейнер таблицы
...
— строка таблицы
...
— ячейка таблицы
... — изображение
— форма
... — отображение текста курсивом
... — отображение текста полужирным шрифтом
... — выделение (курсивом)
... — усиление (полужирным шрифтом)
— принудительный разрыв строки
Теги могут быть вложены, при этом форматирование внутреннего тега имеет преимущество перед
внешним. При использовании вложенных тегов их нужно закрывать, начиная с самого последнего и
двигаясь к первому:
, то все теги внутри этого блока будут отображаться этим же цветом.
Использование каскадных таблиц дает возможность разделить содержимое и его представление и гибко
управлять отображением гипертекстовых документов путем изменения стилей.
Официальная информация о спецификации Cascading Style Sheets всегда доступна по адресу
http://www.w3.org/Style/CSS/
Общий синтаксис таблиц стилей
Стр. 15 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
Таблицы стилей строятся в соответствии с определенным порядком (синтаксисом), в противном случае
они не могут нормально работать. Таблицы стилей составляются из определенных частей (рис. 1):
Рис. 1. Синтаксис описания стиля CSS
Селектор (Selector). Селектор — это элемент, к которому будут применяться назначаемые стили.
Это может быть тег, класс или идентификатор объекта гипертекстового документа.
Свойство (Property). Свойство определяет одну или несколько характеристик селектора. Свойства
задают формат отображения селектора: отступы, шрифты, выравнивание, размеры и т.д.
Значение (Value). Значения — это фактические числовые или строковые константы,
определяющие свойство селектора.
Описание (Declaration). Совокупность свойств и их значений.
Правило (Rule). Полное описание стиля (селектор + описание).
Таким образом, таблица стилей — это набор правил, задающих значения свойств селекторов,
перечисленных в этой таблице. Общий синтаксис описания правила выглядит так:
селектор[, селектор[, ...]] {свойство: значение;}
Регистр символов значения не имеет, порядок перечисления селекторов в таблице и свойств в
определении не регламентирован.
Правила CSS
Итак, каскадная таблица стилей — это набор правил форматирования тегов HTML. Приведем несколько
примеров написания таких правил:
1. Основной текст с выравниванием по ширине, абзацный отступ 30px, гарнитура (шрифт) — Serif,
кегль (размер шрифта) — 14px:
p {
text-align: justify;
text-indent: 30px;
font-family: Serif;
font-size: 14px;
}
Это правило будет применено ко всем тегам
.
2. Синий цвет для заголовков с первого по третий уровень:
h1, h2, h3 {
color: blue; /* тоже самое, что и #0000FF */
}
3. Таблицы и изображения выводить без обрамления:
table, img {border: none;}
4. Ссылки в элементах списков показывать без подчеркивания:
Стр. 16 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
li a {text-decoration: none;}
5. Внутренние отступы слева и справа для блоков (
), заголовков таблиц и ячеек таблиц
установить в 10px и залить фон желтым цветом:
div, th, td {
padding-left: 10px;
padding-right: 10px;
background-color: yellow;
}
6. Все ссылки в документе отображать черным цветом и полужирным шрифтом, а в основном тексте
и списках — обычным, а также выделять их зеленым цветом и подчеркивать только при
наведении курсора (в описании правил использован псевдоэлемент a:hover).
a {color: black; font-weight: bold;}
p a, li a {font-weight: normal; text-decoration: none;}
p a:hover, li a:hover {
color: #00FF00; text-decoration: underline;
}
Классы
Стандарт CSS представляет возможности создания именованных стилей — стилевых классов. Это
позволяет ответить на такой, например, вопрос: Как применить разные стили к одному и тому же
селектору?
Предположим, что в документе вам нужны два различных вида основного текста — один без отступа,
второй — с левым отступом и шрифтом красного цвета. Для этого нужно создать правила для каждого
из них, например так:
p {margin-left: 0;}
p.warn {margin-left: 40px; color: #FF00;}
Для применения созданного класса его имя нужно указать в атрибуте class для выбранных абзацев:
Красный текст с отступом слева
Общий синтаксис описания класса:
селектор.имя_класса {описание}
При создании класса селектор можно не указывать, тогда это правило можно применять к любому
селектору, поддерживающему тот же набор свойств.
Вот несколько примеров:
Правило:
.solid_blue {color: blue;}
Использование:
Идентификаторы
В качестве селектора может выступать идентификатор элемента гипертекста, указанный в атрибуте id.
Для назначения стилей таким элементам используется синтаксис, аналогичный описанию классов, но
вместо точки ставится знак # (“решетка”). Например:
div#content {
position: absolute;
top: 10px;
left: 10%;
right: 10%;
border: solid 1px silver;
}
...
Текст
Следует помнить, что идентификаторы элементов должны быть уникальны в пределах документа.
Группировка свойств
Группировка (grouping) состоит в объединении значений родственных свойств. При этом таблица стилей
становится более компактной, но предъявляются более жесткие требования к описанию правил. Ниже
приведен пример обычного стиля, задающего отступы:
div {
margin-left: 10px;
margin-top: 5px;
margin-right: 40px;
margin-bottom: 15px;
}
Это же правило можно переписать с группировкой в следующем виде:
div {margin: 5px 40px 15px 10px;} /*порядок: top right bottom left*/
Оба стиля будут отображаться одинаково.
Группировка может применяться для таких свойств, как padding, font, border, background и еще
некоторых (см. документацию CSS)
Использование в веб-страницах
Существует три способа применения таблицы стилей к документу HTML:
Встраивание (Inline). Этот метод позволяет применить стиль к заданному тегу HTML.
Стр. 18 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
Внедрение (Embedded). Внедрение позволяет управлять стилями страницы целиком.
Связывание (Linked или External). Связанная таблица стилей позволяет вынести описание стилей
во внешний файл, ссылаясь на который можно контролировать отображение всех страниц сайта.
Встроенные стили
Встраивание стилей предоставляет максимальный контроль над всеми элементами веб-страницы.
Встроенный стиль применяется к любому тегу HTML с помощью атрибута style следующим образом:
Это текст с кеглем 12 точек и гарнитурой Courier
Пример:
А этот фрагмент еще и выделен красным цветом.
Встроенные стили полезны, когда необходима тонкая настройка отображения некоторого элемента
страницы или небольшой веб-страницы.
Внедренные стили
Внедренные стили используют тег
...
...
Пример использования внедренных стилей из ЛР №1.
Связанные таблицы стилей
Связанные (linked), или внешние (external) таблицы стилей — наиболее удобное решение, когда речь
идет об оформлении целого сайта. Описание правил помещается в отдельный файл (обычно, но не
обязательно, с расширением .css). С помощью тега выполняется связывание этой таблицы стилей
с каждой страницей, где ее необходимо применить, например так:
Любая страница, содержащая такую связь, будет оформлена в соответствии со стилями, указанными в
файле sample.css. Следует отметить, что файл со стилями физически может находиться на другом
веб-сервере, тогда в href нужно указать абсолютный путь к нему.
Проблемы с браузерами
Стр. 19 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
Обязательно просматривайте страницы с таблицами стилей в различных браузерах. Это связано с тем,
что разные браузеры могут по разному интерпретировать одно и то же правило, а некоторые свойства
и/или значения и вовсе не поддерживать. Следует также тестировать страницы с отключенными
стилями (например, в текстовых браузерах), чтобы убедиться, что страница читабельна.
И снова каскадирование
Если вам нужна сотня-другая-третья страниц HTML — используйте внешнюю, глобальную, таблицу
стилей. Если некоторые из этих страниц требуют корректировки общего оформления — используйте
внедренный стиль. А если на странице нужно явно изменить оформление одного-двух элементов, то
применяйте встроенные стили. Именно в таком порядке происходит перекрытие стилей при
каскадировании, схематично это можно представить так: связанные стили -> внедренные стили ->
встроенные стили
Аппаратно-зависимые стили
Таблицы стилей могут применяться для управления отображением содержимого в зависимости от
используемого устройства вывода (монитор, проектор, устройство печати, звуковой синтезатор и т.п.).
Для этого в описание стилей включить тип устройства, например так:
@media print {/* печатающее устройство */
BODY { font-size: 10pt; }
}
@media screen { /* монитор */
BODY { font-size: 12pt; }
}
@media screen, print {
BODY { line-height: 1.2; }
}
@media all {
BODY { margin: 1pt; }
}
Как видно из примера, вся таблица разбивается на секции, каждая из которых начинается со слова
@media, за которым следует название класса устройств и далее, в фигурных скобках, непосредственно
описание стилей.
Можно разделить таблицы стилей иначе, указав тип устройства в теге :
Свойства CSS
В табл.1 перечислены некоторые часто используемые свойства CSS и их назначение.
Таблица 1. Свойства элементов CSS
Имя
background
background-color
Стр. 20 из 63
Значения
Описание
[background-color || background-image ||
background-repeat || backgroundУправление фоном элемента
attachment || background-position] | inherit
| transparent | inherit
Цвет фона
25.05.2011 10:15
Веб-программирование. Конспект лекций
background-image
background-position
background-repeat
border
http://4stud.asoiu/web-programming/lectures.php
| none | inherit
[ [ | ]{1,2} | [ [top |
center | bottom] || [left | center | right] ] ] |
inherit
repeat | repeat-x | repeat-y | no-repeat |
inherit
[ border-width || border-style || ] |
inherit
Фоновое изображение
Положение фоновой картинки
Повторение фоновой
картинки
Границы элемента
Объединение/разделение
смежных границ
border-color
{1,4} | transparent | inherit
Цвет границы
border-style
{1,4} | inherit
Стиль линии границы
border-top border-right border- [ border-top-width || border-style || Управление стилем заданной
bottom border-left
] | inherit
границы
border-width
{1,4} | inherit
Толщина линии границы
bottom
| | auto | inherit
Низ элемента
Запрет заполнения свободного
clear
none | left | right | both | inherit
пространства рядом с
элементом
Обрезка содержимого
clip
| auto | inherit
элемента
color
| inherit
Цвет содержимого
[ [ ,]* [ auto | crosshair | default |
pointer | move | e-resize | ne-resize |
cursor
nw-resize | n-resize | se-resize | sw-resize | Форма курсора
s-resize | w-resize| text | wait | help ] ] |
inherit
inline | block | list-item | run-in | compact |
marker | table | inline-table | tablerow-group | table-header-group | tabledisplay
Способ отображения элемента
footer-group | table-row | tablecolumn-group | table-column | table-cell |
table-caption | none | inherit
Отображение пустых ячеек
empty-cells
show | hide | inherit
таблицы
Свободное размещение
float
left | right | none | inherit
элемента
[ [ font-style || font-variant || font-weight ]?
font-size [ / line-height ]? font-family ] |
font
Управление шрифтом
caption | icon | menu | message-box | smallcaption | status-bar | inherit
[[ | ],]*
font-family
[ | ] |
Гарнитура
inherit
| |
font-size
Кегль
| | inherit
border-collapse
Стр. 21 из 63
collapse | separate | inherit
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
font-style
normal | italic | oblique | inherit
font-variant
normal | small-caps | inherit
height
normal | bold | bolder | lighter | 100 | 200 |
300 | 400 | 500 | 600 | 700 | 800 | 900 |
inherit
| | auto | inherit
left
| | auto | inherit
font-weight
line-height
list-style
normal | | |
| inherit
[ list-style-type || list-style-position ||
list-style-image ] | inherit
{1,4} | inherit
margin
margin-top margin-right margin | inherit
bottom margin-left
padding
{1,4} | inherit
padding-top padding-right
| inherit
padding-bottom padding-left
position
static | relative | absolute | fixed | inherit
right
| | auto | inherit
left | right | center | justify | |
text-align
inherit
none | [ underline || overline || line-through
text-decoration
|| blink ] | inherit
text-indent
| | inherit
capitalize | uppercase | lowercase | none |
text-transform
inherit
top
vertical-align
visibility
white-space
width
z-index
| | auto | inherit
Стиль шрифта
Варианты отображения
шрифта
Толщина шрифта
Ширина элемента
Положение левой границы
элемента
Высота строки
Стиль списка
Внешний отступ
Внешний отступ по заданной
стороне
Внутренний отступ
Внутренний отступ по
заданной стороне
Позиционирование элемента
Положение правой границы
Выравнивание текстового
блока
Текстовые эффекты
Абзацный отступ
Начертание текста
Положение верхней границы
элемента
baseline | sub | super | top | text-top | middle
Вертикальное выравнивание в
| bottom | text-bottom | |
пределах блока
| inherit
Управление видимостью
visible | hidden | collapse | inherit
элемента
Управление пробелами между
normal | pre | nowrap | inherit
словами
| | auto | inherit
Ширина элемента
Порядок перехода по клавише
auto | | inherit
Tab
Позиционирование элементов
Рассмотрим пример, приведенный в Листинге 4 из ЛР №1. В этом примере фрагменты содержимого
размещены в блочных элементах
Подобная конструкция неверна, т. к. HTML-тег H1 будет в данном случае воспринят как тег XML. Для
того, чтобы все содержимое элемента layout воспринималось как данные, мы должны заключить его в
секцию CDATA:
Заголовок]]>
Как мы видим из этого примера, секция CDATA заключается в ограничители . Все
внутри этой секции считается символьными данными; в частности, секции CDATA не могут
вкладываться друг в друга.
Разделы и их декларации
Разделы XML-документа
Физически XML-документ может состоять из несколько разделов (entities). При этом корневой элемент
документа также является разделом, который называется разделом документа, хотя он никак
Стр. 49 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
специально не оформлен. Все разделы имеют содержимое; все они, кроме раздела документа и внешней
DTD, имеют имя.
С точки зрения синтаксического разбора документа разделы подразделяются на анализируемые и
неанализируемые. Неанализируемый раздел (unparsed entity) — это ресурс, содержимое которого
XML-процессор воспринимает как внешние данные без их синтаксического анализа (например, текст,
не являющийся XML-документом). Неанализируемые разделы всегда имеют нотацию, указывающую
на их формат. Анализируемые разделы (parsed entities) предназначены для текстовой подстановки:
всякий раз, когда XML-процессор встречает в документе имя такого раздела, он заменяет его на
содержимое этого раздела.
Внутренние разделы
Декларации разделов подразделяются на внутренние и внешние. Декларация внутреннего раздела
выглядит так:
Она включает в себя содержимое объекта (параметр значение) и используется для подстановки этого
значения вместо имени раздела. Мы можем, например, ввести в пример с книгами атрибут жанр и
использовать для задания жанра внутренние разделы:
]>
Часть речиБродский, ИосифМарш одинокихДовлатов, Сергей
Из этого примера видно, что ссылка на раздел (entity reference) выглядит точно так же, как ссылка на
специальный символ, т. е. имеет вид &имя;. На самом деле, специальные символы — это точно такие
же ссылки, но соответствующие разделы заданы неявно во внутренней декларации языка XML.
Подобные текстовые подстановки удобны для задания сокращений, позволяющих уменьшить объем
документа, и для введения обозначений для часто изменяемых полей документа. Так, например, мы
можем вынести во внутренний раздел дату очередной ревизии публикации и затем изменять только
значение этого раздела.
Внешние разделы
Существуют два варианта деклараций внешнего раздела:
Первый вариант называется системным разделом, второй — публичным разделом. Они оба связывают
имя раздела с внешним ресурсом, заданным своим URI, который должен иметь кодированную форму и
не содержать закладок. URI внешнего ресурса называется системным идентификатором раздела.
Использование внешнего ресурса зависит от нескольких факторов:
Стр. 50 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
Если декларация содержит параметр NDATA, задающий нотацию раздела, то раздел является
неанализируемым.
Если параметр NDATA не задан, то раздел анализируемый, и соответствующий ресурс должен
быть XML-документом. Это означает, что вместо ссылки на раздел в текст документа будет
включаться текст соответствующего ресурса.
Публичный раздел может содержать строку, задающую публичный идентификатор раздела.
XML-процессор может использовать этот идентификатор для генерации альтернативного URI
данного раздела. Если ему это не удалось, то он должен использовать системный идентификатор
для загрузки содержимого раздела.
Примеры деклараций внешних ресурсов:
Внешний анализируемый раздел должен начинаться с директивы , которая может не содержать
номера версии, но обязана содержать кодировку символов. Эта директива не входит в состав
подставляемого текста.
8.1.5. Декларация типа документа
Декларация типа XML-документа (document type declaration) содержит определение типа документа
(document type definition, DTD) или указывает на него. DTD — это специальная грамматика,
описывающая синтаксис определенного класса документов; правила создания DTD рассмотрены в гл.
8.2. Здесь же приводится только описание деклараций, которые обеспечивают доступ к DTD.
Декларация типа документа, как и декларация раздела, может быть внутренней или внешней.
Внутренняя декларация имеет вид:
а внешняя — те же два варианта, что и внешние разделы:
Таким образом, отличие декларации типа документа от декларации раздела состоит только в том, что:
она начинается с ключевого слова !DOCTYPE, а не !ENTITY;
она может иметь тело, заключенное в квадратные скобки.
Имя такой декларации должно совпадать с именем корневого элемента, который она описывает, а тело
должно соответствовать правилам построения DTD и будет описано в гл. 8.2. Пока отметим, что оно
может содержать декларации разделов. Примеры внешних деклараций:
Отметим, что внешняя декларация типа документа может содержать и ссылку на DTD, которая
называется внешним подмножеством DTD, и тело, которое описывает дополнения к внешней DTD (оно
Стр. 51 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
называется внутренним подмножеством DTD).
Пример XML-документа
Чтобы собрать все описанные выше понятия в единое целое, приведем пример законченного
XML-документа, содержащего прейскурант книжного магазина.
[
"поэзия">
"проза">
"драматургия"> ]>
Марш обреченныхСергейДовлатов60.00Часть речиИосифБродский55.00АнтигонаСофокл103.50
Перспективы развития веб-технологий
Перспективы Веб?
WEB 0.0 — юзер мечтает законнектиться с кем или чем либо
WEB 1.0 — юзер получает контент
WEB 2.0 — юзер создаёт контент
WEB 3.0 — коллективное создание контента
WEB 4.0 — контент думает за юзера
Стр. 52 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
WEB 5.0 — контент общается с контентом
WEB 6.66 — контент удаляет юзеров, поняв что они бессмысленны
WEB 7.0 — весь контент самоудаляется, поняв что он бессмысленен...
[схабрено]
Небольшой (по историческим меркам) срок существования сервиса WWW показал его
востребованность все возрастающему числу пользователей. Это стало хорошим стимулом для развития
веб-ориентированных концепций и технологий, увеличивающих возможности пользователей. Массовое
внедрение и использование этих решений - причина качественных изменений во Всемирной паутине,
своего рода смена «версии» Web. На текущий момент аналитики Интернет выделяют три таких
«версии» — Web 1.0, Web 2.0 и Web 3.0 (стоит отметить, что деление это условное и часто
критикуемое).
Web 1.0
Понятие Web 1.0 — это общий термин, описывающий состояние Всемирной Паутины за первое
десятилетие ее существования. Для 90-х годов XX века были характерны низкая компьютерная
грамотность пользователей, медленные типы подключения и ограниченное число сервисов Интернет.
Веб-сайтам того времени были присущи следующие основные черты:
Статичное содержимое веб-страниц, контент создавался и поддерживался разработчиками
веб-сайта.
Фреймовая и/или табличная верстка.
Низкое качество разметки (зачастую контент был представлен в виде обычного текста,
заимствованного из конференций UseNet и подобных источников, и заключенного в тег
).
Широкое использование нестандартных тегов, поддерживаемых только конкретным браузером
(см. «войны браузеров» самостоятельно).
Использование физических или внедренных стилей, редко - встраиваемых и, тем более, связанных
таблиц стилей.
Указание информации о рекомендованной версии браузера и разрешении монитора, при которых
дизайн сайта отображается корректно.
Гостевые книги, форумы или чаты — как инструменты обратной связи и придания
интерактивности.
Использование графических и текстовых информеров (погода, курс доллара и т.п.) для
агрегирования информации.
Условное окончание эпохи «Web 1.0» датируется 2001 годом, когда произошел обвал акций интернеткомпаний (об этом говорят так: «лопнул пузырь доткомов» (от англ. .com)). Собственно,
существовавшие сайты никуда не делись, но вот вновь создаваемые сайты все больше и больше
отличались от типичных «веб-один-нольных».
Web 2.0
Web 2.0 — совокупность веб-технологий, ориентированная на активное участие пользователей в
создании контента веб-сайтов.
Появление названия Web 2.0 принято связывать со статьёй Тима О’Рейли «What Is Web 2.0» от 30
Стр. 53 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
сентября 2005 года
Особенности web 2.0
Привлечение «коллективного разума» для наполнения сайта;
Взаимодействие между сайтами с использованием веб-сервисов;
Обновление веб-страниц без перезагрузки;
Агрегирование и синдикация информации;
Объединение различных сервисов для получения нового функционала;
Дизайн с применением стилевой разметки и акцентом на юзабилити.
Основные элементы web 2.0
Веб-сервисы
Веб-сервисы (веб-службы) — это сетевые приложения, доступные по протоколу HTTP, в качестве
протоколов взаимодействия использующие основанные на XML форматы данных (RPC, SOA и
подобные). В результате программное обеспечение может использовать веб-службы вместо того, чтобы
самостоятельно реализовывать требуемый функционал (например, проверить введенный в форме
почтовый адрес). В отличие от обычных динамических библиотек, такой подход обладает рядом
плюсов:
Веб-служба находится на серверах компании, которая её создала (рис. 1). Поэтому в любой
момент пользователю доступна самая свежая версия программы и ему не приходится заботиться
об обновлениях и вычислительных мощностях, требуемых для выполнения операции.
Инструменты для работы с HTTP и XML есть в любом современном языке программирования,
поэтому веб-службы являются платформонезависимыми.
Стр. 54 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
Рис. 1. Google Docs как пример веб-сервиса.
AJAX
Asynchronous JavaScript and XML — подход к построению пользовательских интерфейсов
веб-приложений, при котором веб-страница, не перезагружаясь, асинхронно загружает нужные
пользователю данные. Использование Ajax стало наиболее популярно после того, как Google начала
активно использовать его при создании своих сайтов, таких как Gmail и Google Maps. Часто Ajax
считают синонимом Веб 2.0, что совершенно не так. Веб 2.0 не привязан к какой-то одной технологии
или набору технологий, с тем же успехом ещё в 1999 году возможность асинхронного обновления
страницы уже предоставлял Flash 4.
Веб-синдикация
Одновременное распространение информации в том числе аудио- и видео- на различные страницы или
web-сайты, как правило, с использованием технологий RSS или Atom. Принцип заключается в
распространении заголовков материалов и ссылки на них (например, последние сообщения форумов, и
т. п.). Первоначально эта технология использовалась на новостных ресурсах и в блогах, но постепенно
сфера применения расширилась.
Mash-up
Стр. 55 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
Веб mash-up (дословный перевод — «смешение») — сервис, который полностью или частично
использует в качестве источников информации другие сервисы, предоставляя пользователю новую
функциональность для работы. В результате такой сервис может становиться также новым источником
информации для других веб mash-up сервисов. Таким образом образуется сеть зависимых друг от друга
сервисов, интегрированных друг с другом.
Например, сайт транспортной фирмы может использовать карты сервиса Google Maps для
отслеживания местонахождения перевозимого груза.
Метки (теги)
Ключевые слова, описывающие рассматриваемый объект, либо относящие его к какой-либо категории.
Это своего рода метки, которые присваиваются объекту, чтобы определить его место среди других
объектов. С понятием меток тесно связано понятие фолксономии — термина, о котором широко
заговорили именно в связи с ростом сервисов Веб 2.0, таких как Flickr, del.icio.us, и, в дальнейшем,
Wink.
Появление и быстрое распространение блогов тоже вписывается в концепцию Веб 2.0, создавая так
называемую «редактируемую Паутину» (writable web).
Возможность пометить документ ключевыми словами существует и в языке HTML (англ. keywords),
однако этот способ был полностью скомпрометирован широким его использованием в целях поискового
спама.
Социализация
Использование разработок, которые позволяют создавать сообщества пользователей.
В понятие социализация сайта можно также включить возможность индивидуальных настроек
сайта и создание личной зоны (личные файлы, изображения, видео, блоги) для пользователя,
чтобы пользователь чувствовал свою уникальность.
Поощрение, поддержка и доверие «коллективному разуму».
При формировании сообщества большое значение имеет соревновательный элемент, Репутация
или Карма, которые позволяют сообществу саморегулироваться и ставить пользователям
дополнительные цели присутствия на сайте.
Дизайн
Понятие Веб 2.0 также отразилось и в дизайне. Предпочтительными стали округлость, имитация
выпуклых поверхностей, имитация отражений на манер глянцевого пластика современных hi-end
устройств (к примеру, плееры). В целом, восприятие внешнего вида на глаз кажется более приятным.
Графика таких сайтов занимает больший объём, нежели при использовании аскетичного дизайна.
Отчасти эта тенденция связана с совпавшим по времени выходом новых версий операционных систем
использующих вышеупомянутые идеи.
Однако однообразие таких сайтов явно и в последнее время считается, графический облик
классического дизайна веб 2.0, устаревшим и не креативным. Особенно это отражается в современной
тенденции создания информативных сайтов, где главную роль играет простота, изящество, графичность
и юзабилити. В дизайне не должно быть ограничений, но веб 2.0 их прививает.
Недостатки Веб 2.0
Стр. 56 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
При использовании технологий web 2.0 вы становитесь арендатором сервиса и/или дискового
пространства у какой-то сторонней компании. Возникающая при этом зависимость формирует ряд
недостатков новых сервисов:
зависимость сайтов от решений сторонних компаний, зависимость качества работы сервиса от
качества работы многих других компаний;
слабая приспособленность нынешней инфраструктуры к выполнению сложных вычислительных
задач в браузере;
уязвимость конфиденциальных данных, хранимых на сторонних серверах, для злоумышленников
(известны случаи хищения личных данных пользователей, массовых взломов учётных записей
блогов).
Фактически сайт эпохи Веб 2.0 на первый взгляд интерактивен и дружелюбен, позволяет себя легко
настраивать. Однако сбор статистики о пользователях, их предпочтениях и интересах, личной жизни,
карьере, круге друзей могут помочь владельцу сайта манипулировать сообществом. По самым
пессимистичным прогнозам многочисленные сайты Веб 2.0 вкупе с другими современными
технологиями дают прообраз тоталитарной системы «Большого брата».
Web 3.0
Web 3.0 — это принципиально новый подход к обработке информации, представленной во Всемирной
паутине. Web 3.0 в первую очередь подразумевает под собой иной подход к обработке информации
сообществом пользователей. Если Web 1.0 предполагает веб-мастера в качестве поставщика контента, а
Web 2.0 — сообщество равноправных пользователей, генерирующих контент в рамках тематического
проекта, то Web 3.0 уже позволяет этим самым равноправным пользователям "выбирать" экспертов в
заданной области (или в нескольких областях) и "наделять его властью". Такие общепризнанные
эксперты-выдвиженцы постепенно расширяют свое влияние на сообщество, могут выступать его
модераторами, управлять сообществом при помощи дополнительных прав и расширенных
возможностей в рамках интернет-проекта. Это исключает возможность управления сообществом
некомпетентных и малозначимых его участников, что является очень важным вещью — достаточно
вспомнить «вебдванольное» равноправие на проекте Wikipedia, из-за которого ее создатель должен был
более десятка раз исправлять свою собственную (!) биографию – пользователи считали, что в ней есть
неточности и честно ее исправляли.
Также термином Web 3.0 часто называют концепцию семантической паутины (Semantic Web).
Semantic Web
Семантическая паутина (англ. Semantic Web) — часть глобальной концепции развития сети Интернет,
целью которой является реализация возможности машинной обработки информации, доступной во
Всемирной паутине. Основной акцент концепции делается на работе с метаданными, однозначно
характеризующими свойства и содержание ресурсов Всемирной паутины, вместо используемого в
настоящее время текстового анализа документов. Термин впервые введён Тимом Бернерсом-Ли в мае
2001 года в журнале «Scientific American», и называется им «следующим шагом в развитии Всемирной
паутины». В семантической паутине предполагается повсеместное использование, во-первых,
унифицированных идентификаторов ресурсов (URI), а во-вторых — онтологий и языков описания
метаданных.
Эта концепция была принята и продвигается Консорциумом W3 (Рис. 2). Для её внедрения
предполагается создание сети документов, содержащих метаданные о ресурсах Всемирной паутины и
Стр. 57 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
существующей параллельно с ними. Тогда как сами ресурсы предназначены для восприятия человеком,
метаданные используются машинами (поисковыми роботами и другими интеллектуальными агентами)
для проведения однозначных логических заключений о свойствах этих ресурсов.
Рис. 2. Стек протоколов Semantic Web
Основная идея
Семантическая паутина — это надстройка над существующей Всемирной паутиной, которая призвана
сделать размещённую в ней информацию более понятной для компьютеров. Машинная обработка
возможна в семантической паутине благодаря двум её важнейшим характеристикам:
Повсеместное использование унифицированных идентификаторов ресурсов (URI). Традиционная
схема использования таких идентификаторов в современном Интернете сводится к установке
ссылок, ведущих на объект, им адресуемый. Очевидным свойством такой ссылки является
возможность «загрузки» объекта, на который она указывает. Таким объектом может быть
веб-страница, файл произвольного содержания, фрагмент веб-страницы, а также неявное указание
на обращение к реально существующему физическому ресурсу по протоколу, отличному от HTTP
(например, ссылки mailto:). Концепция семантической паутины расширяет это понятие, включая в
него ресурсы, недоступные для скачивания. Адресуемыми с помощью URI ресурсами могут быть,
например, отдельные люди, города и другие географические сущности, художественные
артефакты и т. д. К идентификатору предъявляются несколько простых требований: он должен
быть уникальной строкой определённого формата, адресующей реально существующий объект.
Повсеместное использование онтологий и языков описания метаданных. Современные методы
автоматической обработки данных, доступных в Интернете, как правило, основаны на частотном
и лексическом анализе текстового содержимого, которое прежде всего предназначено для
восприятия человеком. В семантической паутине предлагается использовать форматы описания,
доступные для машинной обработки (например, семейство форматов, часто упоминаемое в
литературе как «Semantic Web family»: RDF, RDF Schema или RDF-S, и OWL), в свою очередь,
использующие URI для адресации описываемых и описывающих объектов, а также онтологии и
дескрипционные логики в качестве базовых математических формализмов.
Критика
Несмотря на все преимущества, предоставляемые семантической паутиной в случае её внедрения,
существуют сомнения в возможности её полной реализации.
Практическая нереализуемость
Стр. 58 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
Разные комментаторы высказывают различные причины, которые могут быть препятствием к этому,
начиная с человеческого фактора (люди склонны избегать работы по поддержке документов с
метаданными, открытыми остаются проблемы истинности метаданных, и т. д.), и заканчивая
сложностью определения онтологии верхнего уровня (корня иерархии), критической для семантической
паутины.
Дублирование информации
Необходимость описания метаданных так или иначе приводит к дублированию информации. Каждый
документ должен быть создан в двух экземплярах: размеченным для чтения людьми, а также в
машинно-ориентированном формате.
Невозможность получения коммерческой выгоды
Известно, что основное финансирование современных интернет-ресурсов (за исключением строго
некоммерческих проектов) обеспечивают рекламодатели. Главный критерий, от которого зависит
стоимость рекламного места — посещаемость сайта. Однако в случае реализации семантических
поисковых систем, которые будут сами отбирать и сразу предоставлять нужную пользователю
информацию, отпадает необходимость посещать сайт — источник материала, а значит пользователь не
увидит рекламу, и как следствие прекратится финансирование интернет-проектов.
Реализация
Языки описания
Техническую часть семантической паутины составляет семейство стандартов на языки описания,
включающее XML, XML Schema, RDF, RDF Schema, OWL, а также некоторые другие. Располагая их в
порядке повышения уровня абстракции, реализуемого тем или иным языком, получаем:
XML предоставляет синтаксис для определения структуры документа, подлежащего машинной
обработке. Синтаксис XML не несёт семантической нагрузки.
XML Schema определяет ограничения на структуру XML-документа. Стандартный
синтаксический анализатор языка XML в состоянии проверить произвольный XML-документ на
соответствие его структуры так называемой схеме документа, описанной в XML Schema.
RDF представляет собой простой способ описания экземплярных данных в формате субъектотношение-объект, в котором в качестве любого элемента этой тройки используются только
идентификаторы ресурсов. Существует стандартизованное отображение этих троек на
XML-документы предопределённой структуры (т. е. консорциумом W3 определена схема
XML-документов, содержащих RDF-описания), а также на другие форматы представления
(например, в нотацию N3).
RDF Schema описывает набор атрибутов (здесь их точнее назвать отношениями), таких, как
rdfs:Class, для определения новых типов RDF-данных. Языком поддерживается также отношение
наследования типов rdfs:subClassOf.
OWL расширяет возможности по описанию новых типов (в частности, добавлением
перечислений), а также позволяет описывать новые типы данных RDF Schema в терминах уже
существующих (например, определять тип, являющийся пересечением или объединением двух
существующих).
Логический вывод
Стр. 59 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
Форматы описания метаданных в семантической паутине предполагают проведение логического вывода
на этих метаданных, и разрабатывались с оглядкой на существующие математические формализмы в
этой области. Математическое обоснование тех или иных конструкций языка описания необходимо для
проведения заключений о свойствах программ, обрабатывающих данные в этом формате.
Особенно сильно это относится к языку OWL. Базовым формализмом для него являются
дескрипционные логики, а сам язык разбит на три вложенных подмножества (в порядке вложенности):
OWL Lite, OWL DL и OWL Full. Доказано, что логический вывод на метаданных с выразительностью
OWL Lite выполняется за полиномиальное время (другими словами, задача вывода принадлежит к
классу P). OWL DL описывает максимальное разрешимое в данный момент подмножество
дескрипционных логик, но некоторые запросы по таким данным могут требовать экспоненциального
времени выполнения. OWL Full реализует все существующие конструкторы дескрипционных логик, но
не каждый запрос в этом подмножестве языка может быть разрешён (слово «разрешён» здесь
употребляется в значении, основанном на корне «решать»).
Простая структура предикатов языка RDF, в свою очередь, позволяет использовать при его обработке
опыт из теорий логических баз данных, логики предикатов, и т. д.
Проекты
Дублинское ядро
Одним из первых серьёзных и популярных проектов, основанным на принципах семантической
паутины, стал проект «Дублинское ядро» (англ. Dublin Core), реализуемый инициативной организацией
Dublin Core Metadata Initiative (DCMI). Это открытый проект, цель которого — разработать стандарты
метаданных, которые были бы независимы от платформ и подходили бы для широкого спектра задач.
Конкретнее, DCMI занимается разработкой словарей метаданных общего назначения,
стандартизирующих описания ресурсов в формате RDF.
RSS (версий 0.90 и 1.0)
Версии 0.90 и 1.0 формата RSS основаны на RDF. Информация в нём представляется как и в RDF,
тройками субъект-отношение-объект. Необходимо отметить, что несмотря на то, что ему присущи
многие недостатки семантической паутины (дублирование информации, например), этот простейший
формат быстро стал чрезвычайно популярным за счёт узкой категоризации подмножества используемых
метаданных. Отличие RSS от RDF состоит в том, что субъектом тройки всегда является сайт-источник
RSS-файла, а в качестве отношений используются самые очевидные свойства документов, имеющие
отношение к часто обновляющимся источникам информации: дата написания, автор, постоянная
ссылка, и т. д. Другими словами, RSS — узкоспециализированное подмножество RDF.
Помимо недостатков, RSS унаследовал и все достоинства форматов из семейства семантической
паутины: гибкость RSS позволяет использовать его не только для проверки на наличие новой
информации на регулярно обновляющихся сайтах, но и для подкастов, и торренттрекеров.
Заметим, что формат RSS версии 2.0, хотя и не является форматом, основанным на RDF, позволяет
внедрение произвольного XML-содержимого, находящегося в собственных пространствах имён XML.
Это позволяет использовать RDF-описания также и в нём (используя пространство имён rdf).
FOAF
Стр. 60 из 63
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
Проект «Friend of a Friend» («Друг друга») позволяет описывать отношение знакомства с помощью RDF.
Любой его участник может идентифицировать себя уникальным образом с помощью URI (например,
mailto-адресом электронной почты, адресом блога, и т. п.), создать свой профиль, используя
предопределённые для FOAF отношения на языке RDF, и перечислить идентификаторы людей, которых
этот участник знает. Это описание может обрабатываться автоматически; на его основе можно строить
сети доверия, анализировать структуру социальных групп, и т. д.
Семантические веб-сервисы
В то время как совокупность ресурсов и их метаданных можно считать статической частью
семантической паутины, её динамическую часть представляют т. н. семантические веб-сервисы —
законченные элементы программной логики с однозначно описанной семантикой, доступные через
Интернет и пригодные для поиска, композиции и выполнения.
Технически, семантический веб-сервис отличается от обычного веб-сервиса наличием не только
описания интерфейса (обычно на языке WSDL) в терминах типов данных, передаваемых сервису,
возвращаемых значений и генерируемых ошибок, но и семантического описания всех его
характеристик. Заметим, что дублирования данных, упомянутого в числе недостатков семантической
паутины, здесь не происходит: WSDL-описания изначально были предназначены для машинной
обработки.
Потенциальная выгода от использования семантических веб-сервисов заключается в возможности
автоматического поиска (а также композиции) программными агентами подходящих сервисов для
решения поставленных задач. Тем не менее, сложность этой задачи в её общей формулировке пока
позволяет добиваться некоторых положительных результатов только в узкоспециализированных
отраслях, явным образом выигрывающих от внедрения сервисно-ориентированной архитектуры,
например в интеграции корпоративных приложений.
Вместо эпилога
Для более полного представления о том, какие перспективы несет семантический веб выделим ряд
факторов сравнения и выведем сводную таблицу, характеризующую прошлое, настоящее и будущее
Всемирной паутины (Табл.1).
Таблица 1. Сравнение технологий web 1.0, web 2.0 и web 3.0
Обобщенное
описание
Единица
представления
Значимая единица
обмена данными
Зернистость данных
Представляемые
услуги
Стр. 61 из 63
Web 1.0
Интерактивная
паутина
Web 2.0
Веб-страница
Веб-приложение
Пространство данных
Адрес страницы
(URL)
Низкая (HTMLстраница)
Поиск (возможность
ИСКАТЬ
ИНФОРМАЦИЮ,
результаты поиска не
Адрес веб-приложения
(URL)
URI ресурса, сущности,
объекта
Средняя (XML-тег)
Высокая (объекты RDF)
Сообщества (блоги в
социальных сетях)
Поиск (способ
НАХОДИТЬ
ИНФОРМАЦИЮ,
результаты поиска точны )
Программируемая паутина
Web 3.0
Паутина связанных
данных
25.05.2011 10:15
Веб-программирование. Конспект лекций
http://4stud.asoiu/web-programming/lectures.php
точны)
Фактор участия
низкий
пользователя
Фактор
удовлетворенности
низкий
пользователя от
использования сайта
Фактор ссылаемости
на данные
низкий (документы)
(обращения по
ссылкам)
Фактор
субъективности
Уровень
трансклюзивности
содержимого
Уровень соответствия
видимого
предпочитаемому
(What You See Is What
You Prefer
(WYSIWYP))
Доступность данных
(открытый доступ к
данным)
Средства
идентификации
пользователей
высокий
низкий
средний
высокий
средний
высокий
средний (документы)
высокий (документы и их
отдельные части)
средний (возможность
выбора партнеров (friend
lists) или установления
ограничений на доступ к
данным в блогах)
средний ("смешивание"
данных, управляемое кодом
приложения)
низкий (каждый может
обратиться к ресурсу
через URI)
высокий ("смешивание"
данных, управляемое
данными)
низкий
средний
высокий (настраиваемое
описание представления
ресурсов)
низкая
средняя (доступ через
бункеры данных —
серверные приложения)
высокая (прямой доступ)
слабые
средние (OpenID)
сильные (FOAF+SSL)
Модель
развертывания
системы
Централизованная
Централизованная, с
делегированием части
полномочий пользователем
(регистрация нового
пользователя автоматически
приводит к созданию среды
для него )
Распределенная, с
выделенными
централизованными
функциями
Модель данных
Логическая
(иерархическая, на
основе DOM)
Логическая (иерархическая, Концептуальная (графы
на основе XML)
RDF)
Пользовательский
интерфейс
Динамически
генерируемый
(server-side)
статичный интерфейс
(client-side)
Динамически генерируемый
(server-side), с
возможностью частичного
изменения на стороне
клиента (XSLT,
XQuery/XPath)
Стр. 62 из 63
Полностью динамический
интерфейс,
представляемый
возможностью
самоописания RDF
25.05.2011 10:15
Веб-программирование. Конспект лекций
Возможности
запросов данных
Web как средство
массовой
информации
Стр. 63 из 63
http://4stud.asoiu/web-programming/lectures.php
Полнотекстовый поиск +
поиск в графовых
Полнотекстовый
Полнотекстовый поиск
структурах с помощью
поиск
SPARQL (Structured Graph
Pattern Query Language)
Отражает мнение
Представляет мнение
Представляет мнение социальной группы,
социальной группы,
автора/издателя
состоящей из равноправных подкрепленное
авторов и комментаторов
экспертными оценками
25.05.2011 10:15
Оставляя свои контактные данные и нажимая «Попробовать в Telegram», я соглашаюсь пройти процедуру
регистрации на Платформе, принимаю условия
Пользовательского соглашения
и
Политики конфиденциальности
в целях заключения соглашения.
Пишешь реферат?
Попробуй нейросеть, напиши уникальный реферат с реальными источниками за 5 минут