Hva er CGI-skript og hvordan forbedrer de nettsteder?

Hva er CGI-skript og hvordan forbedrer de nettsteder? / programmering

CGI står for Common Gateway Interface. Det er en standard protokoll for webservere å utføre programmer og generere produksjon for nettlesere De beste nettleserne for Windows De beste nettleserne for Windows Hva er standard nettleser? Selv om vi er bortskjemt for valg, holder de fleste av oss til de prøvde og testede store spillerne. Hva er bedre alternativer for ressursbruk, fart og sikkerhet? Les mer . Programmet refereres til som et CGI-program (eller et CGI-skript Lagre deg selv Tid og innsats ved å automatisere GIMP med skript Lagre deg selv Tid og innsats ved å automatisere GIMP med skript Automatiske handlinger med Python-skript i GIMP kan spare deg for massevis av tid. ikke lett å komme i gang, men når du kjenner disse grunnleggende, vil du være godt på vei! Les mer). Den utfører på vegne av webserveren for å produsere utdata når en bestemt nettadresse blir bedt om av brukerens nettleser.

Fordeler med CGIer

En CGI forbedrer et nettsted på mange måter. Fra å autentisere en bruker til å gi et fullskala shoppingprogram, er CGIer selve kjernen i å gjøre nettet dynamisk og interaktivt. Følgende er noen av de viktigste fordelene med å bruke CGIer for å forbedre brukeropplevelsen.

  • Personlig til brukeren: Utgangen kan tilpasses hver bruker. For eksempel kan en bruker sjekke hans bankkontosaldoer, som kanskje må hentes fra databasen.
  • Andre typer personalisering: Brukeren kan bruke en mobiltelefon for å få tilgang til nettstedet, og utgangen må justeres for mobiltelefonoppløsningen.
  • Å gjøre oppdateringer: En oppdatering utføres som et resultat av et skjema POST (forklart nedenfor). For eksempel kan du oppdatere Facebook-statusen din.
  • Laster opp filer: En fil som er lastet opp av en bruker, trenger en CGI på serverens slutt for å håndtere filopplastingsforespørselen for å lagre filen på et bestemt sted.
  • Genererer produksjon: I tillegg til produksjonen som vises i nettleseren, tilbyr mange nettsteder ytterligere former for utdata, for eksempel Word Document, PDF, etc. Noen av disse dokumentene må kanskje genereres på fluen av CGIer, for eksempel telefonregningen eller kredittkorterklæringen.

Betjening av statiske filer vs. CGIer

En HTML-fil 17 Enkle HTML-kodeeksempler Du kan lære om 10 minutter 17 Enkle HTML-kodeeksempler Du kan lære om 10 minutter Hvis du kjenner de følgende 17 HTML-kodene (og de ekstra få som går med dem), vil du kunne lage en grunnleggende nettside fra bunnen av eller tweak koden opprettet av en app som ... Les mer (samt JavaScript Java vs JavaScript: Alt du trenger å vite Java vs JavaScript: Alt du trenger å vite Java og Javascript dele noen ting i felles, men de er mer forskjellige fra hverandre enn de er like. I dette innlegget vil vi utforske noen av disse forskjellene. Les mer og CSS 10 enkle CSS-kodeksempler du kan lære om 10 minutter 10 enkle CSS-kodeeksempler du Kan lære om 10 minutter Vi går over hvordan du lager et inline-stilark slik at du kan øve dine CSS-ferdigheter. Da flytter vi på 10 grunnleggende CSS-eksempler. Derfra er fantasien din grense! Les mer) serveres ut direkte av webserveren. Et CGI-program, derimot, utføres av webserveren når en bestemt nettadresse blir forespurt. Den brukes til å oppfylle forespørsler som trenger tilgang til dynamisk informasjon, for eksempel den som er bosatt i en database. Et eksempel er å autentisere en bruker for å tillate tilgang: Brukernavnet og passordet kan lagres i en database, og en forespørsel om å validere brukeren vil trenge tilgang til denne informasjonen. For å betjene denne forespørselen, ville webserveren utføre et CGI-program som ville slå opp informasjonen og validere brukeren.

Konfigurere webservere

En webserver kjører HTTP-serverprogramvare som gir muligheten til å vise ut HTML-filer, samt utføre CGI-programmer for å generere produksjon på fly. HTTP-serverprogramvaren er konfigurert av webserveradministratoren til å utføre bestemte programmer når nettadresser som samsvarer med bestemte mønstre, blir forespurt.

Utføre CGIer

Når en brukeres nettleser gjør en forespørsel til en bestemt nettadresse, sender nettleseren en hel haug med informasjon, i form av HTTP-overskrifter og muligens HTTP-kroppen. Noen av dette kan omfatte:

  • Nettleseren skriver
  • Brukerens navn hvis brukeren har logget inn
  • Eventuelle informasjonskapsler som tidligere er lagret av webserveren
  • Formvariabler hvis forespørselen er en POST-forespørsel

Når en CGI utføres for å oppfylle denne forespørselen, overførte serveren all denne informasjonen til CGI-programmet. CGI kan bruke noen eller all denne informasjonen til å håndtere forespørselen og tilpasse utdataene til brukeren.

Handling Form POSTs

En primær bruk av CGI er å behandle HTML-skjemaer.

En HTML-skjema er en brukerinteraksjonsenhet og gir en rekke kontroller, slik at brukeren kan gi innspill. Når brukeren klikker a Sende inn knappen (eller noe lignende) på skjemaet, samler nettleseren informasjonen i skjemaet og sender den til måladressen som er angitt i skjemaet. Webserveren påkaller vanligvis et CGI-program og sender alle innspillene samlet fra brukeren. Denne interaksjonen kalles et skjema POST, et teknisk begrep som angir metoden for å sende forminnholdet til CGI. CGI behandler forminnholdet og produserer en passende respons som skal sendes til nettleseren.

En prøve CGI

Følgende er et eksempel på CGI-program skrevet i python 5 grunner til at Python-programmering ikke er ubrukelig 5 grunner til at Python-programmering ikke er ubrukelig Python - Du enten elsker det eller du hater det. Du kan til og med svinge fra den ene enden til den andre som en pendel. Uansett, Python er et språk som er vanskelig å være ambivalent om. Les mer . Den kan distribueres til en webserver slik at den er tilgjengelig fra en nettadresse som ligner på: http://www.example.com/cgi-bin/env.cgi. Når CGI rapporterer, rapporterer CGI alle variablene det mottok i sitt miljø fra webserveren. Dette handler om så enkelt som et CGI-program kan få.

#! / usr / bin / python import os print "Innholdstype: tekst / vanlig \ n" for nøkkel inn os.environ: utskriftstast, "=> \" ", os.environ [nøkkel]," \ "" 

Utviklingen av CGIer

CGIer har vært en del av webservere siden nesten begynnelsen av nettet. Den første Internett-serveren, NCSA HTTPd Web Server, startet med støtte for kun å betjene statiske filer. Deretter ble det anerkjent at utførelse av et skript som svar på en URL-forespørsel tillot webserveren å generere dynamisk innhold, og CGI-spesifikasjonen ble født.

De tidligste CGI-programmene var enkle skript skrevet på et språk som Perl, TCL, Shell, etc. Det kan også skrives i et kompilert språk som C / C ++, men dette krevde et ekstra trinn for å kompilere programmet for å opprette kjørbare CGI.

Etter hvert som CGI-er ble mer komplekse, og brukerens krav økte, skapte webgrensesnitt: Hvor skal du begynne å lage webgrensesnitt: Hvor skal du begynne? Vi viser deg hvordan nettgrensesnitt bryter sammen, og påpeker de viktigste konseptene, verktøyene og byggeklossene som trengs for å gjør deg selv til en 21. århundre webdesigner. Les mer, det ble anerkjent at det å lage en separat CGI-prosess for å betjene hver forespørsel var ganske for tung med hensyn til minnet og CPU-overhead. Spesielt når vedlikehold av forespørselen tar mindre tid enn overhead for å skape en ny prosess.

På dette tidspunktet begynte webservere å legge inn fullblåste skriptolkere, slik at brukerforespørsler kunne håndteres i en separat tråd innenfor en enkelt webserverprosess. Dette forbedret effektiviteten av forespørselstjenesten, og reduserte responstidene.

Dette sammenfaller med ankomsten av nye språk som er spesielt utviklet for Internett, for eksempel PHP. PHP-tolken startet livet som et CGI-program selv. Som en del av forespørselsbehandling, analyserer den den forespurte filen for PHP-direktiver og utfører kommandoene der.

I dag, i tillegg til CGI-skript, er det mange teknologier som brukes til å utføre kode på serveren som svar på en forespørsel.

Bruker du CGI-skript i hvilken som helst del av bedriftens nettsted? Har du møtt noen spesielle problemer med å distribuere eller vedlikeholde CGI-skript? Diskuter nedenfor i kommentarene.

Utforsk mer om: Webutvikling.