Обзор интернет технологий

Категория:

Существует множество различных Веб-технологий, которые можно разбить на две большие группы: клиентские и серверные. К клиентским технологиям можно отнести HTML, CSS, JavaScript, AJAX, jQuery, а к серверным – PHP, Ruby, Perl. А для функционирования серверных технологий, используется серверное программное обеспечение, которое обеспечивает принятие и отправку HTTP  запросов от пользователей.

Первая клиентская технология это HTML (HyperText Markup Language — язык разметки гипертекста) - стандартный язык разметки документов во Всемирной паутине. Данный язык разметки документов был разработан британским учёным Тимом Бернерсом-Ли приблизительно в 1989—1991 годах в стенах Европейского совета по ядерным исследованиям в Женеве. Язык разметки создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области вёрстки. Большинство веб-страниц создаются при помощи HTML или XHTML (Extensible Hypertext Markup Language — расширяемый язык разметки гипертекста, основанный на XML), в качестве шаблонов для динамических сайтов. Язык HTML интерпретируется браузером и отображается в виде документа, в удобной для человека форме. На данный момент в разработке находится пятая версия HTML, в которую будут входить новые правила лексического разбора, добавлены новые элементы и удалены устаревшие, новые типы input-элементов, новые атрибуты и прочее. Пример структуры базового представления документа HTML представлен на рисунке ниже.

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

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

Для упрощения работы используется jQuery, являющаяся библиотекой JavaScript. Фокусирующаяся на взаимодействии JavaScript и HTML. Помогает легко получать доступ к любому элементу DOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими, предоставляет удобный API по работе с Ajax и создание визуальных эффектов. В последней версии, выпущенной 31 января 2011 года, был переписан модуль AJAX, добавлена возможность создания отложенных (deferred) объектов, метод .sub() для клонирования jQuery, большая скорость выполнения методов .children(), .prev() и .next().

Чтобы обеспечить возможность получения данных используется технология AJAX (Asynchronous Javascript and XML — асинхронный JavaScript и XML) — подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате, при обновлении данных, веб-страница не перезагружается полностью и веб-приложения становятся более быстрыми и удобными. Данная технология не самостоятельна и базируется на использовании технологии динамического обращения к серверу  и использование DHTML для динамического изменения содержания страницы.

Скриптовый язык PHP (Hypertext Preprocessor) - это язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинговых провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов. Данный скриптовый язык содержит большое количество встроенных средств для разработки веб-приложений.

Язык программирования Ruby используется для быстрого и удобного объектно-ориентированного программирования. Данный язык программирования является динамическим, рефлективным и интерпретируемым языком высокого уровня. Ruby обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, сборщиком мусора и многими другими возможностями. Ruby близок по особенностям синтаксиса к языкам Perl и Eiffel, по объектно-ориентированному подходу — к Smalltalk. Также некоторые черты языка взяты из Python, Лисп, Dylan и CLU.

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

Веб-серверы также могут иметь различные дополнительные функции, например:

  • Ведение журнала обращений пользователей к ресурсам;
  • Аутентификация и авторизация пользователей;
  • Поддержка динамически генерируемых страниц;
  • Поддержка HTTPS для защищённых соединений с клиентами.

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

  • nginx — свободный веб-сервер, разрабатываемый Игорем Сысоевым с 2002 года и пользующийся большой популярностью на крупных сайтах;
  • Apache — свободный веб-сервер, наиболее часто используемый в Unix-подобных операционных системах;
  • IIS от компании Microsoft, распространяемый с ОС семейства Windows NT.

Также имеются другие известные веб-серверы:

  • lighttpd — свободный веб-сервер;
  • Google Web Server — веб-сервер, разработанный компанией Google;
  • Resin — свободный веб-сервер приложений;
  • Cherokee — свободный веб-сервер, управляемый только через web-интерфейс.

Под тот или иной веб-сервер устанавливается интерпретатор, к примеру, PHP, СУБД, программное обеспечение для работы с почтой, а также и другие необходимые сервисы, выполняемые на стороне сервера.