Чем открыть файл cgi
Статья гуляет в интернете уже довольно давно, но, как автор думаю имею право на ее перепост здесь. Многое (если не все) написаное здесь устарело, и может показаться бесполезным с первого взгляда, однако пройдя этот путь, спустя 6 лет могу сказать, это не оказалось лишним. Итак.
В этой статье я хочу рассказать о CGI интерфейсе вообще, его реализации для windows и использовании при написании CGI-программ языка ассемблер в частности. В рамки этой статьи не входит полное описание CGI, так-как в Интернете материала по этому вопросу просто море и пересказывать все это здесь я просто не вижу смысла.
Теория CGI
Как уже говорилось выше, после получения данных сервер должен преобразовать их и передать CGI программе. В стандартной спецификации CGI введенные клиентом данные при запросе GET помещаются сервером в переменную среды программы «QUERY_STRING». При запросе POST данные помещаются в стандартный поток ввода приложения, откуда могут быть им считаны. Кроме того, при таком запросе сервером устанавливаются еще две переменные среды — CONTENT_LENGTH и CONTENT_TYPE, по которым можно судить о длине запроса в байтах и о его содержании.
Помимо самих данных сервером устанавливаются и другие переменные окружения вызываемой программы, приведу некоторые из них:
REQUEST_METHOD
Описывает каким именно методом получены данные
Пример:REQUEST_METHOD=GET
QUERY_STRING
Строка запроса, если использовался метод GET
Пример:QUERY_STRING= your_name=Pupkin&your_age=90&hobby=asm
CONTENT_LENGTH
Длина в байтах тела запроса
Пример:CONTENT_LENGTH=31
CONTENT_TYPE
Тип тела запроса
GATEWAY_INTERFACE
Версия протокола CGI
Пример:GATEWAY_INTERFACE=CGI/1.1
REMOTE_ADDR
IP-Адрес удаленного хоста, то бишь клиента, нажавшего кнопочку в форме
Пример:REMOTE_ADDR=10.21.23.10
SCRIPT_NAME
Имя скрипта, использованное в запросе.
Пример:SCRIPT_NAME=/cgi-bin/gols.pl
SCRIPT_FILENAME
Имя файла скрипта на сервере.
Пример:SCRIPT_FILENAME=c:/page/cgi-bin/gols.pl
SERVER_SOFTWARE
Программное обеспечение сервера
Пример:Apache/1.3.19 (WIN32)
Вызываемая CGI-программа может прочитать любую из переменных своего окружения, установленных сервером и использовать ее в своих интересах.
В общем-то это вкратце все, для получения более подробной информации о Общем Шлюзовом Интерфейсе смотрите специализированную документацию, это описание я сделал для того, чтобы напомнить вам, а если не знали то ввести в курс дела. Давайте попробуем что-нибудь сделать на практике.
Практическая часть
@echo off
rem Заголовок апроса
echo Content-type: text/html
echo.
rem Тело запроса
echo "Привет!
echo "С запросом GET пришли данные: %QUERY_STRING%
- Программа должна уметь читать стандартный поток ввода (stdin), чтобы получить доступ к данным, переданным методом POST;
- Программа должна уметь писать в стандартный поток вывода (stdout), чтобы передать результат своей работы серверу;
- Из первых двух пунктов следует, то, что для того, чтобы сервер мог передать нашей программе что-либо в stdin, а она могла ему что-либо ответить в stdout CGI-программа должна быть консольным приложением;
- Наша программа должна уметь читать переменные своего окружения.
- STD_INPUT_HANDLE — для stdin (стандартный ввод);
- STD_OUTPUT_HANDLE — для stdout (стандартный вывод);
- STD_ERROR_HANDLE — для stderr.
Функция возвратит необходимый нам для операций чтения/записи хэндл. Следующее что нам необходимо делать это писать/читать эти потоки. Делается это обычными операциями чтения/записи файлов, т.е. ReadFile и WriteFile. Тут есть одна тонкость, можно подумать, что для этих целей можно использовать WriteConsole/ReadConsole, да это действительно справедливо для консоли и будет прекрасно работать, результаты, так же как и с WriteFile будут выводиться на консоль, но продолжаться это будет пока мы не запустим нашу программу как скрипт на сервере. Происходит это потому что, когда нашу программу запускает сервер хндлы, возвращаемые функцией «GetStdHandle» уже не будут хндлами консоли как таковыми, они будут хэндлами pipe, что необходимо для связи двух приложений.
Вот небольшой пример того, как должна выглядеть CGI-программа на ассемблере:
.386
.model flat,stdcall
includelib import32.lib
.const
PAGE_READWRITE = 4h
MEM_COMMIT = 1000h
MEM_RESERVE = 2000h
STD_INPUT_HANDLE = -10
STD_OUTPUT_HANDLE = -11
.data
hStdout dd ?
hStdin dd ?
hMem dd ?
header:
db 'Content-Type: text/html',13,10,13,10,0
start_html:
db 'Окружение CGI-программы выглядит так:
',13,10,0
for_stdin:
db 'STDIN программы содержит:
',13,10,0
end_html:
db '',13,10,0
nwritten dd ?
toscr db 10 dup (32)
db ' - Тип файла',0
.code
_start:
xor ebx,ebx
call GetStdHandle,STD_OUTPUT_HANDLE
mov hStdout,eax
call GetStdHandle,STD_INPUT_HANDLE
mov hStdin,eax
call write_stdout, offset header
call write_stdout, offset start_html
call VirtualAlloc,ebx,1000,MEM_COMMIT+MEM_RESERVE,PAGE_READWRITE
mov hMem,eax
mov edi,eax
call GetEnvironmentStringsA
mov esi,eax
next_symbol:
mov al,[esi]
or al,al
jz end_string
mov [edi],al
next_string:
cmpsb
jmp short next_symbol
end_string:
mov [edi],'>rb add edi,3
cmp byte ptr [esi+1],0
jnz next_string
inc edi
stosb
call write_stdout, hMem
call write_stdout, offset for_stdin
call GetFileSize,[hStdin],ebx
mov edi,hMem
call ReadFile,[hStdin],edi, eax,offset nwritten, ebx
add edi,[nwritten]
mov byte ptr [edi],0
call write_stdout, hMem
call write_stdout, offset end_html
call VirtualFree,hMem
call ExitProcess,-1
write_stdout proc bufOffs:dword
call lstrlen,bufOffs
call WriteFile,[hStdout],bufOffs,eax,offset nwritten,0
ret
write_stdout endp
extrn GetEnvironmentStringsA:near
extrn GetStdHandle:near
extrn ReadFile:near
extrn WriteFile:near
extrn GetFileSize:near
extrn VirtualAlloc:near
extrn VirtualFree:near
extrn ExitProcess:near
extrn lstrlen:near
ends
end _start
Расширение .CGI обозначает формат файла Common Gateway Interface, который помечен как стандартный подход для создания веб-приложений и динамического содержимого на веб-страницах. Расширение .CGI при применении на веб-сервере предоставляет пользователю интерфейс между приложениями и веб-сервером, который генерирует содержимое веб-сайта. Все такие программы называются CGI или CGI-скриптами. Эти файлы обычно пишутся с использованием языка сценариев.
Расширение .CGI - это больше язык программирования, и файлы, созданные с использованием этого языка, заканчиваются расширением формата .CGI. Некоторые другие форматы файлов также могут использовать расширение .CGI.
Программы, которые поддерживают CGI расширение файла
Следующий список содержит программы, сгруппированные по 3 операционным системам, которые поддерживают CGI файлы. Файлы с расширением CGI, как и любые другие форматы файлов, можно найти в любой операционной системе. Указанные файлы могут быть переданы на другие устройства, будь то мобильные или стационарные, но не все системы могут быть способны правильно обрабатывать такие файлы.
Программы, обслуживающие файл CGI
Windows
MAC OS
Linux
Updated: 03/20/2020
Откройте файл CGI с помощью текстового редактора.
Существует множество программ, с помощью которых вы можете открывать файлы CGI. Стороннее программное обеспечение даже не требуется, так как вы можете открыть его в Блокноте. Однако в текстовом редакторе Блокнота нет никаких опций или инструментов для написания сценариев.
Notepad ++ – намного лучший текстовый редактор, который поддерживает формат CGI. Самое лучшее в Notepad ++ – это то, что он включает подсветку синтаксиса и свертывание. Таким образом, это отличное программное обеспечение для редактирования скриптов CGI. Он также имеет настраиваемый графический интерфейс пользователя и дизайн пользовательского интерфейса с вкладками, который позволяет пользователям открывать несколько файлов в одном окне.
- С этой страницы вы можете сохранить мастер установки Notepad ++ в Windows. Программное обеспечение имеет 32- и 64-разрядные версии, поэтому нажмите Notepad ++ Installer 32-bit x86 , если у вас 32-разрядная система Windows.
- Откройте установщик программного обеспечения из папки загрузки вашего браузера. Запустите мастер установки, чтобы установить его, и откройте окно программы ниже.
- Затем вы можете нажать Файл >Открыть и выбрать файл CGI для открытия в Notepad ++.
Программы, обслуживающие файл CGI
Windows
MAC OS
Linux
Updated: 03/20/2020
Как конвертировать файл CGI
Файлы CGI не будут правильно работать на веб-сервере, если вы конвертируете их в другой формат. Однако вы все равно можете сохранить открытый файл CGI в HTML или другом текстовом формате, используя текстовый редактор, на который мы ссылались выше.
Помните, что мы говорили выше о переименовании файла CGI. Это фактически не преобразует CGI в PDF, JPG и т. Д., Но вместо этого просто устанавливает правильное расширение файла, чтобы нужная программа распознала и открыла его. Фактическое преобразование файлов происходит с помощью конвертера файлов.
Если вы действительно ищете информацию о программировании CGI, это выходит за рамки данной статьи. Например, если вы хотите перевести информацию из формы CGI в файл Excel, вы не можете просто преобразовать сам сценарий CGI в файл XLSX или XLS.
Конвертировать файл CGI в PDF
Вы также можете открывать файлы CGI в Google Chrome, конвертируя их в PDF (формат переносимого документа). Chrome имеет собственный просмотрщик PDF, который открывает документы на вкладках. Однако вы не можете редактировать документы в браузере, если вы не добавите в него расширение. Вы на самом деле не открываете файл CGI, но PDF-файл включает в себя весь его скрипт. Вот как вы можете конвертировать CGI-файл в формат PDF.
- Сначала откройте страницу конвертера PDF24 в своем браузере. Это преобразует CGI и другие форматы файлов в PDF.
Таким образом, вы можете открывать CGI в Notepad ++ и Chrome, а Vim, EditRocket и gVim являются альтернативным программным обеспечением, которое также поддерживает формат файла. Если вам нужно отредактировать скрипт CGI, откройте файл в Notepad ++. Преобразование CGI в PDF, если вам нужно только поделиться или распечатать файл.
Это может быть очень неприятно, когда у вас есть файл CGI, и вы не можете открыть его. Но не волнуйтесь, в большинстве случаев решение вашей проблемы очень простое. Следуйте инструкциям в шагах 1-4, перечисленным ниже, и вы сможете решить вашу проблему и легко открыть файл CGI.
- 1. CGI расширение файла
- 2. Что такое CGI файл?
- 3. Как открыть файл CGI?
- 3.1 Проверьте CGI файл на наличие ошибок
- 3.2 Как решить возникшие проблемы?
- 3.2.1 Программы, открывающие файлы CGI
CGI расширение файла
- Тип файла Common Gateway Interface Script
- Разработчик файлов N/A
- Категория файла Исполняемые файлы
- Рейтинг популярности файлов
Что такое CGI файл?
Формат CGI используется сценариями, выполняемыми на динамическом веб-сайте. Их примером является реклама на сайте или форма отправки электронной почты. Файлы CGI написаны на C или Perl. Они сохраняются в папке "cgi-bin" на сервере данной страницы и могут быть отредактированы только перед начальной компиляцией.
Как открыть файл CGI?
CGI значок файла должен отображаться способом, характерным для программы, поддерживающей такой тип файла. Если значок CGI file имеет форму обычного значка пустой страницы или аналогичного, это означает, что данный формат не связан ни с одной программой, установленной в системе. Ниже перечислены некоторые из наиболее популярных причин такой ситуации.
Проверьте CGI файл на наличие ошибок
- В системе не установлена программа, которая поддерживает CGI файлы
- С этим расширением не связано ни одной программы, поддерживающей файлы CGI (в системном реестре нет записей, связанных с программами, которые следует использовать для открытия файлов CGI)
- Файл имеет неизвестное или непроверенное происхождение и, скорее всего, заражен. В этом случае пользователь должен проявлять крайнюю осторожность, чтобы вирус не распространялся на другие файлы в системе (следуйте инструкциям, отображаемым в диалоговом окне антивирусного программного обеспечения.
- CGI файл может быть неполным, что не позволит системе открыть его (это может быть в случае с файлом, загруженным из Интернета или скопированным из других источников)
- Файл поврежден
Как решить возникшие проблемы?
Чтобы решить следующие проблемы, следуйте инструкциям:
Шаг 1. Выберите, загрузите и установите соответствующее программное обеспечение. Список программ, поддерживающих файлы с расширением CGI, можно найти ниже:
Файл с расширением CGI является файлом сценария интерфейса общего шлюза. Это текстовые файлы, но, поскольку они написаны на таком языке программирования, как C или Perl, они могут работать как исполняемые файлы при определенных условиях.
Одним из примеров является файл CGI, содержащий сценарии, отвечающие за отправку электронной почты из формы на веб-сайте. Эти файлы сценариев часто находятся в каталоге «cgi-bin» веб-сервера.
Как открыть файл CGI?
Проблемы с доступом к CGI могут быть вызваны разными причинами. К счастью, наиболее распространенные проблемы с файлами CGI могут быть решены без глубоких знаний в области ИТ, а главное, за считанные минуты. Ниже приведен список рекомендаций, которые помогут вам выявить и решить проблемы, связанные с файлами.
Шаг 1. Скачайте и установите EditRocket
Наиболее распространенной причиной таких проблем является отсутствие соответствующих приложений, поддерживающих файлы CGI, установленные в системе. Этот легкий. Выберите EditRocket или одну из рекомендованных программ (например, gVim, Adobe Contribute, Windows Notepad) и загрузите ее из соответствующего источника и установите в своей системе. Выше вы найдете полный список программ, которые поддерживают CGI файлы, классифицированные в соответствии с системными платформами, для которых они доступны. Одним из наиболее безопасных способов загрузки программного обеспечения является использование ссылок официальных дистрибьюторов. Посетите сайт EditRocket и загрузите установщик.
Шаг 2. Проверьте версию EditRocket и обновите при необходимости
Если проблемы с открытием файлов CGI по-прежнему возникают даже после установки EditRocket, возможно, у вас устаревшая версия программного обеспечения. Проверьте веб-сайт разработчика, доступна ли более новая версия EditRocket. Может также случиться, что создатели программного обеспечения, обновляя свои приложения, добавляют совместимость с другими, более новыми форматами файлов. Если у вас установлена более старая версия EditRocket, она может не поддерживать формат CGI. Самая последняя версия EditRocket обратно совместима и может работать с форматами файлов, поддерживаемыми более старыми версиями программного обеспечения.
Шаг 3. Назначьте EditRocket для CGI файлов
После установки EditRocket (самой последней версии) убедитесь, что он установлен в качестве приложения по умолчанию для открытия CGI файлов. Следующий шаг не должен создавать проблем. Процедура проста и в значительной степени не зависит от системы
Изменить приложение по умолчанию в Windows
- Выберите пункт Открыть с помощью в меню «Файл», к которому можно щелкнуть правой кнопкой мыши файл CGI.
- Далее выберите опцию Выбрать другое приложение а затем с помощью Еще приложения откройте список доступных приложений.
- Чтобы завершить процесс, выберите Найти другое приложение на этом. и с помощью проводника выберите папку EditRocket. Подтвердите, Всегда использовать это приложение для открытия CGI файлы и нажав кнопку OK .
Изменить приложение по умолчанию в Mac OS
Шаг 4. Убедитесь, что CGI не неисправен
Если вы выполнили инструкции из предыдущих шагов, но проблема все еще не решена, вам следует проверить файл CGI, о котором идет речь. Проблемы с открытием файла могут возникнуть по разным причинам.
1. CGI может быть заражен вредоносным ПО - обязательно проверьте его антивирусом.
Если файл заражен, вредоносная программа, находящаяся в файле CGI, препятствует попыткам открыть его. Немедленно просканируйте файл с помощью антивирусного инструмента или просмотрите всю систему, чтобы убедиться, что вся система безопасна. Если файл CGI действительно заражен, следуйте инструкциям ниже.
2. Проверьте, не поврежден ли файл
Если вы получили проблемный файл CGI от третьего лица, попросите его предоставить вам еще одну копию. Возможно, файл был ошибочно скопирован, а данные потеряли целостность, что исключает доступ к файлу. При загрузке файла с расширением CGI из Интернета может произойти ошибка, приводящая к неполному файлу. Попробуйте загрузить файл еще раз.
3. Проверьте, есть ли у пользователя, вошедшего в систему, права администратора.
Некоторые файлы требуют повышенных прав доступа для их открытия. Выйдите из своей текущей учетной записи и войдите в учетную запись с достаточными правами доступа. Затем откройте файл Common Gateway Interface Script.
4. Проверьте, может ли ваша система обрабатывать EditRocket
Операционные системы могут иметь достаточно свободных ресурсов для запуска приложения, поддерживающего файлы CGI. Закройте все работающие программы и попробуйте открыть файл CGI.
5. Убедитесь, что ваша операционная система и драйверы обновлены
Регулярно обновляемая система, драйверы и программы обеспечивают безопасность вашего компьютера. Это также может предотвратить проблемы с файлами Common Gateway Interface Script. Возможно, что одно из доступных обновлений системы или драйверов может решить проблемы с файлами CGI, влияющими на более старые версии данного программного обеспечения.
Вы хотите помочь?
Если у Вас есть дополнительная информация о расширение файла CGI мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле CGI.
CGI (Common Gateway Interface) представляет собой тип файла сценария, включенного в страницы веб-сайта. Сценарии CGI предназначены в первую очередь для веб-форм и окон поиска. Например, многие разработчики добавляют CGI-скрипты на страницы, которые отправляют данные формы на адреса электронной почты.
Файлы Common Gateway Interface – это, по сути, текстовые документы, содержащие сценарии. Perl является наиболее распространенным языком программирования для CGI-скриптов. Тем не менее, разработчики также могут кодировать их в C. Все, что вам нужно, чтобы открыть файлы, это текстовый редактор, который поддерживает их формат.
Как открыть файл CGI
Поскольку файлы CGI представляют собой текстовые файлы, для их просмотра и редактирования можно использовать встроенный Блокнот в Windows. Но другие текстовые редакторы также могут использоваться для открытия файлов CGI.
Хотя это не предназначено для работы таким образом, иногда вы можете попытаться загрузить файл с веб-сайта, но вместо этого получите файл .CGI. Например, выписка из банка или страховой счет, которую вы загружаете, может быть в виде файла .CGI, а не в формате PDF (или в другом формате, таком как JPG и т. Д.).
Вы должны иметь возможность переименовать файл .CGI в файл, который собирались загрузить, а затем иметь возможность открывать его, как обычно. В этом примере переименование файла .CGI в файл .PDF должно позволить вам открыть PDF-файл в средстве просмотра PDF. Тот же процесс должен работать с любым файлом в этом контексте с неправильным именем.
Такое переименование файлов на самом деле не преобразует их в новый формат. Он просто меняет программу, открывающую файл. Поскольку в этом примере документ должен быть PDF, переименование его в .PDF просто устанавливает правильное расширение файла.
Если вы продолжаете получать файл .CGI вместо фактического файла, который вам нужен, может потребоваться очистить кеш браузера и повторить попытку. Если проблема не исчезнет, другим решением может быть отключение брандмауэра или программного обеспечения безопасности.
Если вы обнаружите, что приложение на вашем компьютере пытается открыть файл CGI, но это неправильное приложение, или вы предпочитаете, чтобы другая установленная программа открывала файлы CGI, измените программу по умолчанию для определенного расширения файла, чтобы внести это изменение в Windows.
По-прежнему не удается открыть файл?
Дважды проверьте расширение файла, чтобы убедиться, что вы не путаете файл CGM (метафайл компьютерной графики), CSI, CGR (графическое представление CATIA), CGF (формат геометрии Crytek) или CGZ (карта куба) с файлом, имеющим расширение .CGI.
Как видите, расширения файлов, используемые в разных форматах, могут выглядеть очень похожими, но это не обязательно означает, что они открываются или конвертируются одинаково.
Откройте CGI-файлы на вашем ПК с Windows
Читайте также: