Возможно вы искали: '8-bit Girlfriend'

May 15 2025 18:19:37
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Базовые принцип работы CGI скриптов (perl cgi web http howto)

Базовые принцип работы CGI скриптов (perl cgi web http howto)

Ключевые слова: perl, cgi, web, http, howto, (найти похожие документы)

Date: Mon, 23 Oct 2000 12:18:57 +0400 (MSD)
From: MailList: Perl в примерах
Subject: Базовые принцип работы CGI скриптов

CGI вывод
Николай Матковский (matkovsky@ukrpost.net)

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

Процесс взаимодействия начинается с того момента, когда броузер
запрашивает у сервера некоторый файл или указывает ему выполнить
некоторый скрипт. Если это файл, сервер пытается найти этот файл, и,
если он его находит, он пытается определить что это за файл -
HTML-страница, рисунок и т.д. После этого сервер сообщает броузеру,
что файл найден, выдает ему информацию о типе этого файла и,
соответственно, сам файл.

Вот как это выглядит.
Допустим, есть страница page.html, которая содержит следующий текст:

<html> <head>
<title>Perl в примерах</title>
</head>
<body>
<h2>Perl в примерах</h2>
</body>
</html>


Допустим вы ввели в адресной строке броузера
http://perl.hotmail.ru/page.html. В этом случае сервер ищет этот файл,
находит его и выдает броузеру примерно такое:

HTTP/1.0 200 OK
Date: Tue, 04 Apr 1999 12:27:49 GMT
Server: Apache/1.3.7
Content-type: text/html
Content-length: 100
Last-modified: Thu, 04 Apr 1999 12:23:51 GMT

<html> <head>
<title>Perl в примерах</title>
</head>
<body>
<h2>Perl в примерах</h2>
</body>
</html>


Итак, видим, что полученные данные состоят из двух частей, разделенных
пустой строкой - заголовка и тела. Заголовок сгенерирован сервером при
отправлении данных и содержит информацию об этих данных, в то время
как тело содержит собственно сами данные. Еще раз стоит обратить
внимание на то, что они разделяются пустой строкой - это очень важно,
поскольку при помощи именно этой строки броузер определяет, где
заканчивается заголовочная часть и начинаются данные.

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


Заголовок

А сейчас рассмотрим внимательнее заголовок. Первая строка гласит:

HTTP/1.0 200 OK


Общий вид этой строки такой:

HTTP/1.0 номер сообщение


Здесь номер и сообщение - это код состояния и соответствующее этому
коду сообщение сервера. Они указывают на результат выполнения запроса
броузера. (Например, код 404 и сообщение "Not found" означают, что
запрашиваемый файл не найден, а код 200 и сообщение "ОК" означают, что
запрос выполнен успешно).

Ниже перечислены все наиболее стоящие запоминания (или хотя бы знания
об их существовании) коды и сообщения сервера:

Код Сообщение Что означает
200 OK Документ был успешно найден и отправлен
204 No Content Документ был найден, но отсутствуют данные для отправки
301 Moved Permanently Документ перемещен в место, указанное в
заголовке Location
302 Moved Temporarily Документ временно перемещен в место, указанное в
заголовке Location
401 Unauthorized Запрашиваемый документ охраняется некоторой системой
защиты
404 Not found Документ не найден
500 Internal server error Ошибка при выполнении скрипта (например)

Следующие две строки - параметры Date и Server особой пользы не несут
и являются исключительно информационными. Очевидно, их значения - это
время выполнения обработки запроса (в формате GMT) и название/версия
сервера.

Далее следует очень важный параметр - Content-type. Этот параметр
указывает на то, какие именно данные передются сервером броузеру.
Значением этого параметра является тип MIME (Multimedia Internet Mail
Extension). Например, MIME-тип для HTML-файлов - text/html (как вы уже
наверное поняли из примера), для изображений в формате GIF - image/gif
и т.д.

Ниже перечислены самые распространенные MIME-типы:

