Последовательность действий cgi-модуля при запросах GET и POST
Исходя из разницы методов запросов GET и POST, можно определить
последовательность действий для обработки входных данных cgi-модуля
для разных типов запросов.
Для метода GET
Получить значение переменной
QUERY_STRING
Декодировать имена и их
значения (учитывая, что все
пробелы при декодировании
сервером были заменены
символом "+" и все символы
с десятичным кодом больше 128
преобразованы в символ "%"
и следующим за ним
шестнадцатеричным кодом
символа.)
Сформировать структуру
соответствия "имя -
значение" для дальнейшего
использования в cgi-модуле
Для метода POST
Получить из стандартного
входного потока CONTENT_LENGTH
символов
Декодировать имена и их
значения (учитывая, что все
пробелы при декодировании
сервером были заменены
символом "+" и все
символы с десятичным кодом
больше 128 преобразованы в
символ "%" и следующим
за ним шестнадцатеричным кодом
символа.)
Сформировать структуру
соответствия "имя -
значение" для дальнейшего
использования в cgi-модуле
Очевидно, что отличие только в
источнике данных. Поэтому, в
принципе, возможно создание
единого модуля для методов POST и GET.
Необходимо только добавить в
начало проверку значения
переменной REQUEST_METHOD для определения
метода запроса. После формирования
структуры "имя-значение" можно
приступить к решению задач, ради
которых, собственно, создавался
cgi-модуль. Понятно, что задачи,
решаемые cgi-модулем, могут быть
очень разнообразными (получение и
обработка почты, доступ к базам
данных, гостевая книга и т.д.).
Следующим важным моментом является динамическое формирование cgi-модулем
HTML-документа (оформление результата работы модуля).
Например, таблицы выборки из базы данных.
Для этого cgi-модуль должен выдать
в стандартный выходной поток заголовок состоящий из строки: Content-type: text/html и пустой строки (двух символов CR)
После этого заголовка можно давать любой текст в формате HTML.
Знаете ли Вы, что "тёмная материя" - такая же фикция, как черная кошка в темной комнате. Это не физическая реальность, но фокус, подмена. Реально идет речь о том, что релятивистские формулы не соответствуют астрономическим наблюдениям, давая на порядок и более меньшую массу и меньшую энергию. Отсюда сделан фокуснический вывод, что есть "темная материя" и "темная энергия", но не вывод, что релятивистские формулы не соответствуют реалиям. Подробнее читайте в FAQ по эфирной физике.