Alle der CGI (Common Gateway Interface)

Was ist CGI?

Seit Beginn der Terminologie Raber. CGI - Commom Gateway Interface ist eine Schnittstelle , die Web - Server auf Anfrage an den Browser ermöglicht es mir zu lassen , alle Programme als Ergebnis ihrer Arbeit , den Browser zu geben. CGI - Programm (Skript) - ein Programm (Skript) , die auf einem Server ausgeführt und kommuniziert mit dem Browser über die oben genannte Schnittstelle. Da es nicht eine strenge Regulierung über die Definitionen und Begriffe ist, ist es ziemlich häufig, sagen CGI, ein Ergebnis des Programms es (das Skript), aber nicht persönlich Schnittstelle.

E Wenn dieses Programm ist, muß es nur akzeptabel für ein bestimmtes Betriebssystem ausführbares Format besitzen. Programme dürfen auf irgendetwas zu kritzeln: C / C ++, Pascal, Java, Visuelle als Basic, Delphi und etc.

I f ist das Skript (Szenario), dann ist das Betriebssystem , unter dem Spin ein Web - Server das entsprechende Skript - Interpreter sein muss: shell, perl, Tcl / Tk , command.com und etc.

Herr Streb, dass razarbotka CGI - Programm (Skript) bedeutet , erfüllt die folgenden Anforderungen: - ermöglichen , von der Standardeingabe zu sagen (die stdin) - , um die Werte von Umgebungsvariablen (Umgebungsvariablen) erwerben - unterzeichnen den Standard in den Strom ein (stdout)

T o die CGI verwendet wird:

  • Arbeiten mit Referenzsystemen und Datenbanken.
  • Erstellen Sie dynamische HTML-Dokumente und Ressourcen (einschließlich Zähler, Gästebücher und so weiter)
  • Remote-Administration von unterschiedlichen Systemen.
  • Nur Arbeit mit verschiedenen Programmen, da HTML-Schnittstelle ist einfach zu bedienen, leicht herzustellen und sieht gut aus :)

Wirkmechanismus von CGI-Programmen

W ie gesagt, CGI erwirbt die Eingabedaten aus dem Standardeingabe - Stream stdin oder aus der Umgebung, sondern zeigt die Ergebnisse ihrer Arbeit zu Standard - Abschluss von stdout. Für diejenigen. die nicht wissen , was es ist: die Standardeingabestream (stdin) - daher auch das Programm (Skript) standardmäßig wird die Eingangsinformation. Typischerweise wird eine Tastatur, aber es neu zugewiesen werden kann, wie ein Programm (Skript) werden die Eingangsdaten aus einer Datei zu erwerben, eine Socket-Ausgang, der Programmstrom.

Die Umgebungsvariablen (Umgebungsvariablen) - die Variablen für das System als Server definiert, die durch CGI durchgeführt wird. .

Die Standardausgabe (stdout) - hier das Programm (Skript) zeigt die Ergebnisse ihrer Arbeit. Normalerweise ist dies "Monitor", aber es ist erlaubt, die Datei-Eingangs-Strom neu zuzuordnen ist ein Programm, Drucker usw.

D ie meisten Beispiele in diesem Handbuch ist auf der Schale geschrieben nur, um die Präsentation des Materials zu vereinfachen.

L aut krönende Trends Compliance - Sicherheit ist nicht für das Schreiben von CGI - Skripte zu verwenden , Shell empfohlen.

1.1 Aufruf CGI ohne Parameter

P Höhe Skript , das das aktuelle Datum angezeigt wird : #!/bin/sh echo Content-type: text/html echo echo "

Heute ist der "date echo"

"Der Akt der HTML - Link , um es hier so opisyvetsya <A href = http: //translate.googleusercontent.com/translate_c Tiefe = 1 & amp; hl = ru & amp; i.Vj. = hp & amp; rurl = translate.google.com & amp; sl = ru & amp; sp = nmt4 & amp; tl = de & amp; u =? http://www.shram.kiev.ua/cgi-bin/examples/today.cgi&usg=ALkJrhidnFCaN6GHoKyghfPjsDoEAi3QLQ>

WICHTIG: Der Hauptfehler, der über jeden, der CGI - Programme oder Skripte Picks kritzeln ist , dass sie das Ergebnis einzufügen vergessen , einen Zeiger auf die Art der Ausgabe - der Titel des Dokuments ausgegeben. Es ist auch ein weiteres Beispiel in der dritten Zeile.

echo Content-type: text / html Echo wo der Content-type: - Ausgabetyp handeln (text / html, image / gif , image / jpeg und so weiter).
Eine leere Zeichenkette in der Schlussfolgerung zum Ausdruck, dass der Titel zu Ende gegangen und wird durch das eigentliche Dokument persönlich gefolgt.

1.2 Übergabe von Parametern CGI-Skript oder Programm

N Übertragen von Parametern gibt ein paar grundlegende Methoden: GET und POST. Jeder von ihnen hat seine Vor- und Nachteile.

N Wenn die GET - Parameter mit dem angeforderten URL hinzugefügt , wie Sie können es auf diese Weise nennen:

http: // einige to_host / cgi-bin / to_skript einiger Parameter? , mit dem Sie für dieses Skript Referenzen in HTML-Dokumenten zu handeln. Ein Server übergebenen Parameter auf die Variable QUERY_STRING zugeordnet.

Der Text des Skripts: #!/bin/sh echo Content-type: text/html echo echo "

Sie schickte es hier:

"Echo" "set | grep QUERY_STRING echo"

"Echo" Umwelt
"Set echo" "</ code> und wie es aus dem Dokument hervorgerufen: <A href = http://translate.googleusercontent.com/translate_c?depth=1&hl=ru&prev=hp&rurl=translate.google.com&sl=ru&sp=nmt4&tl=de&u = http://www.shram.kiev.ua/cgi-bin/examples/link.cgi%3Fsome_parameters&usg=ALkJrhg9zyaMhscIojLPShXK_eUl5E-j0w> Arbeits Probe (stochern hier) </a>

H o die GET - Methode verwenden , Parameter zu übergeben mit vertraulichen Informationen nicht akzeptabel ist, da In diesem Fall werden alle die übertragene Information ist offen.

M enu POST ermöglicht Privatsphäre bei der Parameter an das Skript zu übertragen. Aber er übergibt die Parameter auf die Standardeingabestrom und dafür müssen wir das Formular verwenden. Der Server nicht EOF an das Skript am Ende der Übertragung senden. Stattdessen haben Sie die Umgebung der Variablen zu verwenden ist CONTENT_LENGTH, um zu bestimmen, welche Daten haben Sie die Kapazität von stdin berechnet werden soll.

Stichzähler

In den letzten Jahren ist die Zahl der Menschen auf Ihre Seite anhängen möchten hit counter rasendem Tempo wächst. Im Internet zu essen eine Menge von Orten, wo die Besucher alle Arten von Zählern unter jedem Betriebssystem zu nehmen, und sie auf Ihren Seiten zu binden.

E ist der Kopf Führer wird sehr nützlich sein für diejenigen , die in den Mechanismus der Arbeit interessiert sind , ist die Zähler, wie alle begleitenden Beispiele von speziellen "Wendungen" auf die Elemente der Einstellung, administreniya auch gerne nicht besitzt. Mehr "ausgetrickst", bereit, auf die Zähler Altavista usw. Yahootakzhe. Suchmaschinen suchen zu verwenden. Entweder stellen die relevanten Nachrichten Konferenzen (relcom.www.users, relcom.www.support, in fidoshnyh ehah ru.internet. *).

2.1 Arten von Zählern

P über den Mechanismus der Arbeitszähler kann in ein Paar von Typ unterteilt werden:
  1. CGI-Skripte als Server Side Include läuft
  2. CGI-Skripten sind nicht mit Server Side Include
Server Side Include (SSI) - die Art der HTML - Kommentar, der auf den Web - Server verweist, der Raum muss dynamisch generierten Daten durch einen Aufruf ersetzt werden. Die Grund SSI Aufrufformat in dem Körper eines HTML-Dokuments ist wie folgt:

<!--#command tag="value"...-->

wo #COMMAND - eines der zahlreichen Befehle , die von dem Web - Server verstanden. In diesem Fall ist das größte Interesse #exec Befehl, den Sie über die Ergebnisse ihrer Arbeit zu programmieren und zu entlarven können. Analysiert Webserver HTML - Dokumente werden vom Server verarbeiteten Dokumente genannt.

2,2 Meter Arbeitsbesuche sowohl SSI

Und der Algorithmus arbeitet:

  1. Der Server wird für ein HTML-Dokument, das die Browser-Anforderung.
  2. Der Server sucht nach dem Vorhandensein eines Aktes der SSI aufrufen.
  3. Wenn solche Anrufe detektiert werden, wird ihre Prämisse Ergebnis ersetzt. Wenn #exec Team - das Ergebnis des Arbeitsprogramms in den "Wert" angegeben.
  4. Der erzeugte HTML Akt begann an den Browser zurück.

H Erforderliche Teile Servereinstellungen (Server Beispiel der Apache ):

  1. Die srm.conf Register (wenn es noch nicht geschrieben ist): AddType text / html .shtml AddHandler server-parsed .shtml Diese Richtlinien geben die Server, die Dateien mit der Endung .shtml sind serverseitig analysierten Dokumente.
  2. Die access.conf-Datei in das Verzeichnis, in dem die Website wird in den Optionen auf serverseitig analysierten Dokumente basieren hinzufügen die Option einschließt.
  3. Dateien mit SSI ruft eine Erweiterung zuweisen Shtml (siehe. S. 1)
Wir zeigen , um den Betrieb des Zählers am Beispielskript Zähler, finden Sie online bei http://www.webtools.org/. Es ist in Perl heute so populär geschrieben.

Ab hier wird berechnet: < ! - # Exec cgi = " ! / Cgi-bin / counter" ->
(Drücken Sie die Reload ist immer noch nicht langweilig)

E - Zähler, der Text, das heißt das Skript gibt Klartext, und ein paar Shows. Ebenso auch in das Bild zu betreten. Um dies zu tun, müssen Sie den Text Zahlen zu ersetzen wurden Tags img src = "kartinka_s_sootvetsvuyuschey_tsifroy" abgeleitet. Der neugierige Leser kann sich leicht vorstellen, dass die Anzahl von Tag img src ... gleich der Anzahl der Ziffern im Wert von dem Zähler zurück.

In diesem Zähler den Körper in der Tat unter Hinweis auf Befehl ausgeführt werden : <!--#exec cgi="/cgi-bin/counter"--> - <!--#exec cgi="/cgi-bin/counter"-->

2,3 Meter nicht SSI mit

B olee ungekünstelt aus der Sicht der Nutzer, aber komplexere Programmierung Zähler mit SSI nicht. Arbeitsmechanismus eines solchen Zählers ist der folgende:

  • im HTML-Körper der Tat heißt es: &lt;Img src = / cgi-bin / Beispiele / counter.cgi&gt; dh Bildvorstellung ist nicht statisch und dynamisch von einem CGI-Skript erzeugt.
  • Server eine Anfrage zu diesem Bild empfängt, führt das Skript im src img - Tag angegeben.
  • Skript einen Zähler auf dem Stück, erzeugt ein Bild mit dem Zählerwert und gibt sie an den Browser.

P eil diese Art von Meter ist die beliebteste im Internet, dann wird der Algorithmus seine Arbeit näher betrachten.

Mit den Krypten (counter.cgi), die im Körper des HTML - Dokuments Tag img src = "... counter.cgi" geschrieben auf der Schale auch verursacht wird , hat den folgenden Quellcode (Zeilennummern zur Vereinfachung der Erläuterung nur): 1: #!/bin/sh 2: now=`date -u` 3: echo "Content-type: image/gif;" 4: echo "Expires: $now" 5: echo 6: counter|showdigits / gif "; 1: #!/bin/sh 2: now=`date -u` 3: echo "Content-type: image/gif;" 4: echo "Expires: $now" 5: echo 6: counter|showdigits

B wirkt das Skript (postrokovoe Beschreibung):
1 - Der Titel des Skripts. Er verweist auf die Schale, die es heraus tragen.

2 - Bestimmen Sie die Variable nun, die das Startskript enthält (während das Bild zu erstellen). Key '-u' sagt , dass das Datum / Zeit der Schöpfung GMT auszugeben. Warum ist dies erforderlich, wird nachstehend beschrieben.

3 - gestartet wurde anstößig Server - Header zu gestalten. Geben Sie den Rückgabetyp: image / gif

4 - Da dieser Zähler, die Sie zu Kartika zur Verfügung stellen müssen sein Zeugnis nicht im Cache gespeichert könnte (und dann , was er später in diesem Zähler :) . Um dies zu tun, geben wir, dass das resultierende Bild-Browser muss sofort zaekspayritsya. Hier befindet sich auch die Variable jetzt, in einer bestimmten Zeilennummer 2. Verfällt Essen auf diese Weise passt sich an das HTTP - Protokoll , Version 1.1. Aber wenn Sie Ablaufdatum Datum gleich der Tat die Schaffung lustige Pannen starten können, wenn die Uhr auf den Kunden hinter dem Takt-Server für ein paar Minuten. Beginnt Dilemma - Standard, so sollte es, aber es stellt sich heraus, nicht das, was wir brauchen. Was zu tun ist? In der vorherigen Version des Protokolls (HTTP 1.0) Gültig bis auf 0 stehen gelassen, aber RFC2068 sagt, dass auch auf HTTP-Caches ausgeführt Kunden 1.1 sollte die Verwendung einer Variante des alten Verfällt (Gültig bis: 0) unterstützen. So shta, liebe Russen, für sich selbst entscheiden.

5 - Ende der Einwände Titel - einen leeren String zurück.

6 - Mit Hilfe der beiden Programme (Zähler als showdigits) das Bild selbst.

C - Programmzähler showdigits auch in C geschrieben , um die Bibliothek für die Arbeit mit GIF - Dateien - libgd. Ohne es zu, wird das Programm nicht kompiliert werden. Die neueste Version der Bibliothek prkticheski immer verfügbar unter http://www.boutell.com/gd/.

W Hut sind diese Programme:

  • Zähler - aus einer Datei counter.rc Menge Lesen der vorherigen Wert des Zählers darstellt, fügt sie es und vor kritzeln yedinichku. Wenn die Route nicht in die angegebene Datei - Bilder mit Zahlen Maske auch diese Dateien, dauert es Standard, die im Körper des Programms opredelnie. Dann hat sie den Wert des Zählers und die Strecke, um Bilder auf stdout berechnet, als die Befehlszeile für showdigits erzeugt wird.
  • showdigits - das Programm wird in der Tat bildet auch ein Bild mit dem aktuellen Zählerstand. Es verwendet eine Reihe von vorgefertigten Bilder mit Figuren (gif - Format, werden alle Bilder von der gleichen Größe) wird auch von stdin Daten aus dem Zähler erhalten. Entlang der Route berutsja die Anzahl der Maske auch gewünschte Bild als eine von ihnen Hyphen wird. Dann ging er direkt zum ... stdout! Und dann leitet der Server die Strömung des Browsers, wie es ist (der Browser) zeigt es als ein Bild, wie der Titel Einwände erklärt, dass es Hyphen.