text/plain Обычный текст. По умолчанию, если сервер не может
определить тип файла (по расширению, например), он указывает этот
MIME-тип
text/html HTML-текст
text/richtext Текстовый формат Rich Text.
image/gif Изображения в формате GIF
image/jpeg Изображения в формате JPEG
image/x-xbitmap X-bitmap - простейший формат для изображений
audio/basic 8-битовое аудио, ulaw-compressed
audio/x-wav Аудио в формате Microsoft Windows Audio.
video/mpeg MPEG-компрессия видео
video/quicktime Видео в формате QuickTime
video/x-msvideo Microsoft видео. Как правило - .avi-файлы
application/postscript Postscript-файлы

Следующий параметр заголовка - Content-length - указывает количество
(размер) передаваемых данных, и последний, Last-modified, - дату и
время последней модификации этого файла.

Познакомим вас с еще одним параметром, не встреченным в примере, но
тем не менее очень важным. Это параметр Location. Этот параметр
включается в заголовок для переадрессации броузера на некоторый другой
URI, и принимает значение этого некоторого URI.

Выглядит он вот так:

Location: абсолютный_URL

О его пользе (если она не очевидна) - дальше.

Скрипт

Что же должен делать скрипт?

Как уже было сказано выше, он должен сам генерировать необходимую
часть заголовка, которую сервер позже дополнит тем, чем он посчитает
нужным дополнить. "Необходимую" означает ту, которую стоит указать для
того, чтобы сервер не указал информацию по умолчанию или вообще
пропустил.

Чаще всего этой необходимой (и достаточной) информацией является
параметр Content-type. (Правильнее будет, наверное, сказать, что этот
параметр обязателен с некоторыми исключениями). Итак, CGI-программа
должна указать на то, какого рода данные она возвращает.

Например, такая программа:

#!/usr/bin/perl

$file = '/usr/local/etc/httpd/htdocs/images/picture.gif';

print "Content-Type: image/gifnn";
open(GIF,"<$file") || die "Can't open GIFn";
while (read(GIF,$buffer,16384)) {
print $buffer;
}


... возвращает GIF-изображение, поэотму она указывает

Content-Type: image/gif


А вот такая:

#!/usr/bin/perl


print "Content-Type: text/plain

This is a plain text.
Look how much of it is here.";


... - простой текст, поэтому и заголовок у нее соответствующий.

Другим возможным (и полезным) вариантом является добавление в
заголовок параметра Location. В таком случае, при выполнении скрипта
броузер будет переадресован на указанную страницу. Какая от этого
польза? Например, вы напишете скрипт, который в разных случаях будет
выдавать разный текст, но каждый раз в одном и том же случае этот
текст одинаковый (например, сообщение о правильном или неправильном
пароле). В таком случае удобней создать n страниц, и в различных
случаях отправлять пользователя на ту или иную страницу. В случае,
когда вам нужно будет что-то поменять в тексте одной из них, вам не
придется копаться в коде, давным-давно написаном и забытом, а просто
отредактировать соответствующую страницу.

#!/usr/bin/perl

require "check.pl"; # допустим, это модуль для проверки пароля

getParameters(*input);

if (check_password($input{'name'}, $input{'password'}) {
print "Location: /right.htmlnn";
} else {
print "Location: /wrong.htmlnn";
}


Обратите внимание на что, что здесь не нужно указывать Content-type -
при получении этих данных броузер выполнит еще один запрос - на
соответствующую страницу, после чего сервер сам определит тип этого
файла.

Последний параметр, который вам наверное понадобится - это Status. С
помощью этого параметра вы можете сами указать броузеру, как ему
воспринять ответ вашего скрипта. После слова Status и двоеточия должны
идти код и соответствующее сообщение - из тех кодов и сообщений
сервера, что уже были перечислены выше. Например, после получения
данных этой программы броузер скорее всего останется на той же
странице, с которой вызывал этот скрипт.

#!/usr/bin/perl

... # тут происходят важные, но никому не интересные процессы

print "Status: 204 No Contentnn";


И самое главное, не забывайте о том, что заголовок отделяется от
данных пустой строкой, поэтому после определения заголовка обязательно
должны идти два символа новой строки (nn).
1109 Прочтений •  [Базовые принцип работы CGI скриптов (perl cgi web http howto)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Базовые принцип работы CGI скриптов... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка