Referentie voor CGI-omgevingsvariabelen

Openbaarmaking: Uw steun helpt de site draaiende te houden! We verdienen een verwijzingsvergoeding voor sommige van de services die we op deze pagina aanbevelen.


Oorspronkelijk was internet meestal slechts een systeem voor het verzenden en ontvangen van HTTP-verzoeken. Een browser zou vragen om een ​​pagina met een HTTP-verzoek te ontvangen en de server zou de pagina naar de browser sturen.

De pagina zelf kan dingen bevatten zoals verwijzingen naar afbeeldingen waar de browser om zou vragen met meer HTTP-verzoeken. Het was allemaal heel simpel. Maar het stond niet toe dat de verwerking door de server werd gedaan. Als resultaat werd de Common Gateway Interface (CGI) ontwikkeld.

Met CGI zou een browser een verzoek met invoer naar de server kunnen sturen, en een CGI-programma zou een webpagina terugsturen die is verwerkt op basis van de verzonden invoer. Neem een ​​vroeg voorbeeld: een CGI-programma dat informatie over chemische verbindingen heeft geretourneerd.

De browser zou een verzoek naar het CGI-programma sturen met de verbinding waarover de gebruiker wilde beschikken, en het programma zou een pagina met informatie over die verbinding terugsturen.

Uiteindelijk werden serverprogrammeertalen zoals PHP en Python ontwikkeld, maar in die tijd was CGI alles wat er was.

Toch had CGI een uniek vermogen: het was taalonafhankelijk. Als de server het programma zou kunnen uitvoeren, zou CGI het kunnen afhandelen. Het kan dus een gecompileerd C ++ -programma zijn of een geïnterpreteerd Perl-script of zo ongeveer alles.

Tegenwoordig zijn CGI-programma’s meestal legacy. Maar er zijn momenten waarop dit nog steeds de beste manier is om een ​​probleem op te lossen. Laten we de omgevingsvariabelen die de ruggengraat van het systeem vormen, eens nader bekijken.

Variabelen

Als u CGI-programmering overweegt, zijn de volgende variabelen erg handig voor het verwerken van verschillende serveraanvragen voor het verwerken van formuliergegevens, wat resulteert in krachtige en veelzijdige programma’s.

Om toegang te krijgen tot deze variabelen, moet u een vermelding ophalen uit een reeks waarden die verwijzen naar de omgeving. In Perl zou u bijvoorbeeld waarden in de $ ENV-array ophalen met behulp van omgevingsvariabele sleutels die er ongeveer als volgt uitzien:

$ ENV {$ env_var}

In het bovenstaande codefragment verwijst env_var naar een omgevingsvariabele sleutel of stringachtige SERVER_NAME. Andere programmeertalen hebben hun eigen systemen voor het beheer van omgevingsvariabelen. Controleer de referentie voor uw specifieke taal.

Dit zijn de CGI-variabelen en wat ze doen:

AUTH_TYPE

Sommige webservers beschermen de toegang tot CGI-scripts met autorisatie. De AUTH_TYPE-variabele verwijst naar het autorisatietype dat de server gebruikt om gebruikers te verifiëren.

Een mogelijke waarde voor deze variabele kan bijvoorbeeld Basic zijn, verwijzend naar basisverificatie. Merk op dat niet alle servers autorisatie ondersteunen.

INHOUD LENGTE

CONTENT_LENGTH geeft de lengte van de inhoud die via het verzoek wordt geleverd aan als het aantal bytes. Als de lengte onbekend is, wordt de variabele op -1 gezet.

CONTENT_TYPE

De variabele CONTENT_TYPE bevat het type bestand dat door het verzoek wordt geretourneerd.

Als er bijvoorbeeld een webpagina wordt aangevraagd, wordt de variabele CONTENT_TYPE ingesteld op het MIME-type text / html.

GATEWAY_INTERFACE

Als u wilt weten welke versie van de CGI-specificatie door de server wordt verwerkt, kunt u de GATEWAY_INTERFACE opvragen. Deze variabele helpt ervoor te zorgen dat u de juiste versie van de specificatie en geldige opdrachten gebruikt.

HTTP_ACCEPT

Net zoals CONTENT_TYPE de gegevens of het MIME-type levert dat wordt geleverd, somt de HTTP_ACCEPT alle mogelijke MIME-typen op die een client die het verzoek doet, kan accepteren. De lijst met typen wordt gescheiden door komma’s.

HTTP_USER_AGENT

HTTP_USER_AGENT geeft de naam van het programma dat een client gebruikt om het verzoek te verzenden.

Als een gebruiker bijvoorbeeld een CGI-script uitvoert vanuit Mozilla Firefox, zou HTTP_USER_AGENT aangeven dat de gebruiker een verzoek heeft ingediend bij de webserver via Firefox.

PATH_INFO

De variabele PATH_INFO bevat aanvullende informatie die te zien is achter de CGI-scriptnaam.

Als u bijvoorbeeld www.placeholder.com/cgi-bin/hello.pl/index.html uitvoert, dan zijn de PATH_INFO hiervoor de tekens die na de CGI-scriptnaam of /index.html in dit voorbeeld komen.

PATH_TRANSLATED

Wanneer u een adres van een CGI-script in een webbrowser typt, typt u meestal een virtueel pad in dat is toegewezen aan een fysieke locatie op de server.

Als u bijvoorbeeld naar http://www.somewebsite.com/cgi-bin/index.cgi gaat en u de PATH_TRANSLATED-variabele opvraagt, krijgt u het daadwerkelijke fysieke pad. Als u zich op een gedeelde Unix-server bevindt, kan dat /home/placeholder/public_html/cgi-bin/index.cgi zijn.

QUERY_STRING

Het is gebruikelijk om na het vraagteken query-informatie te zien die is toegevoegd aan een URL. Voor de URL http://www.placeholder.com/cgi-bin/hello.cgi?name=Leroy&exclamation = true, het aanvragen van de QUERY_STRING zou terugkeren in name = Leroy&exclamation = true wordt geretourneerd.

REMOTE_ADDR

De REMOTE_ADDR-variabele geeft het IP-adres van de clientcomputer die het verzoek doet. In wezen is REMOTE_ADDR REMOTE_HOST omgezet naar een IP-adres.

REMOTE_HOST

Webservers accepteren constant zowel verbindingen als verzoeken van klanten. De REMOTE_HOST-variabele verwijst naar de hostnaam van de client die de aanvraag uitvoert.

Als uw webhost bijvoorbeeld een verzoek van webhost2.com accepteert, wordt REMOTE_HOST gevuld met webhost2.com.

REMOTE_IDENT

De REMOTE_IDENT-variabele slaat het gebruikers-ID op dat het CGI-script uitvoert. De gebruikers-ID wordt alleen opgeslagen als het ident-proces actief is, omdat ident een antwoord retourneert dat niet alleen gebruikers-ID-informatie bevat, maar ook de naam van het besturingssysteem dat het script uitvoert.

REMOTE_USER

Als u de variabele REMOTE_USER opvraagt, krijgt u de gebruikersnaamgegevens van de entiteit die het verzoek doet. Dit is alleen geldig als authenticatie is ingeschakeld.

REQUEST_METHOD

De REQUEST_METHOD geeft het type HTTP-verzoek voltooid dat waarden bevat zoals GET, POST en PUT.

SCRIPT_NAME

Als u in plaats daarvan het virtuele pad wilt van het script dat wordt uitgevoerd, kunt u eenvoudig de variabele SCRIPT_NAME opvragen.

Als u bijvoorbeeld het script http://www.placeholder.com/cgi-bin/ping.sh uitvoert en SCRIPT_NAME ophaalt, krijgt u het virtuele pad van het script of /cgi-bin/ping.sh.

SERVER NAAM

De SERVER_NAME-variabelen geven de volledige naam van uw server.

Als u bijvoorbeeld naar deze variabele zoekt, is het resultaat de domeinnaam van de website, bijvoorbeeld www.placeholder.com.

SERVER POORT

Elke server die op internet wordt uitgevoerd, heeft zowel een adres als een poort. De server gebruikt een poort om verbindingen te accepteren en te luisteren naar verzoeken. De standaardpoort is 80, maar het kunnen ook andere nummers zijn – vooral voor gespecialiseerde toepassingen. Het opvragen van de SERVER_PORT-variabele resulteert in de waarde van de luisterpoort.

SERVER_PROTOCOL

U kunt erachter komen welk protocol een server gebruikt om verzoeken af ​​te handelen.

Als de server waarmee u werkt bijvoorbeeld het HTTP-protocol gebruikt, retourneert deze een tekenreeks als “HTTP / 1.1”, wat betekent dat de server HTTP-versie 1.1 gebruikt. In principe is de geretourneerde string in het formaat protocol / versie.

SERVER_SOFTWARE

De omgevingsvariabele SERVER_SOFTWARE bevat de naam en versie van de software die op de webserver draait.

Als u bijvoorbeeld de waarde van deze variabele uitvoert en u gebruikt een versie van Apache, krijgt u mogelijk iets dat lijkt op het volgende:

Apache 2.4.25

Conclusie

Een van de eerste stappen die u kunt nemen om CGI of het HTTP-protocol te begrijpen, is uzelf vertrouwd te maken met de onderliggende variabelen en syntaxis. Dit omvat de zojuist geschetste omgevingsvariabelen.

Hoewel CGI tegenwoordig zelden wordt gebruikt, gebruiken veel huidige webontwikkeltalen zoals PHP ook veel van deze variabelen. Als u ze leert, kunt u ook robuuste programma’s schrijven, zelfs voor de huidige talen voor webontwikkeling.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map