SCGISimple Common Gateway Interface (SCGI) — протокол по взаимодействию приложений с веб (http) серверами, разработанный как альтернатива Common Gateway Interface. Он похож на FastCGI, но проще в реализации. Спецификация была опубликована Neil Schemenauer <nas@python.ca> 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 закрывает соединение. Ссылки
Внешние ссылки
|