- •1. Web-приложение. Механизмы cgi и FastCgi.
- •2. Web-приложение. Lamp-стек.
- •Установка на Ubuntu
- •Особенности и достоинства ос Линукс
- •3. Web-приложение. Шаблон проектирования «Модель-Представление-Контроллер».
- •4. Web-приложение. Шаблонизатор.
- •Достоинства:
- •О достоинствах
- •5. Web-приложение. Реляционные базы данных.
- •6. Web-приложение. NoSql.
- •7. Web-приложение. Возможности JavaScript.
- •8. Web-приложение. Среда исполнения. Web-сервер установка и настройка.
- •Среда исполнения
- •9. Развитие Web-технологий. Web 1.0, Web 2.0.
- •10. Развитие Web-технологий. Web 3.0, cемантическая паутина.
- •11. Развитие Web-технологий. Web-сервисы.
- •Использование rest для построения Web-сервисов.
- •12. Протокол http. Структура гипертекстового документа. Основные стандарты.
- •Структура гипертекстового документа.
- •Синтаксис
- •Параметры
- •13. Протокол http. Формы и обработка пользовательских данных.
- •14. Протокол http. Объектная модель документа (dom).
- •15. Протокол http. Пользовательские сеансы.
- •16. Протокол http. Технология ajax.
- •17. Протокол http. Структура сообщений. Заголовки. Коды состояния.
- •18. Облачные технологии. IaaS, PaaS, SaaS.
- •19. Облачные технологии. Google App Engine.
- •Ограничения
- •20. Облачные технологии. Google App Engine. Хранение данных.
1. Web-приложение. Механизмы cgi и FastCgi.
CGI - Commom Gateway Interface это интерфейс, позволяющий веб-серверу по запросу браузера запускать на себе какие-либо программы и результат их работы отдавать браузеру. Спецификация CGI была разработана в Центре Суперкомпьютерных Приложений Университета штата Иллинойс (NCSA). Работы над ней велись параллельно с Mosaic. С точки зрения общей архитектуры программного обеспечения World Wide Web, CGI определила все дальнейшее развитие системных средств. До появления этой спецификации все новые возможности реализовывались в виде модулей, включенных в библиотеку общих кодов ЦЕРН. Разработчики серверов должны были использовать эти коды для реализации программ или заменять их своими собственными аналогами. Это означало, что после компиляции сервера добавить в него новые возможности будет невозможно. CGI в корне изменила эту практику.
Главное назначение Common Gateway Interface - обеспечение единообразного потока данных между сервером и прикладной программой, которая запускается из-под сервера. CGI определяет протокол обмена данными между сервером и программой. Для тех, кто знаком с протоколом HTTP, может показаться, что CGI - это просто подмножество этого протокола. Однако это не так. Во-первых, CGI определяет порядок взаимодействия сервера с прикладной программой, в котором сервер выступает инициирующей стороной, во-вторых, CGI определяет механизм реального обмена данными и управляющими командами в этом взаимодействии, что не определено в HTTP. Естественно, что такие понятия, как метод доступа, переменные заголовка, MIME, типы данных, заимствованы из HTTP и делают спецификацию прозрачной для тех, кто знаком с самим протоколом.
При описании различных программ, которые вызываются сервером HTTP и реализованы в стандарте CGI, используют следующую терминологию:
CGI-скрипт - программа, написанная в соответствии со спецификацией Common Gateway Interface. CGI-скрипты могут быть написаны на любом языке программирования (C, C++, PASCAL, FORTRAN и т.п.) или командном языке (shell, cshell, командный язык MS-DOS, Perl и т.п.). Скрипт может быть написан даже на языке редактора EMAC в системах Unix.
Шлюз - это CGI-скрипт, который используется для обмена данными с другими информационными ресурсами Internet или приложениями-демонами. Обычная CGI-программа запускается сервером HTTP для выполнения некоторой работы, возвращает результаты серверу и завершает свое выполнение. Шлюз выполняется точно также, только, фактически, он инициирует взаимодействие в качестве клиента с третьей программой. Если эта третья программа является сервисом Internet, например, сервер Gopher, то шлюз становится клиентом Gopher, который посылает запрос по порту Gopher, а после получения ответа пересылает его серверу HTTP.
Интерфейс FastCGI— клиент-серверный протокол взаимодействия веб-сервера и приложения, дальнейшее развитие технологииCGI. По сравнению с CGI является более производительным и безопасным.
FastCGI снимает множество ограничений CGI-программ. Недостаток CGI-программ в том, что они должны быть перезапущенывеб-серверомпри каждом запросе, что приводит к понижению производительности. FastCGI, вместо того чтобы создавать новые процессы для каждого нового запроса, использует постоянно запущенные процессы для обработки множества запросов. Это позволяет экономить время.
В то время как CGI-программы взаимодействуют с сервером через STDIN и STDOUT запущенного CGI-процесса, FastCGI-процессы используют Unix Domain SocketsилиTCP/IPдля связи с сервером. Это даёт следующее преимущество над обычными CGI-программами: FastCGI-программы могут быть запущены не только на этом же сервере, но и где угодно в сети. Также возможна обработка запросов несколькими FastCGI-процессами, работающими параллельно.