11528

Разработка WEB-приложений

Лекция

Информатика, кибернетика и программирование

Разработка WEB-приложений Лекция1: Основные технологии разработки WEBприложений Изучаемые вопросы Информация о курсе Протокол HTTP Основные технологии разработки WEBприложений Информация о курсе Полный объем курса 156 часа 45 кредита...

Русский

2013-04-08

168.5 KB

32 чел.

Разработка  WEB-приложений

Лекция1: Основные технологии разработки WEB-приложений

Изучаемые вопросы

  1.  Информация о курсе
  2.  Протокол HTTP
  3.  Основные технологии разработки  WEB-приложений

  1.  Информация о курсе

Полный объем  курса   156 часа (4,5 кредита)

Аудиторных занятий   66 часов

СРС                90 часов

Лекции – 36 часов (18 лекций)

Лабораторные работы -  18 часов (9 ЛР)

РГР - 23

Модулей -2

Экзамен

  1.  Протокол HTTP

Всемирная паутина (World Wide Web) – это распределенная система, предоставляющая доступ к связанным между собой документам, расположенным на различных компьютерах, подключенных к Интернету.

Обмен  информацией в WWW  осуществляется с помощью гипертекстовых файлов. Гипертекстовый файл – это обычный текстовый файл, дополненный элементами разметки в соответствии с языком гипертекстовой разметки HTML(HyperText Markup Language). После того, как HTML-файл становится доступен веб-серверу, его начинают называть "веб-страницей". Набор веб-страниц образует веб-сайт. В гипертекст веб-страниц добавляются гиперссылки. Гиперссылки помогают пользователям Всемирной паутины легко перемещаться между ресурсами (файлами) вне зависимости от того, находятся ресурсы на локальном компьютере или на удаленном сервере. Гиперссылки в Веб основаны на технологии URL.

В целом можно заключить, что Всемирная паутина стоит на "трех китах":

  •  язык гипертекстовой разметки документов HTML (HyperText Markup Language);
  •  универсальный способ адресации ресурсов в сети URI (Universal Resource Identifier);
  •  протокол обмена гипертекстовой информацией HTTP (HyperText Transfer Protocol).

В последнее время кроме HTML используются  и  более современные технологии разметки: XHTML и XML. XML (eXtensible Markup Language) позиционируется как фундамент для других языков разметки. Для улучшения визуального восприятия Веба стала широко применяться технология CSS, которая позволяет задавать единые стили оформления для множества веб-страниц.

Популярная концепция развития сети Интернет – создание семантической паутины. Семантическая паутина – это надстройка над существующей Сетью, которая призвана сделать размещенную в ней информацию более понятной для компьютеров.

         HTTP (англ. HyperText Transfer Protocol — «протокол передачи гипертекста») — протокол прикладного уровня передачи данных (изначально — в виде гипертекстовых документов). Основой HTTP является технология «клиент-сервер», то есть предполагается существование потребителей (клиентов), которые инициируют соединение и посылают запрос, и поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом.

     Основным объектом манипуляции в HTTP является ресурс, на который указывает URI (англ. Uniform Resource Identifier) в запросе клиента. Обычно такими ресурсами являются хранящиеся на сервере файлы, но ими могут быть логические объекты или что-то абстрактное. Особенностью протокола HTTP является возможность указать в запросе и ответе способ представления одного и того же ресурса по различным параметрам: формату, кодировке, языку и т. д. Именно благодаря возможности указания способа кодирования сообщения клиент и сервер могут обмениваться двоичными данными, хотя данный протокол является текстовым.

Упрощенная схема обмена  данными между клиентом  и сервером приведена на Рис. 1.1.

Рис.1.1  Упрощенная схема обмена данными между клиентом и сервером

Каждое HTTP-сообщение состоит из трёх частей, которые передаются в указанном порядке:

Стартовая строка (англ. Starting line) — определяет тип сообщения;

Заголовки (англ. Headers) — характеризуют тело сообщения, параметры передачи и прочие сведения;

Тело сообщения (англ. Message Body) — непосредственно данные сообщения. Обязательно должно отделяться от заголовков пустой строкой.

Заголовки и тело сообщения могут отсутствовать, но стартовая строка является обязательным элементом, так как указывает на тип запроса/ответа.

HTTP – запрос

Запрос - это сообщение, посылаемое клиентом серверу.

Стартовая строка запроса выглядит так:

Метод URI  HTTP/Версия — для остальных версий.

Здесь:

Метод (англ. Method) — название запроса, одно слово заглавными буквами.

URI определяет путь к запрашиваемому документу.

Версия (англ. Version) — пара разделённых точкой арабских цифр. Например: 1.0.

Например,

GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1

Метод

В поле Метод указывается метод, который должен быть применен к ресурсу, идентифицируемому URI-Запроса. Названия методов чувствительны к регистру.

В настоящее время используются следующие методы: GET, HEAD,  PUT, POST, DELETE, LINK, UNLINK, OPTIONS, TRACE, CONNECT

Существующий список методов может быть расширен.

GET

Используется для запроса содержимого указанного ресурса. С помощью метода GET можно также начать какой-либо процесс. В этом случае в тело ответного сообщения следует включить информацию о ходе выполнения процесса.

Клиент может передавать параметры выполнения запроса в URI целевого ресурса после символа «?»:

GET /path/resource?param1=value1&param2=value2 HTTP/1.1

Кроме обычного метода GET, различают ещё условный GET и частичный GET. Условные запросы GET содержат заголовки If-Modified-Since, If-Match, If-Range и подобные. Частичные GET содержат в запросе Range. Порядок выполнения подобных запросов определён стандартами отдельно.

HEAD

Аналогичен методу GET, за исключением того, что в ответе сервера отсутствует тело. Запрос HEAD обычно применяется для извлечения метаданных, проверки наличия ресурса (валидация URL) и чтобы узнать, не изменился ли он с момента последнего обращения.

POST

Применяется для передачи пользовательских данных заданному ресурсу. Например, в блогах посетители обычно могут вводить свои комментарии к записям в HTML-форму, после чего они передаются серверу методом POST и он помещает их на страницу. При этом передаваемые данные (в примере с блогами — текст комментария) включаются в тело запроса. Аналогично с помощью метода POST обычно загружаются файлы на сервер.

PUT

Применяется для загрузки содержимого запроса на указанный в запросе URI. Если по заданному URI не существовало ресурса, то сервер создаёт его и возвращает статус 201 (Created). Если же был изменён ресурс, то сервер возвращает 200 (Ok) или 204 (No Content).

Фундаментальное различие методов POST и PUT заключается в понимании предназначений URI ресурсов. Метод POST предполагает, что по указанному URI будет производиться обработка передаваемого клиентом содержимого. Используя PUT, клиент предполагает, что загружаемое содержимое соответствует находящемуся по данному URI ресурсу.

PATCH

Аналогично PUT, но применяется только к фрагменту ресурса.

DELETE

Удаляет указанный ресурс.

TRACE

Возвращает полученный запрос так, что клиент может увидеть, какую информацию промежуточные сервера добавляют или изменяют в запросе.

LINK

Устанавливает связь указанного ресурса с другими.

UNLINK

Убирает связь указанного ресурса с другими.

CONNECT

Преобразует соединение запроса в прозрачный TCP/IP туннель, обычно чтобы содействовать установлению защищенному SSL соединению через не шифрованный прокси.

OPTIONS

Используется для определения возможностей веб-сервера или параметров соединения для конкретного ресурса. В ответ серверу следует включить заголовок Allow со списком поддерживаемых методов. Также в заголовки ответа может включаться информация о поддерживаемых расширениях.

Для того чтобы узнать возможности всего сервера, клиент должен указать в URI звёздочку — «*». Запросы «OPTIONS * HTTP/1.1» могут также применяться для проверки работоспособности сервера (аналогично «пингованию») и тестирования на предмет поддержки сервером протокола HTTP версии 1.1.

Заголовки запроса

Заголовки HTTP  — это строки в HTTP-сообщении, содержащие разделённую двоеточием пару параметр-значение. Заголовки должны отделяться от тела сообщения хотя бы одной пустой строкой.

Примеры заголовков:

Server: Apache/2.2.11 (Win32) PHP/5.3.0

Last-Modified: Sat, 16 Jan 2010 21:16:42 GMT

Content-Type: text/plain; charset=windows-1251

Content-Language: ru

В примере выше каждая строка представляет собой один заголовок. При этом то, что находится до первого двоеточия, называется именем (англ. name), а что после неё — значением (англ. value).

Все заголовки разделяются на четыре основных группы:

General Headers (русск. Основные заголовки) — должны включаться в любое сообщение клиента и сервера.

Request Headers (русск. Заголовки запроса) — используются только в запросах клиента.

Response Headers (русск. Заголовки ответа) — только для ответов от сервера.

Entity Headers (русск. Заголовки сущности) — сопровождают каждую сущность сообщения.

Именно в таком порядке рекомендуется посылать заголовки получателю.

Наиболее часто в запросах используются следующие заголовки.

Content-type

Этот заголовок  определяет тип передаваемых данных.

Пример:

Content-Type: text/html; charset=windows-1251

User-Agent

Поле заголовка User-Agent содержит информацию о пользовательском агенте, пославшем запрос. Данное поле используется для статистики, прослеживания ошибок протокола, и автоматического распознавания пользовательских агентов.

Пример:

User-Agent: Mozilla/3.0

Referer

Строка, отражающая интернет-адрес (URL) документа, содержащего ссылку, по которой пользователь нашёл данный документ.

Язык разметки HTML позволяет задавать необходимые значения заголовков HTTP внутри <HEAD> с помощью тэга <META>. При этом название заголовка указывается в атрибуте http-equiv, а значение — в content. Почти всегда выставляется значение заголовка Content-Type с указанием кодировки чтобы избежать проблем с отображением текста браузером. Так же не лишним является указание значения заголовка Content-Language:

<html>

<head>

<meta http-equiv="Content-Type" content="text/html;charset=windows-1251">

<meta http-equiv="Content-Language" content="ru">

...

HTTP ответ

Структура ответа

После получения и интерпретации запроса, сервер посылает ответ, структура котрого аналогична структуре запроса (стартовая строка, заголовки, тело ответа)  

Стартовая строка

Стартовая строка ответа состоит из версии протокола, за которой следует цифровой код статуса и ассоциированное с ним текстовое предложение. Все элементы стартовой строки разделяются пробелами.

Например,

HTTP/1.1 200 OK

Код статуса

Элемент Код статуса представляет собой 3-х цифровой целый код, идентифицирующий результат попытки интерпретации и удовлетворения запроса. Код статуса предназначен для того, чтобы его использовала машина, а следующее за ним текстовое предложение предназначено для человека.

Первая цифра Кода статуса предназначена для определения класса ответа. Последние две цифры не выполняют никакой категоризирующей роли. Существует 5 значений для первой цифры:

1xx: Информационный - Не используется, но зарезервирован для использования в будущем

