Стандартний пристрій введення.
Як сказано вище, якщо клієнт використовує для передачі інформації HTTP-методи PUT або POST, довжина і тип MIME цих даних поміщаються в змінні CONTENT_LENGTH і CONTENT_TYPE відповідно. Передавані дані посилаються на стандартний пристрій введення CGI-програми. Ознака кінця даних може не посилатися програмі, тому вона повинна узяти значення змінної CONTENT_LENGTH і прочитати стільки байтів, скільки в ній вказано. Це основний метод передачі даних з форм, і в наших прикладах ми будемо майже виключно використовувати лише його.
Існують багаточисельні бібліотеки майже для всіх мов, які виконують важливі завдання налаштування CGI-программ, у тому числі визначають, яким методом - GET або POST — передані дані, і, відповідно, розбирають змінну оточення QUERY_STRING або читають з пристрою стандартного введення. Потім ці бібліотеки поміщають дані в легко доступні змінні. Обширний список ресурсів CGI для різних мов є на Yahoo за адресою: http://www.yahoo.com/Computers_and_Internet/Internet/ World_Wide_Web/CGI_Common_Gateway_Interface/
Стандартний пристрій виводу.
Дані, що посилаються CGI-програмою на стандартний пристрій виводу, читаються веб-сервером і вирушають клієнтові. Якщо ім'я сценарію починається з nph-, то дані посилаються прямо клієнтові без втручання з боку веб-сервера. В цьому випадку CGI-програма повинна сформувати правильний заголовок HTTP, який буде зрозумілий клієнтові. Інакше надайте веб-серверу сформувати HTTP-заголовок.
Навіть якщо ви не використовуєте nph-сценарий, серверу потрібно дати одну директиву, яка повідомить йому відомості про вашу видачу. Звичайно це HTTP-заголовок Content-Type, але може бути і заголовок Location . За заголовком повинен слідувати порожній рядок, тобто переклад рядка або комбінація CR/LF.
Заголовок Content-Type повідомляє сервер, якого типу дані видає ваша CGI-програма. Якщо це сторінка HTML, то рядок має бути Content-Type: text/html. Заголовок Location повідомляє сервер іншої URL або інший шлях на тому ж сервері, куди потрібно направити клієнта. Заголовок повинен мати наступний вигляд: Location: http:// www.myserver.com/another/place/.
Після заголовків HTTP і порожнього рядка можна посилати власне дані, видавані вашою програмою - сторінку HTML, зображення, текст або що-небудь ще. Серед CGI-программ, що поставляються з сервером Apache, є nph-test-cgi і test-cgi, які добре демонструють різницю між заголовками в стилях nph і не-nph, відповідно.
Дата добавления: 2016-04-02; просмотров: 561;