U hoeft geen tovenaar te zijn om te begrijpen hoe internet vroeger on-the-fly inhoud genereerde. Voordat moderne frameworks en JavaScript-zware apps van één pagina het overnamen, was CGI de ruggengraat van dynamische webinhoud. Gemeenschappelijke gateway-interface. Het klinkt droog. Het werkt eenvoudig.
In de kern is een CGI-script slechts een programma. Meestal geschreven in C of PERL, bevindt het zich in een specifieke map op de server, meestal genaamd cgi-bin. Wanneer een browser de URL van dat script bezoekt, stuurt de server niet alleen maar een statisch bestand terug. Het voert het programma uit. Wat dat programma ook afdrukt naar de standaarduitvoer (STDOUT), wordt rechtstreeks naar uw browser doorgestuurd.
Er is één regel die je niet kunt overtreden. Het allereerste dat het script moet verzenden is de header: Content-type: text/html\n\n. Twee nieuwe regels aan het eind. Het signaleert aan de browser: “Wat volgt is HTML.” Daarna? Alles mag. Ontwikkelaars sturen doorgaans geldige HTML-tags om ervoor te zorgen dat de pagina correct wordt weergegeven.
Formuliergegevens verwerken
Hoe weet het script welke gegevens moeten worden verwerkt? Het komt uit een HTML-formulier. U definieert een ACTION attribuut in de formuliercode die verwijst naar de URL van het CGI-script. Wanneer een gebruiker het formulier indient, worden de gegevens naar het script verzonden.
Het script moet dan het zware werk doen. Het parseert de binnenkomende strings. Het decodeert gewijzigde tekens (zoals %20 weer in een spatie veranderen). Een eenvoudig C-programma kan deze parsering aan, hoewel hiervoor handmatig geheugenbeheer en tekenreeksmanipulatie nodig is.
Als u PERL gebruikt, is het eenvoudiger. De PERL CGI-bibliotheek abstraheert de rommelige parseerlogica. U roept een functie aan en de gegevens zijn gereed. Het is schoner. Het is sneller om te schrijven.
Waar gaan de resultaten naartoe?
In een zelfstudie kunt u de resultaten mogelijk gewoon op het scherm afdrukken. In een realistisch scenario zou je die gegevens willen opslaan. Tekstbestanden? Databases? Beide werken. U kunt enquêtereacties vanuit C of PERL met minimale code aan een logbestand toevoegen. Die volharding maakt CGI nuttig buiten een simpele “Hello World”-demo.
De erfenis van CGI
We hebben in deze context de basisprincipes van C en PERL besproken. Als je dieper in de werking wilt duiken, kun je kijken hoe programmeren in C of PERL onder de motorkap werkt. Of ontdek hoe webservers deze verzoeken beheren.
Voor degenen die de standaardtekst willen overslaan, zijn er bronnen zoals cgi-lib.pl. Het is een bibliotheek die de PERL CGI-verwerking aanzienlijk vereenvoudigt. Er is ook de CGI Resource Index voor documentatie en snelle introducties tot HTML-formulieren.
Het is een oude technologie. Maar het legde het patroon vast voor de manier waarop servers met externe programma’s praten. Als u dit begrijpt, kunt u de moderne stack beter begrijpen, zelfs als u nu Python of Node.js gebruikt. De fundamentele vraag blijft hetzelfde: hoe kunnen we de input van gebruikers omzetten in een dynamisch antwoord?
Het antwoord begon met een script in een cgi-bin-map.


