2xх: Успех - Запрос был полностью получен, понят, и принят к обработке.

3xx: Перенаправление - Клиенту следует предпринять дальнейшие действия для успешного выполнения запроса. Необходимое дополнительное действие иногда может быть выполнено клиентом без взаимодействия с пользователем, но настоятельно рекомендуется, чтобы это имело место только в тех случаях, когда метод, использующийся в запросе безразличен (GET или HEAD).

4xx: Ошибка клиента - Запрос, содержащий неправильные синтаксические конструкции, не может быть успешно выполнен. Класс 4xx предназначен для описания тех случаев, когда ошибка была допущена со стороны клиента.

5xx: Ошибка Сервера - Сервер не смог дать ответ на корректно поставленный запрос. В этих случаях сервер либо знает, что он допустил ошибку, либо не способен обработать запрос. За исключением ответов на запросы HEAD, сервер посылает описание ошибочной ситуации и то, является ли это состояние временным или постоянным, в теле ответа.

Некоторые значения  Кодов статуса  и соответствующие им текстовые предложения приведены ниже.

Статус-Код =  "100";  Продолжать, Continue

                        "101"; Переключение протоколов, Switching Protocols                                 

                         "200"; OK

                         "201"; Created

               "202" ; Accepted

  "203" ; Provisional Information |

  "204" ; No Content |

  "300" ; Multiple Choices |

  "301" ; Moved Permanently |

  "302" ; Moved Temporarily |

  "303" ; Method |

  "304" ; Not Modified |

  "400" ; Bad Request |

  "401" ; Unauthorized |

  "402" ; Payment Required |

  "403" ; Forbidden |

  "404" ; Not Found |

  "405" ; Method Not Allowed |

  "406" ; None Acceptable |

  "407" ; Proxy Authentication Required |

  "408" ; Request Timeout |

  "409" ; Conflict |

  "410" ; Gone |

  "500" ; Internal Server Error |

  "501" ; Not Implemented |

  "502" ; Bad Gateway |

  "503" ; Service Unavailable |

  "504" ; Gateway Timeout |

  Код-Расширения

Заголовки ответа

Поля заголовка ответа позволяют серверу передать дополнительную информацию об ответе, которая не может быть внесена в Стартовую строку. Эти поля заголовков не предназначены для передачи информации о содержании ответа, передаваемого в ответ на запрос, но там может быть информация собственно о сервере.

Наиболее часто в ответах используются следующие заголовки.

Date

Указывает браузеру дату и время отправки документа.

Пример:

Date: Mon, 10 Jan 2011 11:22:23 GMT

Server

Указывает браузеру тип сервера и другую информацию  о  серверном программном обеспечении

Пример:

Server:  Apache/1.3.9 (Unix)  PHP/5.0

Location

Этот заголовок определяет, что браузер должен немедленно перейти по указаному адресу, не дожидаясь тела документа

Пример:

Location: http://www.myhtml/index.html

  1.  Основные технологии разработки WEB-приложений

  1.  WEB-программирование

Веб-программирование (Веб-разработка) – это бурно развивающийся раздел программирования, ориентированный на разработку динамических Интернет-приложений [37].

Языки веб-программирования делятся на две группы: клиентские и серверные.

Клиентские языки обрабатываются на стороне пользователя (в основном в браузере). Соответственно обработка скрипта зависит от браузера пользователя, и пользователь имеет полномочия настроить свой браузер так, чтобы тот вообще игнорировал скрипты. При этом если браузер старый, он может не поддерживать тот или иной язык или версию языка, на которую опирался разработчик. С современными браузерами таких проблем возникать не должно, к тому же языки программирования не так уж часто кардинально обновляются (раз в несколько лет) и лучшие из них давно известны. Код клиентского скрипта может посмотреть каждый, выбрав в меню своего браузера "Исходный код страницы".

Преимущество клиентского языка заключается в том, что обработка скриптов на таком языке может выполняться без отправки документа на сервер. Программа сразу проверит правильное заполнение формы перед отправкой, и, если необходимо, выведет ошибку. Отсюда же вытекает и то ограничение, что с помощью клиентского языка программирования ничто не может быть записано на сервер.

Самым распространенным из клиентских языков является JavaScript, разработчиками которого является компания Netscape совместно с компанией Sun Microsystems. Еще один популярный язык – это VBScript. Помимо этого в последнее время набрали популярность такие технологии как AJAX, Adobe Flash, Microsoft Silverlight и др.

Серверные языки программирования открывают перед программистом большие просторы в деятельности.

Когда пользователь делает запрос на какую-либо страницу (переходит на нее по ссылке, или вводит адрес в адресной строке своего браузера), то вызванная страница сначала обрабатывается на сервере (то есть выполняются все программы, связанные со страницей) и только потом возвращается к посетителю по сети в виде файла. Этот файл может иметь расширения: HTML, PHP, ASP, Perl, SSI, XML, DHTML, XHTML.

Работа программ уже полностью зависима от сервера, на котором расположен сайт, и от того, какая версия того или иного языка поддерживается.

Важной стороной работы серверных языков является Система управления базами данных (СУБД). Это, по сути, тоже сервер, на котором в определенном пользователем порядке хранится разная необходимая информация, которая может быть вызвана в любой момент. Популярными среди систем управления базами данных являются:

  •  IBM DB2;
  •  Microsoft SQL Server;
  •  MySQL;
  •  Oracle;
  •  PostgreSQL;
  •  SQLite.

Рассмотрим подробнее наиболее известные языки и технологии.

  1.   HTML