Im Wesentlichen Xia hier ist: - Der Server sendet der Browser den Datenstrom. - Browser voll sowieso, wo ebenso wie der Server nahm es Datenstrom übertragen (ob statisch oder dynamisch ist die erzeugte; normale Datei oder das Ergebnis des Skripts des Lebens), das Wesen des Browsers zu wissen, wie es richtig zu interpretieren. Denn dies ist der Titel, der in diesem Beispielskript counter.cgi generiert wurde, aber es ist in 3-5 Zeilen (siehe. Oben). Darüber hinaus erzeugt im Fall von statischen Dateiserver diesen Titel selbst, basierend auf Ihren eigenen Einstellungen, aber in dem Fall dieses CGI-Skript persönlich zu tun.

Server Side Includes

Ms. E ist klar , dass statische HTML - Dokumente - es ist gut, aber dynamisch generiert - sogar noch besser. :) Also, in diesem Kopf, sprechen wir über die Erstellung dynamischer Dokumente mit dem Server Side Includes. Gemeinsam stellen wir fest, dass die Fähigkeit SSI zu verwenden - die Fähigkeit jedes einzelnen Servers ist. Einige Server unterstützt nicht SSI, aber diejenigen, die die Möglichkeit haben, eine Vielzahl von Formaten und Befehlssätze. Also, lesen Sie in der Bedienungsanleitung für Ihren Web-Server. Alle Beispiele in diesem Kapitel sind für den Apache-Server.

3.1 Was ist SSI

H ow ist gesagt worden , vpredyduschey Kapitel, Server Side Include (SSI) Web - Server - Direktive , die der Server ermöglicht es, den Raum zu rufen alle Daten zu ersetzen. In HTML sieht der Akt des Anrufs SSI wie Kommentar-Format:

<!--#command tag="value"...-->

wo #COMMAND - entweder SSI - Direktiven vom Web - Server zu verstehen, sondern "Wert" - seine Parameter.

Inline-Daten können statisch und dynamisch generiert werden. Statische Daten bereit , wie Dateien, Textfragmente oder HTML aufgezeichnet. Diese Daten werden in dem Fall, zu welchem ​​Zeitpunkt in den verschiedenen HTML-Dokumenten platziert repetitiven bequem verwendet. Dynamische Daten die Ergebnisse der Arbeit von jedem CGI - Skript oder Betriebssystembefehle , die Web-Server - spezifische Arbeiten , auf denen generiert. Die Verwendung dieser Art von Daten bietet eine Web-Entwickler enorme Möglichkeiten. Aber, wie die Schwäche der russischen bürgerlichen Werbung - "Vergessen Sie nicht über Orbit zuckerfrei!". Ich meine, AUF MASSNAHMEN NICHT VERGESSEN , um einen sicheren Zugang zu den Angaben ergänzt werden! Der Missbrauch von SSI kann in der Möglichkeit, den unbefugten Zugriff auf Informationen und dementsprechend zu verschiedenen schwerwiegenden Folgen führen. .

3.2 Grund SSI-Direktiven

Config steuert verschiedene Aspekte der Parsen (Parsing) Dokument. Attribute: errmsg die Fehlermeldung an den Client zurückgegeben, wenn das Parsen des Dokuments ein Glitch war. sizefmt setzt das Format der Abschluss der Dateigröße (Byte, Kilobyte, Megabyte). timefmt setzt das Format der Datum / Uhrzeit der Haft. Echo druckt den Wert eines nizheopisanyh Umgebungsvariablen. Attribute: var name gedruckt Variable exec den angegebenen Befehl oder CGI - Skript ausgeführt wird . Attribute: cgi angegeben (% -Encoding) URL-relativen Pfad zu dem CGI - Skript. Wenn die Route beginnt nicht mit (/), wird angenommen, dass die Route zu dem aktuellen Dokument relativ.

CGI-Skript, da bla bla Variablen PATH_INFO übergeben und QUERY_STRING ursprünglichen Client-Anfrage.

cmd - Server führt die angegebene Zeichenfolge den Befehlsinterpreter des Betriebssystems verwenden. fsize druckt die Größe der angegebenen Datei bezüglich sizefmt. Attribute: Datei , die die Route in die Datei relativ zum aktuellen Verzeichnis gibt den analysierten Datei enthält. virtuelle Staaten (-Encoding%) URL-relativen Pfad zur Datei. Wenn die Route beginnt nicht mit (/), wird angenommen, dass die Route zu dem aktuellen Dokument relativ. flastmod drucken Sie die Datums- / Zeitänderungen in der Weiterverarbeitung der angegebenen Datei bezüglich timefmt. Attribute wie blah blah wie fsize Team. umfassen eine Textdatei oder eine andere Handlung Einsätze in der analysierten Dokument. Sehr nützlich für die sich wiederholende Fragmente in verschiedenen Dokumenten. Attribute: Datei , die die Route in die Datei angibt , ist nur relativ zum aktuellen Verzeichnis der analysierten Datei enthält. virtuelle Staaten (-Encoding%) URL-relativen Pfad zur Datei. Wenn die Route beginnt nicht mit (/), wird angenommen, dass die Route zu dem aktuellen Dokument relativ. Die Apache enthaltenen Dateien können so verschachtelt werden. printenv druckt eine Liste aller vorhandenen Variablen und deren Werte. Attribute nicht. Beispiel:
<!--#printenv --> das Set setzt den Wert der Variablen. Attribute: var name angegebenen Menge Variablen. Wert gibt den Wert der Variable gesetzt. Beispiel:
<!--#set var="variable_1" value="some_value_of_variable_1" -->

3.3 SSI-Umgebungsvariablen

DOCUMENT_NAME - Dateiname in den Körper des Dokuments: <!--#echo var="DOCUMENT_NAME" --> Verwenden Ausgang: < ! - # Echo var = " ! DOCUMENT_NAME" ->

DOCUMENT_URI - virtuellen Pfad zur Datei Beschreibung in den Körper des Dokuments: <!--#echo var="DOCUMENT_URI" --> Das Ergebnis der Verwendung: < ! - # Echo var = " ! DOCUMENT_URI" ->

QUERY_STRING_UNESCAPED - Decodierung der Query - String, mit allen Shell - Metazeichen durch "\" in den Körper des Dokuments voraus: <!--#echo var="QUERY_STRING_UNESCAPED" --> Das Ergebnis der Verwendung von: (none)

DATE_LOCAL - das aktuelle Datum und die Uhrzeit (lokal) im Körper des Dokuments: <!--#echo var="DATE_LOCAL" --> Das Ergebnis der Verwendung: < ! - # Echo var = " ! DATE_LOCAL" ->

DATE_GMT - das aktuelle Datum ist auch Zeit (GMT) in den Körper des Dokuments: <!--#echo var="DATE_GMT" --> Das Ergebnis der Verwendung: < ! - # Echo var = " ! DATE_GMT" ->

LAST_MODIFIED - das Datum und die Zeit die Zielbeschreibungsdatei im Körper des Dokuments zu ändern: <!--#echo var="LAST_MODIFIED" --> ! <!--#echo var="LAST_MODIFIED" --> Das Ergebnis der Verwendung: < ! - # Echo var = " ! LAST_MODIFIED" ->

3.4 Server-Konfiguration

T o bestellen, so serevere wissen , welche Raum zu handeln Daten verfügbar zu machen, ist er gezwungen , diese Tat zu analysieren. Analysiert Server - Dokumente werden vom Server verarbeiteten Dokumente genannt.

In erster Linie sollte den Server zu erkennen, welche Dokumente er analysiert hatte. Um dies zu tun, (ist für Apache Vermächtnis und NCSA Web-Server die Datei srm.conf, aber neue Versionen von Apache, zB 1.3.4 - httpd.conf) die Datei koniguratsii, müssen Sie die folgenden Optionen hinzu: Apache - Server:

AddType text / html .shtml &lt;br&gt; AddHandler server-parsed .shtml

NCSA-Server:

AddType text / x-Server-parsed-html .shtml Diese Parameter zum Ausdruck bringen, dass alle Dateien mit der Erweiterung Shtml sind server analysiert und vor so wie dieser Akt des Kunden - Server "zu geben" , um sie zu analysieren müssen.

