Сервер Web своими руками. Язык HTML, приложения CGI и ISAPI

Метод POST


При использовании метода POST программа CGI получает данные из формы через стандартный поток ввода STDIN. Если программа CGI составлена на языке программирования C, то для получения данных она может воспользоваться такими функциями, как fread или scanf.

Что же касается количества байт данных, которые нужно считать из стандартного потока ввода, то эта информация передается программе CGI через переменную среды с именем CONTENT_LENGTH.

Ниже мы привели фрагмент кода для определения размера информации для ввода через стандартный поток STDIN:

int Size;

Size = atoi(getenv("CONTENT_LENGTH"));

Входные данные могут быть затем получены, например, следующим образом:

char szBuf[8196];

fread(szBuf, Size, 1, stdin);

Разумеется, буфер для чтения данных можно заказывать и динамически, для чего следует воспользоваться такой функцией, как malloc.

Если в операторе <FORM> не указан параметр ENCTYPE (тип MIME передаваемых данных) или этот параметр имеет значение application/x-www-form-urlencoded, данные, полученные через стандартный поток ввода, закодированы в кодировке URL. Перед использованием вы должны их раскодировать соответствующим образом.



Содержание раздела