SCGI
Simple Common Gateway Interface (SCGI) — протокол по взаимодействию приложений с веб (http) серверами, разработанный как альтернатива Common Gateway Interface. Он похож на FastCGI, но проще в реализации.
Спецификация была опубликована Neil Schemenauer <[email protected]> 12 января 2006 года.
Спецификация
Клиент подключается к SCGI-серверу по протоколу передачи потоков, допускающем передачу 8-битных байтов. Клиент начинает с отправки запроса. Когда SCGI-сервер видит конец запроса, он посылает обратно ответ и закрывает соединение. Формат ответа не специфицирован протоколом.
Формат запроса
Запрос состоит из заголовков и тела. Формат заголовков:
headers ::= header*
header ::= name NUL value NUL
name ::= notnull+
value ::= notnull+
notnull ::= <01> | <02> | <03> | ... | <ff>
NUL = <00>
Повторяющиеся имена не допускаются. Первый заголовок обязан иметь имя «CONTENT_LENGTH», а в его теле — непустой последовательности ASCII цифр — должна быть указана длина тела сообщения (в десятичном представлении). Заголовок «CONTENT_LENGTH» всегда должен передаваться, даже если его значение 0. Также всегда должен передаваться заголовок «SCGI» и значением 1. Для облегчения перехода с CGI, переменные окружения CGI должны передаваться как заголовки SCGI.
Заголовки пересылаются закодированные как сетевые строки (англ. netstrings). Тело пересылается за заголовками и его длина должна определяться заголовком «CONTENT_LENGTH».
Пример
Веб-сервер (клиент SCGI) открывает соединение и посылает следующие строки
"70:"
"CONTENT_LENGTH" <00> "27" <00>
"SCGI" <00> "1" <00>
"REQUEST_METHOD" <00> "POST" <00>
"REQUEST_URI" <00> "/deepthought" <00>
","
"What is the answer to life?"
SCGI сервер посылает следующий ответ:
"Status: 200 OK" <0d 0a>
"Content-Type: text/plain" <0d 0a>
"" <0d 0a>
"42"
Затем сервер SCGI закрывает соединение.
Ссылки
Внешние ссылки
- Спецификация SCGI Архивная копия от 8 мая 2007 на Wayback Machine
- Спецификация netstrings Архивная копия от 23 июня 2008 на Wayback Machine
- Модуль SCGI для Apache и интерфейс SCGI для Python Архивная копия от 26 февраля 2021 на Wayback Machine.
- Модуль SCGI для Cherokee (недоступная ссылка).
- Интерфейс SCGI для Perl Архивная копия от 29 сентября 2007 на Wayback Machine.
- Модуль SCGI для Nginx.
- Faster Web Applications with SCGI - статья о SCGI в Linux Journal Issue #158 June 2007
- Lisp interface
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.