HTML (HyperText Markup Language – "язык разметки гипертекста") – стандартный язык разметки документов во Всемирной паутине [38]. Большинство веб-страниц создаются при помощи языка HTML. Язык HTML интерпретируется браузером и отображается в виде документа, в удобной для человека форме. HTML является приложением SGML (стандартного обобщенного языка разметки) и соответствует международному стандарту ISO 8879.

Язык HTML был разработан британским ученым Тимом Бернерсом-Ли приблизительно в 1991-1992 годах в стенах Европейского совета по ядерным исследованиям в Женеве (CERN). HTML создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области верстки. С помощью HTML можно легко создать относительно простой, но красиво оформленный документ. Помимо упрощения структуры документа, в HTML внесена поддержка гипертекста. Мультимедийные возможности были добавлены позже. Изначально язык HTML был задуман и создан как средство структурирования и форматирования документов без их привязки к средствам воспроизведения (отображения). Текстовые документы, содержащие код на языке HTML (такие документы традиционно имеют расширение .html или .htm), обрабатываются специальными приложениями, которые отображают документ в его форматированном виде. Такие приложения, называемые "браузерами" или "Интернет-обозревателями", обычно предоставляют пользователю удобный интерфейс для запроса веб-страниц, их просмотра (и вывода на иные внешние устройства) и, при необходимости, отправки введенных пользователем данных на сервер.

Наиболее популярными на сегодняшний день браузерами являются (по данным на январь 2010 г.) [39]:

  •  Internet Explorer – 62,12%;
  •  Mozilla Firefox – 24,43%;
  •  Google Chrome – 5,22%;
  •  Safari – 4,53%;
  •  Opera – 2,38%.
  •  

Спецификация HTML имеет несколько версий:

  •  RFC 1866 – HTML 2.0, одобренный как стандарт 22 сентября 1995 года;
  •  HTML 3.2 [36] – 14 января 1997 года;
  •  HTML 4.0 [37] – 18 декабря 1997 года;
  •  HTML 4.01 [38] – 24 декабря 1999 года;
  •  ISO/IEC 15445:2000 [39] (так называемый ISO HTML, основан на HTML 4.01 Strict)         – 15 мая 2000 года.

  1.   XHTML

XHTML (Extensible Hypertext Markup Language – расширяемый язык разметки гипертекста) – язык разметки веб-страниц, по возможностям сопоставимый с HTML, созданный на базе XML [40]. Как и HTML, XHTML соответствует спецификации SGML, поскольку XML является ее подмножеством.

Стандарт XHTML построен не как самодостаточное описание языка, а как перечень различий между HTML 4.01 и XHTML [41]:

  •  Все элементы должны быть закрыты. Теги, которые не имеют закрывающего тега (например, <img> или <br>) должны иметь на конце / (например, <br />).
  •  Булевы атрибуты записываются в развернутой форме. Например, следует писать <option selected="selected"> или <td nowrap="nowrap">.
  •  Имена тегов и атрибутов должны быть записаны строчными буквами (например, <img alt="" /> вместо <IMG ALT="" />).
  •  XHTML гораздо строже относится к ошибкам в коде; < и & везде, даже в URL, должны замещаться &lt; и &amp; соответственно. По рекомендации W3C браузеры, встретив ошибку в XHTML, должны сообщить о ней и не обрабатывать документ.
  •  Кодировкой по умолчанию является UTF-8 (в отличие от HTML, где кодировкой по умолчанию является ISO 8859-1).

Для XHTML страниц рекомендуется задавать MIME-тип – application/xhtml+xml, но это не является обязательным, более того – браузер Internet Explorer 8 и младшие версии, не смогут обрабатывать страницу, поэтому с XHTML 1.0 традиционно используется MIME-тип для HTML – text/html.

Версии XHTML:

  •  XHTML 1.0 Переходный (Transitional): предназначен для легкой миграции из HTML 3.2 и для тех, кто использует инлайн-фрэймы.
  •  XHTML 1.0 Строгий (Strict): полностью отделяет содержание документа от оформления (задается только через CSS), многие атрибуты (такие как, например, bgcolor и align) более не поддерживаются, их поведение можно задавать только через таблицу стилей.
  •  XHTML 1.0 Фрэймовый (Frameset): используется, если необходимо разделить окно браузера на несколько фрэймов.
  •  XHTML 1.1 Модульный (Module-based): авторы могут импортировать дополнительные свойства в их разметку.
  •  XHTML Основной (Basic): специальная облегченная версия XHTML для устройств, которые не могут использовать полный набор элементов XHTML – в основном используется в миниатюрных устройствах, таких как мобильные телефоны. Подразумевается, что он заменит WML и C-HTML.
  •  XHTML мобильного профиля (Mobile Profile): основанный на XHTML Basic, добавляет специфические элементы для мобильных телефонов.
  •  XHTML 2.0. Пока в разработке. Синтаксис еще больше приближен к синтаксису XML. Также является модульным языком.

  1.   CSS

CSS (Cascading Style Sheets – каскадные таблицы стилей) – технология описания внешнего вида документа, написанного языком разметки [42]. Преимущественно используется как средство оформления веб-страниц в формате HTML и XHTML, но может применяться с любыми видами документов в формате XML, включая SVG и XUL.

CSS используется создателями веб-страниц для задания цветов, шрифтов, расположения и других аспектов представления документа. Основной целью разработки CSS являлось разделение содержимого (написанного на HTML или другом языке разметки) и представления документа (написанного на CSS) [43]. Это разделение может увеличить доступность документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом. Кроме того, CSS позволяет представлять один и тот же документ в различных стилях или методах вывода, таких как экранное представление, печать, чтение голосом (специальным голосовым браузером или программой чтения с экрана) и др.

Преимущества применения CSS [42, 43]:

  •  несколько дизайнов страницы для разных устройств просмотра;
  •  уменьшение времени загрузки страниц сайта за счет переноса правил представления данных в отдельный CSS-файл;
  •  простота последующего изменения дизайна;
  •  дополнительные возможности оформления, например, с помощью CSS-верстки можно сделать блок текста, который остальной текст будет обтекать или сделать так, чтобы меню было всегда видно при прокрутке страницы.

Недостатки применения CSS [42, 43]:

  •  различное отображение верстки в различных браузерах (особенно устаревших), которые по-разному интерпретируют одни и те же данные CSS;
  •  часто встречающаяся необходимость на практике исправлять не только один CSS-файл, но и теги HTML и серверный код, которые сложным и ненаглядным способом связаны с селекторами CSS.

  1.   XML

XML (eXtensible Markup Language – расширяемый язык разметки) – рекомендованный Консорциумом Всемирной паутины язык разметки, фактически представляющий собой свод общих синтаксических правил [46]. XML – текстовый формат, предназначенный для хранения структурированных данных (взамен существующих файлов баз данных), для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML), иногда называемых словарями. XML является упрощенным подмножеством языка SGML. Годом рождения XML можно считать 1996 год, в конце которого появился черновой вариант спецификации языка, или 1998, когда эта спецификация была утверждена.

Целью создания XML было обеспечение совместимости при передаче структурированных данных между разными системами обработки информации, особенно при передаче таких данных через Интернет. Словари, основанные на XML (например, RDF, RSS, MathML, XHTML, SVG), сами по себе формально описаны, что позволяет программно изменять и проверять документы на основе этих словарей, не зная их семантики, то есть, не зная смыслового значения элементов. Важной особенностью XML также является применение так называемых пространств имен (namespace).

К достоинствам использования XML можно отнести [46, 47]:

  •  XML – язык разметки, позволяющий отобразить двоичные данные в текст, читаемый человеком и анализируемый компьютером;
  •  XML поддерживает Юникод;
  •  в формате XML могут быть описаны такие структуры данных как записи, списки и деревья;
  •  XML – это самодокументируемый формат, который описывает структуру и имена полей так же как и значения полей;
  •  XML имеет строго определенный синтаксис и требования к анализу, что позволяет ему оставаться простым, эффективным и непротиворечивым;
  •  XML – формат, основанный на международных стандартах;
  •  Иерархическая структура XML подходит для описания практически любых типов документов, кроме аудио и видео мультимедийных потоков, растровых изображений, сетевых структур данных и двоичных данных;
  •  XML представляет собой простой текст, свободный от лицензирования и каких-либо ограничений;
  •  XML не зависит от платформы;
  •  XML является подмножеством SGML;
  •  уже накоплен большой опыт работы с языком и созданы специализированные приложения;
  •  XML не накладывает требований на расположение символов в строке;
  •  в отличие от бинарных форматов, XML содержит метаданные об именах, типах и классах описываемых объектов, по которым приложение может обработать документ неизвестной;
  •  XML имеет реализации парсеров для всех современных языков программирования;
  •  XML поддерживается на низком аппаратном, микропрограммном и программном уровнях в современных аппаратных решениях.

К недостаткам XML можно отнести [46, 47, 48]:

  •  синтаксис XML избыточен:
    •  размер XML документа существенно больше бинарного представления тех же данных;
    •  избыточность XML может повлиять на эффективность приложения (возрастает стоимость хранения, обработки и передачи данных);
    •  для большого количества задач не нужна вся мощь синтаксиса XML и можно использовать значительно более простые решения;
  •  неоднозначность моделирования, т.е. нет общепринятой методологии для моделирования данных в XML;
  •  XML не содержит встроенной в язык поддержки типов данных;
  •  иерархическая модель данных, предлагаемая XML, ограничена по сравнению с реляционной моделью и объектно-ориентированными графами и сетевой моделью данных;
  •  пространства имен XML сложно использовать и их сложно реализовывать в XML-парсерах.

Наиболее распространены три способа преобразования XML-документа в отображаемый пользователю вид:

  1.  применение стилей CSS;
  2.  применение преобразования XSLT;
  3.  написание на каком-либо языке программирования обработчика XML-документа.

Без использования CSS или XSL XML-документ отображается как простой текст в большинстве Веб-браузеров. Некоторые браузеры, такие как Internet Explorer, Mozilla и Mozilla Firefox отображают структуру документа в виде дерева, позволяя сворачивать и разворачивать узлы с помощью нажатий клавиши мыши.

  1.   JavaScript

Объектно-ориентированный скриптовый язык программирования JavaScript (первоначально назван LiveScript его создателем, Бренданом Ваше, и развернут в составе браузера Netscape Navigator) был впервые представлены публике в 1995 году [49].

JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.

Структурно JavaScript можно представить в виде объединения трех четко различимых друг от друга частей:

  •  ядро (ECMAScript);
  •  объектная модель браузера (Browser Object Model или BOM);
  •  объектная модель документа (Document Object Model или DOM).

Если рассматривать JavaScript в отличных от браузера окружениях, то объектная модель браузера и объектная модель документа могут не поддерживаться. Объектную модель документа иногда рассматривают как отдельную от JavaScript сущность, что согласуется с определением DOM как независимого от языка интерфейса документа.

Для добавления JavaScript-кода на страницу, можно использовать теги <script></script>.

Область применения JavaScript очень широка:

  •  в клиентской части веб-приложений;
  •  в AJAX;
  •  в технологии Comet;
  •  в браузерных операционных системах;
  •  для создания небольших программ, размещаемых в закладки браузера (Букмарклеты);
  •  приложения, написанные на JavaScript, могут исполняться на серверах, использующих Java 6 и более поздних версий, что используется для построения серверных приложений, позволяющих обрабатывать JavaScript на стороне сервера;
  •  в качестве языка разработки мобильных приложений (на платформе Mojo SDK в Palm webOS);
  •  для реализации виджетов, так и для реализации движков виджетов (Apple_Dashboard, Microsoft Gadgets, Google Desktop Gadgets, Klipfolio Dashboard);
  •  для написания прикладного ПО (57 % исходного кода Mozilla Firefox написано на JavaScript);
  •  в качестве скриптового языка доступа к объектам приложений;
  •  в офисных приложениях для автоматизации рутинных действий, написания макросов, организации доступа со стороны веб-служб;
  •  в Excel Services 2010 добавились два новых интерфейса программирования приложений: REST API и JavaScript Object Model (JSOM).

Для обеспечения высокого уровня абстракции и достижения приемлемой степени кросс-браузерности при разработке веб-приложений используются библиотеки JavaScript. Они представляют собой набор многократно используемых объектов и функций. Среди известных JavaScript библиотек можно отметить Adobe life, Dojo Toolkit, Extjs, jQuery, Mootools, Prototype, Qooxdoo.

На сегодняшний день поддержку JavaScript обеспечивают современные версии всех наиболее часто используемых браузеров.

  1.  PHP

PHP (PHP: Hypertext Preprocessor – "PHP: препроцессор гипертекста", Personal Home Page Tools – "Инструменты для создания персональных веб-страниц") – скриптовый язык программирования общего назначения, интенсивно применяющийся для разработки веб-приложений [50]. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.

Язык и его интерпретатор разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект не является свободным и распространяется под собственной лицензией.

В области программирования для Интернета PHP – один из популярнейших скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений.

В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу Tiobe, базирующемся на данных поисковых систем, в декабре 2009 года PHP находится на 3 месте среди языков программирования (уступая Java и C), поднявшись за год на две позиции [51]. К крупнейшим сайтам, использующим PHP, относятся Facebook (который, однако, использует транслятор кода HipHop с PHP на C++ с целью оптимизации), ВКонтакте, Wikipedia.

В настоящий момент существует единственная реализация PHP, ни одна сторонняя компания не поддерживает исполняемых модулей, отличных от официальной сборки. Такое положение вещей, с одной стороны, позволяет быстро внедрять и распространять нововведения среди сообщества разработчиков, с другой стороны, разрабатывать язык программирования в условиях отсутствия стандарта, так как единая реализация обеспечивает его по факту. В таких условиях большое значение приобретает версия интерпретатора, определяющая текущую функциональность (обратная совместимость между версиями интерпретатора не соблюдается строго).

  1.  Perl

Perl – высокоуровневый интерпретируемый динамический язык программирования общего назначения, созданный в 1987 г. Ларри Уоллом, лингвистом по образованию [52]. Название языка представляет собой аббревиатуру, которая расшифровывается как Practical Extraction and Report Language "практический язык для извлечения данных и составления отчетов".

Согласно Ларри Уоллу, Perl имеет два девиза. Первый – "There's more than one way to do it" ("Есть больше одного способа сделать это", также известный как TMTOWTDI); второй – "Easy things should be easy and hard things should be possible" ("Простые вещи должны быть простыми, а сложные вещи – возможными").

Основной особенностью языка считаются его богатые возможности для работы с текстом, в том числе реализованные при помощи регулярных выражений. Перл унаследовал много свойств от языков С, shell script, awk.

Perl также знаменит огромной коллекцией дополнительных модулей CPAN [53].

  1.  AJAX

AJAX (Asynchronous Javascript and XML – "асинхронный JavaScript и XML") – подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в "фоновом" обмене данными браузера с веб-сервером [54]. В результате, при обновлении данных веб-страница не перезагружается полностью и веб-приложения становятся более быстрыми и удобными.

AJAX – не самостоятельная технология, а концепция использования нескольких смежных технологий. AJAX базируется на двух основных принципах:

  •  использование технологии динамического обращения к серверу "на лету", без перезагрузки всей страницы полностью, например:
    •  с использованием XMLHttpRequest (основной объект);
    •  через динамическое создание дочерних фреймов;
    •  через динамическое создание тега <script>.
  •  использование DHTML для динамического изменения содержания страницы;

В качестве формата передачи данных обычно используются JSON или XML.

К преимуществам AJAX можно отнести:

  •  использование AJAX позволяет значительно сократить трафик при работе с веб-приложением;
  •  AJAX позволяет несколько снизить нагрузку на сервер;
  •  ускорение реакции интерфейса.

К недостаткам AJAX можно отнести:

  •  отсутствие интеграции со стандартными инструментами браузера;
  •  динамически загружаемое содержимое обычно недоступно поисковикам;
  •  старые методы учета статистики сайтов становятся неактуальными.

  1.  Adobe Flash

Adobe Flash (ранее известная как Macromedia Flash) – мультимедийная платформа, используемая для создания векторной анимации и интерактивных приложений, а также для интеграции видеороликов в веб-страницы [56].

Adobe Flash позволяет работать с векторной, растровой и ограниченно с трехмерной графикой, а также поддерживает двунаправленную потоковую трансляцию аудио и видео.

В основе Flash лежит векторный морфинг, то есть плавное "перетекание" одного ключевого кадра в другой. Это позволяет делать сложные мультипликационные сцены, задавая лишь несколько ключевых кадров для каждого персонажа.

Flash использует язык программирования ActionScript, основанный на ECMAScript.

В качестве основного средства разработки используется пакет Adobe Flash Professional (последняя версия Adobe Flash CS4).

Стандартным расширением для скомпилированных Flash-файлов является SWF (Shockwave Flash или Small Web Format). Видеоролики в формате Flash представляют собой файлы с расширением FLV (при этом Flash в данном случае используется только как контейнер для видеозаписи).

Flash-контент воспроизводится с помощью целого ряда программных средств, но доминирующее положение на рынке занимает официальный Adobe Flash Player, распространяемый в качестве бесплатного плагина для большинства современных браузеров.

Основной недостаток Flash-приложений – чрезмерная требовательность к ресурсам процессора. Недостаточная мощность компьютера может повлиять на производительность операционной системы в целом, либо привести к искажению результатов работы Flash-приложения, связанных с отображением анимации или подсчетом времени.

Другой важный недостаток заключается в том, что не всегда есть возможность запустить Flash-приложение, либо она связана с некоторыми трудностями (например, необходимо установить плагин или обновить его до последней версии).

Также использование Flash для размещения текстовой информации препятствует ее индексированию поисковыми системами. Однако существует множество способов решить эту проблему.

  1.  Silverlight

Microsoft Silverlight – это мультимедийная технология схожая по решаемым задачам с Adobe Flash. Также Microsoft Silverlight – это плагин для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику и аудио-видео ролики, что характерно для RIA (Rich Internet application) [57].

Silverlight предоставляет графическую систему, схожую с Windows Presentation Foundation, и объединяет мультимедиа, графику, анимацию и интерактивность в одной программной платформе. Он был разработан, чтобы работать с XAML и с языками Microsoft .NET. XAML используется для разметки страниц, использующих векторную графику и анимацию. Текст, содержащийся в Silverlight приложениях, доступен для поисковых систем, так как он не компилируется, а доступен в виде XAML. Silverlight также можно использовать для того, чтобы создавать виджеты для Windows Sidebar в Windows Vista.

Silverlight поддерживает воспроизведение WMV, WMA и MP3 для всех поддерживаемых браузеров, не требуя при этом дополнительных компонентов, таких как Windows Media Player.

Silverlight позволяет динамически загружать XML и использовать DOM для взаимодействия с ним так же, как это делается в Ajax. Silverlight содержит объект Downloader, благодаря которому можно скачивать скрипты, медиа файлы и т. д., если это необходимо приложению. Начиная с версии 2.0, логика программы может быть описана в любом из языков .NET, включая динамические языки программирования, такие как Iron Ruby и Iron Python, которые в свою очередь исполняются в DLR (Dynamic Library Runtime) , а не CLR (Common Language Runtime).

  1.  ASP.NET

ASP.NET – технология создания веб-приложений и веб-сервисов от компании Microsoft [58]. Она является составной частью платформы Microsoft .NET и развитием более старой технологии Microsoft ASP.