Warum eine separate Erweiterung für serverseitig analysierten Dokumente angeben, - der neugierige Leser fragen. Wir beantworten. Natürlich lässt niemand eine Zeile in der Konfigurationsdatei hinzufügen

AddType text / x-Server-parsed-html .html Dies führt dazu jedoch , dass der Server alle Dokumente mit der Erweiterung untersuchen wird .html, auch wenn sie rufen SSI nicht, die Systemauslastung zu erhöhen, aber die Serverleistung zu verringern.

Wir sollten auch nicht vergessen , dass SSI Aufruf CGI - Programme erfolglos sind, weil ihre Meinung nicht vom Server analysiert wird.

Weitere Informationen zu Ihrem Server für SSI-Konfiguration lesen dokumentayiyu auf Ihrem Server verwenden.

Apps

Anhang 1. Variablen-Server-Umgebung

H ilk ist eine Liste von Schlüsselvariablen - Server - Umgebung mit einer kurzen Beschreibung naznacheniya.V diesem Fall Apache 1.2.5 Server mit integriertem PHP / FI-2.0.1. Bei anderen Web-Server (MS IIS, Netscape, NCSA httpd, usw.) Variablen variieren.

REMOTE_HOST - prikonnektivshegosya Hostnamen an den Server. Im Falle eines Proxy - der Proxy-Namen.
Beispiel: REMOTE_HOST = lom.pvrr.ru

REMOTE_ADDR - IP - Adresse des Host - Servers prikonnektivshegosya. Im Fall der Arbeit über einen Proxy - IP-Adresse des Proxy.
Beispiel: REMOTE_ADDR = 194.87.186.11

REMOTE_PORT - der Client - Portnummer.
Beispiel: REMOTE_PORT = 3381

HTTP_USER_AGENT - Name / Versionsnummer / usw. Client (Browser). manchmal diese Variable führt in einen Rausch der einzelnen Internet-Nutzer. :) Aber die Lektion ist sehr nützliche Sache. Zum Beispiel, um die automatische Erkennung russischen Kodierungen.
Beispiel: HTTP_USER_AGENT = Mozilla / 4.07 [en] (X11; I; FreeBSD 2.2.6-RELEASE i386)

HTTP_ACCEPT - Datentypen, zusätzlich zu text / html, wahrgenommen durch den Client (Browser)
Beispiel: HTTP_ACCEPT = image / gif, image / x-xbitmap, image / jpeg, image / pjpeg, image / jpeg, * / *

HTTP_ACCEPT_CHARSET - die charsety Kunde versteht die (Browser).
Beispiel: HTTP_ACCEPT_CHARSET = iso-8859-1, *, utf-8

HTTP_ACCEPT_LANGUAGE - welche Sprachen vosprinimvaet Client (Browser).
Beispiel: HTTP_ACCEPT_LANGUAGE = nl, nl-BE, ru

* * *

SERVER_NAME - Servername IN A - Datensätze in DNS entspricht, oder der Wert der Variablen Servername (oder ähnlich) in der Server - Konfiguration.
Beispiel: SERVER_NAME = arche.pvrr.ru

HTTP_HOST - Name des Servers oder virtuellen Hosts, die vom Client zugegriffen wird. Bedeutung HTTP_HOST auf den Wert SERVER_NAME gleich sein.
Beispiel: HTTP_HOST = www.pvrr.ru

SERVER_SOFTWARE - welche Software als Server verwendet wird.
Beispiel: SERVER_SOFTWARE = ​​Apache / 1.2.5 PHP / FI-2.0.1

DOCUMENT_ROOT - der Weg zum "root" von Web - Server aus dem "root" Systemdatei kopyutera , auf dem es läuft.
Beispiel: DOCUMENT_ROOT = / usr / local / www / html

HTTP_CONNECTION - Art der Verbindung.
Beispiel: HTTP_CONNECTION = keep-alive

