Главная / web программирование / web технологии
Основы web-технологий.С появлением высокопроизводительных серверов, сетевого оборудования и высокоскоростных каналов связи стала реальностью организация на основе ПК корпоративных вычислительных сетей. |
HTTP ответа и отправляет его пользовательскому агенту. Если какие-либо из действий выполнить не удалось, то пользовательскому агенту отправляется строка с ошибочным кодом состояния и созданный процесс уничтожается. Все современные операционные системы содержат в своем API средства для запуска дочернего процесса с данной средой окружения. В DOS – функция 4B00h прерывания 21h, в UNIX – системный вызов execve, в WIN32 – функция API CreateProcess. В любом случае, прикладная программа может получить доступ к среде окружения. Языки высокого уровня унифицируют интерфейс доступа к среде окружения для различных ОС. Например, в языках C и C++ имеются следующие переменные и функции:
#include
extern char **environ; #include
char *getenv(char *varname);
Указатель на массив строк environ может быть использован для доступа ко всей среде окружения процесса. В массиве содержатся переменные окружения в формате "name=value", где name – имя переменной окружения, value – ее значение. Последний элемент массива содержит пустую строку в качестве признака окончания среды процесса. Функция getenv позволяет получить значение переменной окружения, имя которой передано в качестве параметра varname. Если переменная с данным именем отсутствует, функция возвращает 0. Если программой CGI обрабатывается запрос, содержащий метод POST, то тело сообщения запроса, в котором находится кодированное содержимое отправленной клиентом формы, можно получить из стандартного потока ввода. С каждым процессом связан стандартный поток ввода. Чтение из этого потока стандартно означает чтение с клавиатуры. При помощи операций с дескрипторами можно поместить блок данных в стандартный поток ввода. Читать из стандартного потока ввода в языке C удобнее всего при помощи функции чтения потока:
#include
int fread(void *buffer, size_t size, size_t count, FILE *stream);
В параметре buffer передается адрес буфера, куда будут помещены прочитанные данные. В параметрах size и count указывается длина читаемого блока. Поскольку пользовательский агент передает длину тела сообщения в байтах, то в параметре size указывается 1, а в параметре count – длина тела сообщения запроса. В качестве параметра stream следует передать константу stdin для указания, что считывание производится из стандартного потока ввода. Функция fread возвращает количество фактически прочитанных символов. Чтение из стандартного потока ввода является блокирующим, поэтому следует заранее определить число читаемых символов. Клиент вместе с другими заголовками передает заголовок Content-Length, в котором сообщается длина тела сообщения. Сервер при формировании среды окружения создает переменную CONTENT_LENGTH, значение которой совпадает со значением соответствующего заголовка. Поэтому чтением данной переменной можно определить число символов в стандартном потоке ввода. Помимо стандартного потока |
Дата публикации: 25 Января, 2011
Автор: Стрельников О.И
Прочитано: 6181 раз
< | 1 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | > |
Это интересно
Понятие и классификация. |
Давайте проведем небольшой тест. Какие ассоциации вызывает у вас слово «хакер?». |
Разбираемся, как ломают капчи. Теория и практика |