Учебни записки

10. Уебсървър и сървърен софтуер

Уебсървър наричаме софтуерно приложение, което приема и отговаря на заявките, за ресурси, съответстващи на URL-и. Най-известни такива приложения са: Apache, IIS (Internet Information Services), nginx и др.

При съставянето на отговора, който трябва да се изпрати на клиента (браузъра), в динамичните уебсайтове може да участва и друг софтуер, написан специално за нуждите на конкретния сайт. Ще наричаме този софтуер сървърен софтуер. Този софтуер може да бъде изключително разнообразен по отношение на езика за програмиране, на който е написан; по отношение на начина на изпълнение и формата, в която се съхранява от операционната система на машината, в която се изпълнява; по отношение на задачите, които решава на дадения сайт.

Когато към уебсървъра, постъпи заявка за URL на статичен ресурс, съхраняван като готов файл, уебсървърът прочита този файл и изпраща неговото съдържание на клиента без друга обработка.

Когато заявката е за динамично съдържание, сървърът препраща заявката на друг софтуер, предназначен да генерира това съдържание, получава отговора на този софтуер и го препраща на клиента.

Съществуват два начина за генериране на HTML код, който да се изпрати като отговор: 1. използване на общ интерфейс за шлюз (Common Gateway Interface - CGI) и 2. вмъкване на скриптов език във файлове с HTML код.

При използване на CGI, заявката се препраща от уебсървъра на друг софтуер. Този софтуер може да бъде написан на всеки език за програмиране (С, Perl, Python и др.). Той трябва изцяло да извърши анализ на заявката и да генерира HTML код за отговор съгласно правилата на HTTP протокола. Обикновено изпълнимите файлове с такъв софтуер се намират в предназначена за целта директория, най-често с име: cgi-bin. Името на тази директория и пътя до конкретното приложение са част от поискания URL.

Има езици за програмиране (JavaScript, PHP, VBScript, Java), при които програмния код може да се вмъква във файловете, съдържащи HTML код. На файловете с HTML код се слагат разширения на имената, съответстващи на езика на вмъкнатия в тях скриптов програмен код. Например: при език PHP - разширението е .php, при VBScript - .asp, при Java - .jsp. Уебсървърът изпраща такива файлове за обработка от софтуер, интерпретатор на съответния език за програмиране, а интерпретаторът открива вмъкнатия програмен код, изпълнява го и замества на съответните места програмния код с резултата от неговото изпълнение. Получилият се в резултат на това замесване HTML код се връща на уебсървъра, който го препраща като отговор на клиента.