SERVER_PROTOCOL - das Protokoll zum Austausch von Daten mit einem bestimmten Client verwendet.
Beispiel: SERVER_PROTOCOL = HTTP / 1.0

REQUEST_URI - der Name der angeforderten Ressource / Dokument, einschließlich dem Pfad von dem Web - Server root. Beim Zugriff auf das Root-Verzeichnis des Servers oder diese Variable einen Verzeichnisnamen zugeordnet ist, oder "/", wenn die Server-Root.
Beispiel: REQUEST_URI = / cgi-bin / tralala / script.cgi

DOCUMENT_URI - имя запрашиваемого ресурса/документа, включающее в себя путь от корня веб-сервера. Обычно инициализируется при вызове SSI. В отличие от REQUEST_URI эта переменная, в случае обращения к каталогу либо корню сервера получает значение содержащее также имя файла, являющегося Directory Index'ом этого каталога.
Пример: DOCUMENT_URI=/tralala/index.shtml

HTTP_REFERER - наполненный URL документа, по ссылке с которого вы попали на этот сервер. Данную переменную разрешено использовать при написании счетчиков.
Пример: HTTP_REFERER=http://lom.pvrr.ru/java/cgi/cgi_1.html

GATEWAY_INTERFACE - название/версия интерфейса, чрез какой сервер работает со скриптом.
Пример: GATEWAY_INTERFACE=CGI/1.1

SCRIPT_FILENAME - имя скрипта, содержащее наполненный маршрут от "корня" файловой системы.
Пример:SCRIPT_FILENAME=/usr/local/www/cgi-bin/tralala/script.cgi

SCRIPT_NAME - имя скрипта, содержащее маршрут от "корня" веб-сервера.
Пример: SCRIPT_NAME=/cgi-bin/tralala/script.cgi

REQUEST_METHOD - метод используемый заказчиком для передачи данных серверу. Бывают GET, HEAD, POST, PUT.
Пример: REQUEST_METHOD=GET

QUERY_STRING - этой переменной значение присваивается при передаче данных серверу методом GET
Пример: QUERY_STRING=button=on

CONTENT_LENGTH - этой переменной присваивается значение, равное количеству байт, переданных браузером серверу при использовании метода POST.
Пример: CONTENT_LENGTH=9

REMOTE_USER - имя пользователя. Передается только если аутентифицируется доступ к CGI скрипту.

PATH_INFO - дополнительная информация о маршруту, которую передал клиент. То кушать скрипт может приобретать некоторые параметры, содержащие информауцию о некотором "маршруте" к некоторым данным (например к файлу конфигурации, необходимому для отделки запроса отименно этого клиента). Этот маршрут "виртуальный" - т.е от "корня веб-сервера". Остальные данные разрешено передавать как обычно - методом GET или POST.
Пример: PATH_INFO=/some/path

PATH_TRANSLATED - то бла бла , что также PATH_INFO, только маршрут физический - "от корня файловой системы"

REMOTE_IDENT - Если HTTP сервер поддерживает идентификацию согласно RFC 931, то этой переменной присваивается имя пользователя получаемое от сервера.

SERVER_ADMIN - e-mail правителя веб-сервера.
Пример: [email protected]

SERVER_PORT - порт, какой "слушает" веб-сервер.
Пример: SERVER_PORT=80

* * *

HTTP_X_FORWARDED_FOR - в случае труда чрез прокси - IP адрес клиента, работаеющего чрез прокси.
Пример: HTTP_X_FORWARDED_FOR=194.87.186.11

HTTP_VIA - имя, номер порта, разновидность ПО прокси-сервера.
Пример: HTTP_VIA=1.0 proxy1.pvrr.ru:8080 (Squid/2.1.PATCH1)

HTTP_CACHE_CONTROL - что-то связанное с возрастом акта в кэше прокси сервера :) Лгать никак не буду - никак не знаю :)
Пример: HTTP_CACHE_CONTROL=max-age=259200