Хотя ASP.NET берет свое название от старой технологии Microsoft ASP, она значительно от нее отличается. Microsoft полностью перестроила ASP.NET, основываясь на Common Language Runtime (CLR), который является основой всех приложений Microsoft .NET. Разработчики могут писать код для ASP.NET, используя практически любые языки программирования, в том числе, и входящие в комплект .NET Framework (C#, Visual Basic.NET, и JScript .NET). ASP.NET имеет преимущество в скорости по сравнению со скриптовыми технологиями, так как при первом обращении код компилируется и помещается в специальный кэш, и впоследствии только исполняется, не требуя затрат времени на парсинг, оптимизацию, и т. д.

Вместе с тем следует учитывать, что указанное преимущество не всегда может быть реализовано. Это связано с тем, что на скорость работы реального проекта влияют множество факторов. В первую очередь это квалификация руководителей разработки и исполнителей: медленные алгоритмы легко сводят на нет незначительное преимущество скомпилированного кода перед интерпретацией серверных скриптов

Краткие итоги

Интернет – глобальная телекоммуникационная сеть информационных и вычислительных

ресурсов. В течение всего пяти лет Интернет достиг аудитории свыше 50-ти миллионов пользователей.

Различают логическую и физическую модели Интернета. Под логической прежде всего понимают Всемирную паутину (World Wide Web), а под физической – компьютеры, серверы и средства передачи данных между ними.

Чтобы различные компьютеры сети могли взаимодействовать, они должны использовать один и тот же протокол. Систему протоколов Интернет называют "стеком протоколов TCP/IP".

Всемирная паутина – распределенная система, предоставляющая доступ к связанным между собой документам, расположенным на различных компьютерах, подключенных к Интернету.

Всемирная паутина стоит на "трех китах":

  •  язык гипертекстовой разметки документов HTML (HyperText Markup Language);
  •  универсальный способ адресации ресурсов в сети URL (Universal Resource Locator);
  •  протокол обмена гипертекстовой информацией HTTP (HyperText Transfer Protocol).

Концепции развития Всемирной паутины можно условно разделить на Веб 1.0, Веб 2.0, Веб 3.0.

Веб-программирование – это раздел программирования, ориентированный на разработку динамических Интернет-приложений.

Языки веб-программирования делятся на две группы: клиентские и серверные.

Клиентские языки обрабатываются на стороне пользователя (в основном в браузере).

Серверные языки программирования обрабатываются на стороне сервера.

Важной стороной работы серверных языков является Система управления базами данных (СУБД).

HTML – стандартный язык разметки документов во Всемирной паутин.

XHTML – язык разметки веб-страниц, по возможностям сопоставимый с HTML, созданный на базе XML.

CSS – технология описания внешнего вида документа, написанного языком разметки.

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

JavaScript – это объектно-ориентированный скриптовый язык программирования.

PHP – скриптовый язык программирования общего назначения, интенсивно применяющийся для разработки веб-приложений.

Perl – высокоуровневый интерпретируемый динамический язык программирования общего назначения.

AJAX – подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в "фоновом" обмене данными браузера с веб-сервером.

Adobe Flash и Microsoft Silverlight – мультимедийные платформы, используемые для создания RIA-приложений, а также для интеграции видеороликов в веб-страницы.

ASP.NET – технология создания веб-приложений и веб-сервисов от компании Microsoft.


СЕРВЕР

WEB-сервер

TCP

IP

Физический уровень

ЛИЕНТ

Браузер

TCP

IP

Физический уровень


 

А также другие работы, которые могут Вас заинтересовать

25760. Законы пластической деформации 94 KB
  Если деформация, вызванная внешними силами, исчезает при прекращении действия внешних сил и твердое тело полностью восстанавливает свои исходные форму и размеры, то такую деформацию называют упругой. Если же при прекращении действия внешних сил твердое тело не полностью восстанавливает свои исходные форму и размеры
25761. Автоматизация бухгалтерского учета «1С: Бухгалтерия» 31 KB
  1С: Бухгалтерия универсальная программа массового назначения для автоматизации бухгалтерского учета. Программа позволяет автоматизировать ведение всех разделов бухгалтерского учета: операции по банку и кассе основные средства и нематериальные активы материалы ит. В 1С: Бухгалтерии предусмотрен как ручной ввод бухгалтерских операций так и работа от документа с автоматическим формированием проводок по различным разделам учета.
25762. Анализ эффективности капитальных вложений 28.5 KB
  Для анализа эффективности капитальных вложений используют следующие методы: 1. Метод расчета чистого приведенного эффекта. Метод расчета индекса рентабельности инвестиции. Метод расчета нормы рентабельности инвестиций.
25763. Анализ деловой активности 23.5 KB
  Качественными критериями являются: широта рынков сбыта продукции; наличие продукции поставляемой на экспорт; репутация предприятия. уровень эффективности использования ресурсов предприятия. Хозяйственная деятельность предприятия может быть охарактеризована различными показателями основными из которых являются: объем реализации продукции работ и услуг прибыль величина активов предприятия. Эта зависимость означает что экономический потенциал предприятия возрастает по сравнению с увеличением экономического потенциала объем реализации...
25764. Анализ использования оборотных средств 28 KB
  При анализе состояния предприятия большое внимание уделяется анализу интенсивности использования оборотных средств так как именно от скорости превращения их в денежную наличность зависит ликвидность предприятия. Эффективность использования оборотных средств может характеризоваться системой показателей: коэффициент опережения темпов роста объемов продукции работ и услуг над темпами роста остатков оборотных средств; увеличение реализации продукции работ и услуг на 1 рубль оборотных средств; относительной экономией или дополнительным...
25765. Анализ ликвидности бухгалтерского баланса 28 KB
  Активы группируют по степени их ликвидности и располагают в порядке убывания ликвидности. В зависимости от степени ликвидности активы предприятия разделяются на следующие группы: А1наиболее ликвидные активы это все статьи денежных средств и краткосрочные финансовые вложения ценные бумаги. А2 быстро реализуемые активы это дебиторская задолженность платежи по которой ожидаются в течение 12 месяцев после отчетной даты. А3 медленно реализуемые активы это запасы за минусом статьи Расходы будущих периодов налог на добавленную...
25766. Анализ обеспеченности материальными ресурсами и эффективности их использования 30.5 KB
  Анализ материальных ресурсов включает: оценку потребности в материальных ресурсах; анализ качества материальнотехнического снабжения; анализ эффективности использования материальных ресурсов. Потребность в материальных ресурсах определяется в разрезе их видов на нужды основной и не основной деятельности предприятия и на запасы необходимые для нормального функционирования на конец периода по нормам и нормативам. Потребность в материальных ресурсах определяется в трех оценках: 1 в натуральных единицах измерения для установления...
25767. Анализ обеспеченности предприятия основными средствами и эффективности их использования 37.5 KB
  Более полное и рациональное использование основных фондов предприятия способствует росту производительности труда повышению фондоотдачи увеличению выпуска продукции снижению ее себестоимости экономии капитальных вложений. При анализе обеспеченности предприятия основными средствами необходимо изучить достаточно ли у предприятия основных фондов каково их наличие динамика состав структура техническое состояние. Обобщающую оценку движения основных фондов дают коэффициенты обновления выбытия прироста и воспроизводства которые также...
25768. Анализ отчета о движении денежных средств 29 KB
  Отчет о движении денежных средств – это динамический отчет который методами балансовых обобщений определенных хозяйственных операций отчетного периода объясняет в существенных аспектах поступление и выбытие реальных финансовых средств. Данные отчета о движении денежных средств в сочетании с показателями других форм отчетности: 1.показывают способность организации к генерированию денежных средств в результате совершения хозяйственных операций и тем самым представляют уровень кредитоспособности организации; 4.