Skip to main content

Fast CGI

Wat is Fast CGI?

Fast-CGI (F-CGI) is een binair netwerkprotocol dat wordt gebruikt als interface tussen een applicatieserver en een webserver. Het netwerkprotocol heeft een soortgelijke werkwijze als het traditionele Common Gateway Interface (CGI). Het doel bij de ontwikkeling van het Fast-protocol was de prestatieproblemen van CGI te omzeilen en een webprotocol met hoge prestaties te bieden.

Functionaliteit in een oogopslag

De communicatie met de webserver wordt zowel verbindingsloos als pakketgeoriënteerd gerealiseerd. Elk gegevenspakket is voorzien van de volgende informatie in de header:

  • de exacte protocolversie
  • het berichttype
  • de verzoek-ID
  • de lengte van de volgende gegevens

Binnen het kader van een gegevenspakket kunnen onder meer ook de CGI-omgevingsvariabelen worden getransporteerd. De verzoek-ID maakt het mogelijk onderscheid te maken tussen verschillende Clients, zodat zij gelijktijdig kunnen worden bediend. In tegenstelling tot traditionele CGI kunnen verschillende Client’s worden bediend met één enkele programma-instance.

Afbakeningen

Zodra een op CGI gebaseerde website wordt opgeroepen, start de verantwoordelijke webserver het proces van de CGI-toepassing en sluit het weer aan het einde van het verzoek. Aangezien in veel gevallen de toepassingen worden gerealiseerd in een scripttaal, zoals PHP of Perl moet de bijbehorende interpreter bij elke oproep worden geladen. Bij traditionele CGI neemt deze aanroep enige tijd in beslag en duurt vaak langer dan de eigenlijke uitvoering van de toepassing. Het resultaat is een dienovereenkomstig grote overhead.
Een ander probleem met CGI is het feit dat voor elk serververzoek een afzonderlijke interpreter moet worden geladen. Als er meerdere verzoeken tegelijk worden gedaan, worden er meerdere kopieën van de interpreter in het hoofdgeheugen van de server geladen. Dit kan snel leiden tot overbelasting en een crash van het systeem op zwaar belaste webservers.

Minimale overhead

In directe vergelijking met klassieke CGI wordt met Fast-Common Gateway Interface de uitvoerende toepassing met de interpreter pas bij het eerste verzoek geladen. Daarna kan het worden gebruikt voor de verwerking van verdere verzoeken. Het maakt geen verschil of de verzoeken van dezelfde of verschillende Client’s afkomstig zijn. Een ander onderscheidend kenmerk komt tot uiting in het feit dat de gehele communicatie met de webserver niet via omgevingsvariabelen verloopt. In plaats daarvan worden TCP-netwerkverbindingen of Unix Domein Sockets (UDS) worden gebruikt.
Op systeemniveau is het belangrijkste verschil tussen Fast en klassieke CGI dat bij F-CGI de verzoeken worden verwerkt door een centrale lus. Dit functionele principe is zo efficiënt dat het in de loop der jaren door andere webtechnologieën is overgenomen. Het wordt bijvoorbeeld gebruikt in de Javascript runtime omgeving. NodeJS script runtime omgeving. Bijgevolg biedt Fast CGI betere optimalisatiemogelijkheden, maar in ruil daarvoor is een duidelijke en nauwkeurige programmering vereist.

Fast CGI en dynamische websites

Fast Common Gateway Interface is de voorloper van dynamische websites. Het protocol werd in de eerste plaats ontwikkeld voor datatransmissie op het World Wide Web, en wordt daarom nu beschouwd als achterhaald en verouderd in de context van dynamische websites. In vergelijking met de huidige oplossingen, waarmee betrekkelijk gemakkelijk dynamische websites kunnen worden gemaakt, biedt F-CGI geen voordelen. Dynamische websites gebaseerd op de LAMP-Stacks bieden bijvoorbeeld niet alleen een goede gebruikerservaring, maar ook eersteklas prestaties en kunnen bovendien met de beschikbare hulpmiddelen relatief gemakkelijk worden ontwikkeld en onderhouden.

Conclusie

Fast CGI is een performant netwerkprotocol dat gebaseerd is op webtechnologie en voornamelijk Common Gateway Interface en wordt voornamelijk gebruikt als interface tussen de applicatieserver en de webserver.


Heeft u nog vragen?

Neem contact met ons op


Verdere inhoud