Vad är CGI-skript och hur förbättrar de webbplatser?

Vad är CGI-skript och hur förbättrar de webbplatser? / Programmering

CGI står för Common Gateway Interface. Det är ett standardprotokoll för webbservrar att utföra program och generera produktionen för webbläsare De bästa webbläsarna för Windows De bästa webbläsarna för Windows Vad är din standardwebbläsare? Trots att vi är bortskämda för val håller majoriteten av oss fast vid de beprövade stora spelarna. Vad är bättre alternativ för resursanvändning, hastighet och säkerhet? Läs mer . Programmet kallas ett CGI-program (eller ett CGI-skript) Spara själv tid och ansträngning genom att automatisera GIMP med skript Spara tid och försök genom att automatisera GIMP med skript Automatiska åtgärder med Python-skript i GIMP kan spara dig lite tid. inte lätt att komma igång, men när du väl vet dessa grunder kommer du att vara väl på väg! Läs mer). Den utförs på webbserverns vägnar för att producera produktionen när en viss webbadress begärs av användarens webbläsare.

Fördelar med CGIs

En CGI förbättrar en webbplats på många sätt. Från att autentisera en användare för att tillhandahålla en fullskalig shoppingapplikation är CGIs själva kärnan för att göra webben dynamisk och interaktiv. Följande är några av de viktigaste fördelarna med att använda CGI: er för att förbättra användarupplevelsen.

  • Personlig till användaren: Utgången kan anpassas till varje användare. Till exempel kan en användare kontrollera sina bankkonton saldon, vilket kan behöva hämtas från databasen.
  • Andra typer av personalisering: Användaren kan använda en mobiltelefon för att komma åt webbplatsen, och utgången måste justeras för mobiltelefonupplösningen.
  • Göra uppdateringar: En uppdatering utförs som ett resultat av en blankett POST (förklaras nedan). Till exempel kan du uppdatera din Facebook-status.
  • Överföring av filer: En fil som laddas upp av en användare behöver en CGI på serverns slut för att hantera begäran om filuppladdning för att lagra filen på en viss plats.
  • Generera utgång: Utöver produktionen som visas i webbläsaren erbjuder många webbplatser ytterligare former av utdata, till exempel Word-dokument, PDF, etc. Vissa av dessa dokument kan behöva genereras på flyga av CGIs, till exempel din telefonräkning eller kreditkortsdeklaration.

Betjänar statiska filer vs CGIs

En HTML-fil 17 Enkla HTML-kodsexempel Du kan lära dig om 10 minuter 17 Enkla HTML-kodexempel Du kan lära dig om 10 minuter Om du känner till följande 17 HTML-taggar (och de extra få som går med dem) kan du skapa en grundläggande webbsida från början eller tweak koden skapad av en app som ... Läs mer (samt JavaScript Java vs JavaScript: Allt du behöver veta Java vs JavaScript: Allt du behöver veta Java och Javascript dela några saker i Vanliga, men de skiljer sig mer från varandra än de är. I det här inlägget kommer vi att undersöka några av dessa skillnader. Läs mer och CSS 10 enkla CSS-kodsexempel Du kan lära dig om 10 minuter 10 enkla CSS-kodsexempel Du Kan lära sig på 10 minuter Vi går över hur man skapar ett inline stylesheet så att du kan öva dina CSS-färdigheter. Då flyttar vi till 10 grundläggande CSS-exempel. Därifrån är din fantasi gränsen! Läs mer) serveras direkt av webbservern. Ett CGI-program, å andra sidan, exekveras av webbservern när en särskild URL begärs. Den används för att uppfylla förfrågningar som behöver tillgång till dynamisk information, t.ex. den som är bosatt i en databas. Ett exempel skulle vara att autentisera en användare för att tillåta åtkomst: användarnamnet och lösenordet kunde lagras i en databas och en begäran om att validera användaren skulle behöva komma åt denna information. För att betjäna denna förfrågan skulle webbservern utföra ett CGI-program som skulle leta upp informationen och validera användaren.

Konfigurera webbservrar

En webbserver kör HTTP-serverprogramvara, som ger möjlighet att servera HTML-filer, liksom utföra CGI-program för att generera produktionen i flygningen. HTTP-serverns programvara konfigureras av webbserverns administratör att utföra specifika program när webbadresser som matchar specifika mönster begärs.

Exekvera CGIs

När en användares webbläsare gör en begäran till en viss webbadress skickar webbläsaren en hel massa information, i form av HTTP-rubriker och eventuellt HTTP-kroppen. En del av detta kan innehålla:

  • Webbläsaren skriver
  • Användarens namn om användaren har loggat in
  • Alla cookies som tidigare lagrats av webbservern
  • Formvariabler om begäran är en POST-förfrågan

När en CGI exekveras för att uppfylla denna begäran, skickade servern vidare all denna information till CGI-programmet. CGI kan använda viss eller all denna information för att hantera begäran och anpassa utdata till användaren.

Hantering Form POSTs

En primär användning av CGIs är att bearbeta HTML-formulär.

En HTML-form är en användarinteraktionsenhet och ger en mängd olika kontroller så att användaren kan ge inmatning. När användaren klickar på a Lämna knappen (eller något liknande) i formuläret, sammanställer webbläsaren informationen i formuläret och skickar den till måladressen som anges i formuläret. Webbservern aktiverar i sin tur vanligtvis ett CGI-program och skickar all insamling som samlats in från användaren. Denna interaktion kallas en form POST, en teknisk term som anger metoden att skicka formulärinnehållet till CGI. CGI bearbetar formulärinnehållet och ger ett lämpligt svar som ska skickas till webbläsaren.

Ett prov CGI

Följande är ett CGI-program som är skrivet i python. 5 Anledningar till att Python-programmering inte är användbar. 5 Anledningar till att Python-programmering inte är användbar Python - Du älskar antingen det eller du hatar det. Du kan till och med svänga från ena änden till en annan som en pendel. Oavsett, Python är ett språk som är svårt att vara ambivalent. Läs mer . Den kan distribueras till en webbserver så att den är tillgänglig från en webbadress som liknar: http://www.example.com/cgi-bin/env.cgi. När CGI rapporterar, rapporterar CGI alla de variabler som den mottog i sin miljö från webbservern. Det handlar om så enkelt som ett CGI-program kan få.

#! / usr / bin / python import os print "Innehållstyp: text / vanligt \ n" för nyckeln i os.environ: skrivnyckel, "=> \" ", os.environ [nyckel]," \ "" 

Utvecklingen av CGIs

CGIs har varit en del av webbservrar sedan nästan början på webben. Den första någonsin webbservern, NCSA HTTPd Web Server, startade med stöd för att bara betjäna statiska filer. Därefter erkändes att exekvering av ett manus som svar på en URL-förfrågning gjorde att webbservern kunde generera dynamiskt innehåll och CGI-specifikationen föddes.

De tidigaste CGI-programmen var enkla skript som skrevs på ett språk som Perl, TCL, Shell osv. Det kan också skrivas i ett sammanställt språk som C / C ++, men det krävde ytterligare ett steg att sammanställa programmet för att skapa körbar CGI.

När CGI: er blev mer komplexa och användarnas krav ökade skapades webbgränssnitt: Var ska man börja skapa webbgränssnitt: Var ska vi börja? Vi visar hur webgränssnitt bryts ner, peka ut de nyckelkoncept, verktyg och byggstenar som behövs för att gör dig till en 21st century webbdesigner. Läs mer, det upptäcktes att skapa en separat CGI-process för att betjäna varje förfrågan var ganska för tung när det gällde minnet och CPU-överhead. Särskilt vid service av begäran tar mindre tid än omkostnaden för att skapa en ny process.

På den här tiden började webbservrar att integrera fullblåsta manuskript tolkar så att användarförfrågningar kunde hanteras i en separat tråd inom en enda webbserverprocess. Detta förbättrade effektiviteten hos begäran service och sänka svarstiderna.

Detta sammanföll med ankomsten av nya språk som är speciellt utformade för webben, som PHP. PHP tolken startade livet som ett CGI-program själv. Som en del av begäranhantering analyserar den den begärda filen för PHP-direktiv och kör kommandona där.

Idag, förutom CGI-skript, finns det många tekniker som används för att exekvera kod på servern som svar på en begäran.

Använder du CGI-skript i någon del av ditt företags webbplats? Har du mött några speciella problem med att distribuera eller behålla CGI-skript? Diskutera nedan i kommentarerna.

Utforska mer om: Webbutveckling.