SCGI (англ. Simple Common Gateway Interface — Спрощений Загальний Інтерфейс Шлюзу) — стандарт зв'язку між вебсервером і програмою — генератором контенту. Стандарт є спрощеною версією стандарту FastCGI. На відміну від FastCGI, специфікація SCGI займає кілька сторінок.
Специфікація
Спершу вебсервер встановлює зв'язок із програмою, генератором контенту, використовуючи надійний потоковий протокол, що підтримує передачу 8-бітних байтів. Заголовки поділені нульовими байтами. Першим заголовком обов'язково має бути заголовок «CONTENT_LENGTH»(англ. ДОВЖИНА_ЗМІСТУ), що означає довжину тіла запиту. Цей заголовок має бути присутнім навіть якщо його значення дорівнює нулю. Також обов'язковий заголовок «SCGI», значення якого має бути «1», для підтвердження того, що цей запит — SCGI запит. Позиція цього заголовка, на відміну від «CONTENT_LENGTH», не зазначається. Після заголовку йде тіло запиту, яке зазвичай є тілом НТТР запита, надісланого до вебсервера. Після отримання й обробки інформації, програма повинна відіслати відповідь, однак її структура не зазначається, але зазвичай вона є такою ж, як і в CGI та FastCGI. Коли відповідь повністю надіслано, програма має обірвати з'єднання.
Приклад
SCGI клієнт під'єднується до SCGI сервера і надсилає запит:
"70:" "CONTENT_LENGTH" <00> "27" <00> "SCGI" <00> "1" <00> "REQUEST_METHOD" <00> "POST" <00> "REQUEST_URI" <00> "/deepthought" <00> "," "У чому сенс життя?"
SCGI сервер обробляє отриману інформацію та відсилає відповідь:
"Status: 200 OK" <0d 0a> "Content-Type: text/plain" <0d 0a> "" <0d 0a> "42"
SCGI сервер обриває з'єднання.
Вебсервери, що підтримують SCGI
Протокол підтримується усіма провідними вебсерверами, зокрема:
- Lighttpd — використовуючи mod_scgi, який є розширенням для підтримки FastCGI — mod_fcgi, зі зміненою частиною, що відповідає за протокол. Конфігуруються обидва розширення однаково. Це означає, що скоріше за все розподіл навантаження lighttpd для FastCGI працює також для SCGI.
- nginx
- Apache
- Microsoft Internet Information Services — використовуючи ISAPI розширення.
Мови програмування, що підтримують SCGI
Можливо зробити бібліотеку SCGI для майже будь-якої мови програмування, чому сприяє простота протоколу. Більшість мов мають бібліотеки.
Посилання
Оригінальна специфікація [ 25 лютого 2021 у Wayback Machine.](англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
SCGI angl Simple Common Gateway Interface Sproshenij Zagalnij Interfejs Shlyuzu standart zv yazku mizh vebserverom i programoyu generatorom kontentu Standart ye sproshenoyu versiyeyu standartu FastCGI Na vidminu vid FastCGI specifikaciya SCGI zajmaye kilka storinok SpecifikaciyaSpershu vebserver vstanovlyuye zv yazok iz programoyu generatorom kontentu vikoristovuyuchi nadijnij potokovij protokol sho pidtrimuye peredachu 8 bitnih bajtiv Zagolovki podileni nulovimi bajtami Pershim zagolovkom obov yazkovo maye buti zagolovok CONTENT LENGTH angl DOVZhINA ZMISTU sho oznachaye dovzhinu tila zapitu Cej zagolovok maye buti prisutnim navit yaksho jogo znachennya dorivnyuye nulyu Takozh obov yazkovij zagolovok SCGI znachennya yakogo maye buti 1 dlya pidtverdzhennya togo sho cej zapit SCGI zapit Poziciya cogo zagolovka na vidminu vid CONTENT LENGTH ne zaznachayetsya Pislya zagolovku jde tilo zapitu yake zazvichaj ye tilom NTTR zapita nadislanogo do vebservera Pislya otrimannya j obrobki informaciyi programa povinna vidislati vidpovid odnak yiyi struktura ne zaznachayetsya ale zazvichaj vona ye takoyu zh yak i v CGI ta FastCGI Koli vidpovid povnistyu nadislano programa maye obirvati z yednannya Priklad SCGI kliyent pid yednuyetsya do SCGI servera i nadsilaye zapit 70 CONTENT LENGTH lt 00 gt 27 lt 00 gt SCGI lt 00 gt 1 lt 00 gt REQUEST METHOD lt 00 gt POST lt 00 gt REQUEST URI lt 00 gt deepthought lt 00 gt U chomu sens zhittya SCGI server obroblyaye otrimanu informaciyu ta vidsilaye vidpovid Status 200 OK lt 0d 0a gt Content Type text plain lt 0d 0a gt lt 0d 0a gt 42 SCGI server obrivaye z yednannya Vebserveri sho pidtrimuyut SCGIProtokol pidtrimuyetsya usima providnimi vebserverami zokrema Lighttpd vikoristovuyuchi mod scgi yakij ye rozshirennyam dlya pidtrimki FastCGI mod fcgi zi zminenoyu chastinoyu sho vidpovidaye za protokol Konfiguruyutsya obidva rozshirennya odnakovo Ce oznachaye sho skorishe za vse rozpodil navantazhennya lighttpd dlya FastCGI pracyuye takozh dlya SCGI nginx Apache Microsoft Internet Information Services vikoristovuyuchi ISAPI rozshirennya Movi programuvannya sho pidtrimuyut SCGIMozhlivo zrobiti biblioteku SCGI dlya majzhe bud yakoyi movi programuvannya chomu spriyaye prostota protokolu Bilshist mov mayut biblioteki PosilannyaOriginalna specifikaciya 25 lyutogo 2021 u Wayback Machine angl