ИнтерфейсCgi
CGI - Common Gateway Interface - "общий интерфейс шлюзов". CGI-программа - это отдельная, самостоятельная программа, написанная на любом языке программирования. Обмен данными междуWeb-сервером иCGI-программой происходит через стандартные потоки ввода-вывода и переменные окружения. Запрашиваемый клиентомURLпри этом содержит наименование исполняемой на сервере программы (скрипта). Например, строка запроса может выглядеть следующим образом:
http://www.mysite.ru/cgi-bin/application.cgi?param=value
В ответ на запрос CGI-программа выдает на стандартный поток вывода свой ответ. Иными словами, если запустить CGI-программу вне контекста, без Web-сервера - на экране появится полное содержимое HTTP-ответа. Простейший пример CGI-программы:
print "Content-Type: text/html\n\n"; print "<HTML><BODY>"; print "<H1>Hello you!!!</H1>"; print "</BODY></HTML>";
Большая часть языков программирования имеет расширения, позволяющие упростить работу с передаваемыми от клиента выполняемой программе параметрами.
Технология CGI проста, но в настоящее время применяется не часто, поскольку она имеет ряд существенных недостатков.
Поскольку CGI-программа реально выполняется на сервере, прямо в операционной системе, без использования каких-то контейнеров - CGI потенциально может представлять собой проблему в области безопасности. При работе с CGI следует основываться на предположении, что пользователь может ввести в качестве параметров - все что угодно. В том числе и с целью нанесения вреда Вашему Web-приложению либо с целью несанкционированного доступа к данным. В результате данного предположения приходится проводить самый тщательный анализ введенной пользователем информации и ее использования. Как правило, выполняемые CGI-программы собираются в каталог, который называется cgi-bin. И как правило, выполняются они от имени какого-то пользователя (пусть apache). Эти меры служат для обеспечения безопасности, чтобы запускающий CGI-программу пользователь не мог нанести вред Вашему серверу.
CGI-программа полностью формирует передаваемый пользователю ответ. То есть, и логика работы программы, и представление данных, и форматирование этих данных в HTML - все эти шаги выполняются в одном месте. В результате большие CGI-программы очень трудно поддерживать, менять, дополнять.
-
Содержание
- Оглавление
- Введение.
- Предмет рассмотрения данного курса.
- Одно-, двух- и многоуровневые приложения.
- Интернет.
- Адрес в интернете
- 2001:0Db8:11a3:09d7:1f34:8a2e:07a0:765d
- Имя в интернете
- Службы (сервисы)
- Сокета.
- Что такое "сокета" (socket) ?
- Создание серверной сокеты (пример на языке c).
- Сериализация
- Основы верстки: таблицы
- Основы верстки: фреймы
- Основы верстки: позиционирование участков сайта
- Протокол http
- Структура запроса (Request).
- Структура ответа (Response).
- Перспективы развития http.
- Интернет-приложения
- Web-приложения
- Web-сервисы
- Особенности проектирования
- Особенности пользовательского интерфейса
- Программирование интернет-приложений
- Объектно-ориентированное программирование
- Классы и объекты
- Жизненный цикл класса
- Статические члены класса
- Инкапсуляция
- Наследование
- Полиморфизм
- Интерфейсы
- Событийно-ориентированное программирование
- Совместная работа над проектом
- Технологии создания web-клиентов
- Dom (Document Object Model)
- Каскадные таблицы стилей
- JavaScript
- Обфускация и динамическое получение скриптов
- Java Applets
- ActiveX/npapi
- Adobe Flash
- Web-серверы
- Nginx (engine X)
- Технологии, применяемые на стороне сервера
- ИнтерфейсCgi
- КонцепцияMvc
- Сервлеты
- JavaScript
- Хранение данных