This page has been robot translated, sorry for typos if any. Original content here.

HTTP-Protokoll

Finden Sie für die Quelle selbst heraus, was ein allgemeines Protokoll ist. Ein Protokoll ist ein bestimmter Satz von Regeln, auch Schlüsselzeichen, die für die Kommunikation zwischen Geräten vorgesehen sind. Es ist notwendig, damit die Computer oder deren Elemente den Kumpel eines Freundes eindeutig erkennen können.

Protokollsprachige Computer im Netzwerk.

Tatsächlich darf jeder Befehlssatz als Protokoll bezeichnet werden, aber in der Praxis wird das Konzept eines Protokolls nur auf die sogenannten Netzwerkprotokolle angewendet - die Sprachen der Computer im Netzwerk. Jedes Protokoll besitzt eine bestimmte Zuweisung und wird von einer speziellen Software unterstützt.

URL, IP- und DNS-Adressen, Domains

Die URL (Uniform Resource Locator) ist also die vollständige Route des Dokuments . URL ist eine Adresse, mit der ein Dokument (eine Datei) im Internet eindeutig gefunden werden kann. Die Zeile, die Sie in das Fenster "Adresse" Ihres Browsers eingeben, enthält auch die URL-Adresse des Dokuments.

Die URL kann ein ziemlich raffiniertes Aussehen haben und auch aus verschiedenen Teilen bestehen. Betrachten Sie zunächst die einfachste URL:

Diese URL enthält drei Bestandteile: den Namen des Hosts, auf dem sich das Dokument befindet, den Namen des Protokolls, das zur Übertragung dieses Dokuments verwendet wird, und den tatsächlichen Namen der Handlung selbst (Dateiname plus Erweiterung). Die Basis (und der einzige erforderliche Teil für das http-Protokoll) der Adresse ist der Hostname. Es bestimmt den Rechner, auf dem sich der Act befindet (in einem Netzwerk werden einzelne Computer als Hosts bezeichnet ). Jeder Computer im Netzwerk ist ein Host und hat auch einen eindeutigen Namen (in diesem Netzwerk). Im Beispielbeispiel ist rambler.ru der Name des Computers, auf dem das Dokument gefunden werden soll.

Hostnamen können doppelt angegeben werden: unter Verwendung von DNS auch unter Verwendung einer IP-Adresse. Eine IP-Adresse besteht aus vier durch einen Punkt getrennten Zahlen. Jede Menge kann im Bereich von 0 bis 255 liegen. Zum Beispiel 192.168.2.1 .

In der Praxis ist die Verwendung von IP-Adressen jedoch unbequem, da es schwierig ist, sich Zahlen zu merken. Daher wurde ein Domain Name System (Domain Name System) eingeführt, bei dem jede IP-Adresse in eine Beziehung gesetzt wird, die aus einem oder mehreren Buchstaben oder Zahlen besteht. Im obigen Beispiel lautete der DNS-Name beispielsweise rambler.ru und entspricht auch der IP-Adresse 217.73.192.109 .

Es ist zu beachten, dass unterschiedliche DNS-Namen immer unterschiedlichen IP-Adressen entsprechen, dieselben IP-Adressen jedoch auch unterschiedlichen DNS-Namen entsprechen können. Beispielsweise haben so verschiedene DNS-Namen wie www.rambler.ru und rambler.ru auch eine bla bla IP-Adresse. URLs dürfen sowohl DNS-Namen als auch IP-Adressen verwenden. Somit sind die beiden URL-Adressen http://rambler.ru/index.html und http://217.73.192.109/index.html gleichwertig. Einige Möglichkeiten zum Festlegen der IP-Adresse sind hier beschrieben: http://www.xakep.ru/post/11980/default.htm .

Beachten Sie auch, dass der Host den Domain-Namen grundsätzlich nicht besitzen muss. Das heißt, einige Hosts dürfen nur über die IP-Adresse Kontakt aufnehmen.

Sie haben wahrscheinlich bereits darauf geachtet, dass ein DNS-Name aus einzelnen Wörtern besteht, die durch Punkte getrennt sind. Jeder Name steht für die Domain, zu der der Host gehört. Das gesamte DNS-System ist hierarchisch aufgebaut. Alle Domänen der 1. Ebene (com, org, ru usw.) sind in der Stammdomäne der 0. Ebene enthalten (die normalerweise nicht in den DNS geschrieben wird, wie dies standardmäßig gemeint ist). Die Domains eines anderen Levels (zum Beispiel Rambler, Mail oder Kiew) tragen auch die Domains des Hauptlevels ein, etc. DNS-Domänen werden von rechts nach links in der Reihenfolge der Erhöhung der Ebene geschrieben.

Wir stellen zwei wichtige Merkmale fest: 1. Die Domain ist eine rein administrative Einheit und repräsentiert auch keinen Host. 2. Die IP-Adresse ist in keiner Weise von der Domäne abhängig, in der sich der Host befindet.

Daher wurde das Domänensystem lediglich eingeführt, um Websites nach geografischen Merkmalen oder Zielmerkmalen zu klassifizieren, und es hat auch keinen Bezug zur physischen Struktur des Internets.

In der Beispiel-URL-Adresse wird der Name des für uns interessanten Vorgangs index.html explizit festgelegt. Auf jeder Site wird jedoch standardmäßig ein Dokument geöffnet. Er besitzt als Position den Namen index.html oder default.html und befindet sich ebenfalls im Stammordner der Site. Wenn wir die URL der Site eingeben, ohne den Namen der benötigten Datei anzugeben, öffnet der Server automatisch das Standardzertifikat für uns. Somit entspricht die Adresse http://crackchat.h1.ru der Adresse http://crackchat.h1.ru/index.html . Genau wie bla bla, da standardmäßig eine Datei geöffnet ist, gibt es auch einen Standardordner. Auf den meisten Servern gehört der Standardordner für HTTP-Dokumente dem WWW- Namen.

Nach dem DNS in der URL-Adresse folgt der Name der Handlung, auf die wir uns beziehen. Dies impliziert, dass sich diese Datei im Stammordner befindet. Wenn dies nicht der Fall ist, können wir den gefüllten Weg zum Vorgang angeben und die Unterordner durch den Schrägstrich auflisten:

In diesem Beispiel verweisen wir auf die Datei im Ordner cgi-bin / perl / . Dieser Pfad ist relativ zum Stammordner. Wenn der Pfad zum Stammordner beispielsweise f: / www lautet, greifen wir in unserem Beispiel auf die Datei f: /www/cgi-bin/perl/search.pl zu . Gleichzeitig ist Folgendes zu beachten: Da die meisten Webserver auf UNIX-ähnlichen Systemen basieren, sollte bei der Angabe der Route zur Datei der Unterschied zwischen Klein- und Großbuchstaben berücksichtigt werden. Wenn wir also auf die Datei unter der URL http://rambler.ru/CGI-BIN/perl/Search.pl zugegriffen hätten, hätte der Server eine solche Datei nicht gefunden. Der Unterschied zwischen den eindrucksvollen und den kleinen Buchstaben resultiert nur in der Route zu der Datei, bei der DNS wird die Groß- und Kleinschreibung nicht berücksichtigt (dann entspricht RAMBLER.RU der Adresse von rambler.ru ).

Wie bereits erwähnt, entspricht der DNS einer genau definierten IP-Adresse. Dies bedeutet jedoch nicht, dass der DNS-Name dem Host entspricht, auf den zugegriffen wird. Oft besitzt der Host selbst in sich Domänen von mehr bodenlosen Ebenen. Beispielsweise ist die Site h1.ru ein Host in einer Domäne einer anderen Ebene, sie enthält jedoch selbst Domänen der dritten Ebene, z. B. crackchat.h1.ru oder crosswords.h1.ru . Daher gehören diese Site-Paare demselben Host und haben natürlich dieselbe IP-Adresse! In diesem Fall sehen Domänen der dritten Ebene physisch einfach wie Ordner auf der Host-Festplatte h1.ru aus , und der Zugriff auf diese Domänen könnte folgendermaßen erfolgen: h1.ru/crackchat/ auch h1.ru/crosswords/ . Die Art des Zugriffs (über die Domain der 3. Ebene oder über den Festplattenpfad) wird durch die Servereinstellungen festgelegt.

Der Stammordner wird in ähnlicher Weise als Domäne betrachtet, und daher dürfen die meisten URLs in Paaren von Formaten angegeben werden: Wie bei der WWW-Domäne (z. B. www.crackchat.h1.ru ), auch ohne ( crackchat.h1.ru ) - in diesem Fall ist der Server immer noch leitet Sie automatisch zum Ordner www weiter, da dies der Standard ist.

Protokolle, Ports, CGI-Protokoll

Wie wir bereits festgestellt haben, besteht die URL-Adresse aus drei Hauptelementen: DNS-Name, Dateipfad und Protokollname. Wenn Sie das Dokument anhand der ersten beiden Elemente finden können, bestimmt das Protokoll, wie auf das Dokument zugegriffen wird. Mit anderen Worten, zu welchem ​​Zeitpunkt der Kunde versucht, das Dokument zu erhalten, ist er gezwungen, dem Server mitzuteilen, wie er (der Server) gezwungen ist, diese Handlung an ihn (den Client) zu übertragen. Es gibt viele verschiedene Datenübertragungsprotokolle im Netzwerk, von denen die häufigsten http (Hypertext Transfer Protocol), ftp (File Transfer Protocol), mailto (Präfix der Mail-Protokollfamilie) und file (File Access Protocol) sind oder Ordner). Der Protokolltyp bestimmt das Programm, das Daten im Format dieses Protokolls verarbeiten kann. Der Internet Explorer kann also mit den Protokollen http , file und ftp arbeiten , aber nicht mit dem mailto- Protokoll. Wenn Sie in Ihrem Browser die Adresszeile mailto: microsoft.com eingeben , wird daher ein spezielles Mail-Programm gestartet, das mit diesem Protokoll arbeiten kann (z. B. Outlook Express oder The Bat!). Der Name des Protokolls, der von der wichtigsten URL in der URL angegeben wird, muss ebenfalls mit einem Doppelpunkt enden. Das Register spielt keine Rolle.

Unter den Protokollen gibt es ziemlich bizarre wie res oder about protocol (bei Interesse können Sie in die Adressleiste Ihres Browsers folgendes eingeben: <a href="mailto:bill@microsoft.com"> Hallo an Bill senden </a>. Sehen Sie auch, was wird :) . Ein weiteres interessantes Protokoll ist ldap (versuchen Sie es beispielsweise mit ldap: //microsoft.com ).

Nicht alle Protokolle können als Protokoll für eine URL fungieren. Die About- oder Javascript- Protokolle haben also nichts mit der gefüllten Route des Dokuments zu tun, auch weil die "Adressen" mit diesen Protokollen keine URLs sind.

Das Protokollpräfix gibt dem Kunden an, in welcher "Sprache" die Kommunikation mit dem Server erfolgt. Und der Kunde weiß im Voraus, welches Programm diese Kommunikation durchführen soll, was über den Server unmöglich zu sagen ist. Damit der Server mit uns in der erforderlichen Protokollsprache „spricht“, muss er (der Server) das entsprechende Programm starten, das dieses Protokoll versteht. Verwenden Sie die Ports, um dieses Problem zu beheben. Wenn der DNS-Name oder die IP-Adresse den Computer definiert , auf den wir zugreifen, bestimmt der Port das Programm, auf das wir auf diesem Host zugreifen. Ports werden durch eine Ganzzahl im Bereich von 0 bis 65535 angegeben.

Jedem Protokoll ist ein Standardport zugewiesen, an dem das Serverprogramm auf Clientanforderungen wartet. Wenn der Server beispielsweise das http- Protokoll unterstützt, wartet das entsprechende Serverprogramm (z. B. Apache) auf Clientanforderungen für Port 80 (dieser Port ist der Standard für das http- Protokoll). Wenn dieser blah-Host auch das FTP- Protokoll unterstützt, wartet ein anderes Serverprogramm auf Anforderungen an Port 21 (dieser Port ist für das FTP- Protokoll reserviert).

Der Port, auf den wir zugreifen, wird automatisch bestimmt, je nachdem, welches Protokoll wir in der URL ausgewählt haben. Der Port darf aber auch explizit angeben Die Portnummer wird durch einen Doppelpunkt nach dem DNS-Namen oder der IP-Adresse angegeben:

Im obigen Beispiel verweisen wir auf ein bestimmtes Programm, das an Port 8080 "hängt". Außerdem bitten wir sie, uns die Datei index.html über das http- Protokoll zu geben. Befindet sich kein solches Programm auf dem Server (das Programm verfolgt keine Anforderungen für Port 8080 ), gibt der Browser eine Meldung über die fehlerhafte URL-Adresse aus.

Da der Port 80 für http- Server standardmäßig akzeptiert wird, entspricht die Adresse http://rambler.ru:80 der Adresse http://rambler.ru . Grundsätzlich müssen Hosts http auf Port 80 nicht unterstützen . Der Server kann zum Beispiel auf Port 3128 konfiguriert sein. Auch zu diesem Zeitpunkt müssen Sie die Portnummer ständig explizit angeben, um mit diesem Host über http zu kommunizieren: http : //rambler.ru.7312

Beim Zugriff auf den Server ist es manchmal erforderlich, zusätzlich zur Adresse der Handlung die Benutzer-ID anzugeben, die den Server adressiert (oder auf die wir auf dem Server zugreifen), aber das Zugriffspasswort ist ähnlich. Mit der URL können Sie diese Informationen weitergeben. Dem DNS-Namen wird dazu ein Präfix mit dem Benutzernamen vorangestellt:

Normalerweise erfordert das http- Protokoll keine Benutzeridentifikation, bei Protokollen wie ftp oder mailto ist dies jedoch erforderlich. Zusätzlich zum Benutzernamen kann auch ein Zugangspasswort angegeben werden. Das Passwort steht nicht mehr im Auftrag des Doppelpunkts. Zum Beispiel: ftp: // masha: kasha@yahoo.com . Diese URL fordert das FTP- Protokoll für das Stammverzeichnis des Hosts yahoo.com für den Benutzer masha mit dem Kennwort kasha an . Aber diese Adresse mailto: //masha@mail.ru wird verwendet, um auf die Mailbox des Benutzers masha auf dem mail.ru- Host zuzugreifen .

Der Name des Benutzers kann ähnlich nach dem Domain-Prinzip aufgebaut sein, auch aus verschiedenen durch einen Punkt getrennten Elementen bestehen. Zum Beispiel mailto: //bill.geits@microsoft.com .

Wie bereits erwähnt, ist die URL eine vollständige Dokumentroute. Mit dem Akt ist jede Datei gemeint, die als Text existieren kann (zum Beispiel HTML- oder Dokument- oder PDF-Dateien), auch ein Bild (jpg oder gif), auch ein Programm. Gleichzeitig impliziert das http-Protokoll, dass, wenn die URL Text oder ein Bild anfordert, diese an den Benutzer gesendet werden müssen, um sie in seinem Browser anzuzeigen. Wenn jedoch ein Programm oder ein Skript angefordert wird, müssen sie auf dem Server ausgeführt und das Ergebnis ihrer Arbeit an den Benutzer gesendet werden. Das Ergebnis selbst kann entweder in Text oder in einem Bild vorliegen. Die Art der resultierenden Handlung wird innerhalb des Programms selbst bestimmt, und der Benutzer weiß nicht im Voraus, welche Art von Dokument er durch Aufrufen des Programms erhalten wird. Das Serverprogramm wird über die übliche URL-Adresse des Programms oder Skripts selbst aufgerufen. In der Regel verwendet das Netzwerk Skripte mit den Erweiterungen .pl .php .cgi (die ersten beiden bezeichnen in Perl geschriebene Programme und PHP, die letzte Erweiterung kann jedoch auf alle ausführbaren Module angewendet werden, einschließlich Perl PHP und EXE). Für die URL-Adresse http://www.rambler.ru/cgi-bin/top.cgi muss beispielsweise eine Art top.cgi- Anwendung auf dem rambler.ru- Host ausgeführt und das Ergebnis der Arbeit dieser Anwendung (z. B. ein HTML-Dokument oder Bild) an den Kunden übertragen werden.

Bei Serveranwendungen wäre es jedoch etwas verwirrend, wenn sie keine Parameter übergeben könnten. URL erlaubt es. Zum Übertragen von Parametern an Serveranwendungen (auch als Gateways bezeichnet ) wird ein Datenübertragungsformat verwendet, das als Common Gateway Interface (CGI) bezeichnet wird. In diesem Format können Sie die Eingabedaten von Programmen in einer einzigen Zeile festlegen.

Im obigen Beispiel ruft die URL ein Server-Gateway mit dem Namen search.pl auf und sendet als Eingabe einen Parameter mit dem Namen user, der ebenfalls von masha angegeben wurde. Verschwindet die CGI-Zeichenfolge mit einer Task-Markierung aus dem Skriptnamen ? . Wenn das Skript mehrere Parameter übergeben muss, werden diese nacheinander durch das kaufmännische Und-Zeichen & aufgelistet, zum Beispiel: http://rambler.ru/cgi-bin/perl/search.pl?user=masha&password=kasha .

Wir stellen die folgende Besonderheit fest: Da die meisten WEB-Technologien auf Textdatenformaten basieren, tritt ein frühes oder spätes Problem bei der Unterscheidung von Befehlen von Daten auf. Wenn wir beispielsweise als CGI-Parameter einen bestimmten Ausdrucksparameter mit dem Wert C = A + B übergeben möchten: http://site.com/script.cgi?expression=C=A+B, wird eine solche Anforderung von CGI seit der anderen missverstanden Das Zeichen = wird als Trennzeichen zwischen dem Parameternamen und seinem Wert wahrgenommen. Daher wird im CGI-Protokoll (sowie in jedem URL-Raum) eine Sonderzeichencodierung unter dem Namen URL Data Format verwendet . Diese Codierung zeigt die Buchstaben des lateinischen Alphabets so an, wie sie sind, und die übrigen Zeichen haben die Form von % nn, wobei nn der hexadezimale Zeichencode ist. Das doppelte Anführungszeichen sieht beispielsweise aus wie % 22 , aber das Zeichen = als % 3D . Die Ausnahme ist ein Leerzeichen, das zusätzlich zur Standardcodierung % 20 auf ähnliche Weise als + codiert werden kann. Daher sollte die folgende Beispiel-URL folgendermaßen geschrieben werden: http: // site .com / script.cgi? expression = C% 3DA% 2BB .

HTTP-Protokoll

HTTP (Hypertext Transfer Protocol) ist das im Web verwendete Hauptprotokoll. Obwohl das Protokoll als Hypertext-Übertragungsprotokoll (dh HTML) bezeichnet wird, kann (und wird) im Unterricht das HTTP-Protokoll verwendet, um fast alle Daten im Netzwerk zu übertragen. Diese Übertragung umfasst auch Text- und Bilddateien. Die Popularität von HTTP hängt meiner Meinung nach mit mehreren Faktoren zusammen: Es ist die Verwendung einer ziemlich universellen URL-Adressierung, die Fähigkeit, beliebige Daten (wie vom Kunden zum Server sowie umgekehrt) zu übertragen, aber die Arbeitsweise im No-Line-Modus (d. H. Datenübertragung direkt zwischen Der Kunde ist auch ein Server (ohne Vermittler). Das HTTP-Protokoll kann als dual bezeichnet werden, in dem Sinne, dass in einem Client-Server-System Daten in verschiedene Richtungen übertragen werden können, auch von Kunde zu Server, auch von Server zu Client. Die HTTP-Syntax selbst zielt jedoch genau darauf ab, Daten vom Kunden zum Server zu übertragen.

Betrachten Sie also die einfachste HTTP-Beispielanforderung. Wenn wir die Adresse http://yandex.ru in das Adressfenster des Browsers eingeben, ermittelt der Browser die IP-Adresse des Servers. Yandex.ru sendet ihm außerdem an den 80. Port die folgende HTTP-Anfrage:

GET http://yandex.ru/ HTTP / 1.0
Akzeptieren: image / gif, image / x-xbitmap, image / jpeg, image / pjpeg, application / vnd.ms-excel, application / msword, application / vnd.ms-powerpoint, * / *
Annahmesprache: ru
Cookie: yandexuid = 2464977781018373381
User-Agent: Mozilla / 4.0 (kompatibel; MSIE 5.5; Windows 98)
Host: yandex.ru
Referer: narod.ru
Proxy-Verbindung: Keep-Alive

Die Anfrage wird im Klartext übermittelt. Der allererste Teil der Anfrage befindet sich in der ersten Zeile: Dies ist die Art der Anfrage ( GET ), die URL-Adresse des angeforderten Dokuments ( http://yandex.ru ) ist ebenfalls eine Art HTTP-Protokoll ( HTTP / 1.0 ). Im Folgenden sind die Abfrageparameter aufgeführt. Jede Zeile entspricht einem Parameter. An der Quelle des Strings wird der Name des Parameters verschoben, dann ist der Doppelpunkt auch der Wert des Parameters. Die Bedeutung der Parameter ist intuitiv klar, aber wir werden die wichtigsten beschreiben: Accept - Der Datentyp, den der Browser akzeptieren kann (in MIME-Codierung). Accept-Language ist die bevorzugte Sprache, in der der Browser Daten empfangen möchte. User-Agent - der Programmtyp, der die Anforderung gesendet hat. Host - DNS-Hostname (oder IP-Hostname), an den die Anforderung gerichtet ist. Cookies - Cookies (Daten, die vom Server auf der lokalen Festplatte des Clients gespeichert wurden, als Sie diesen Host das letzte Mal besucht haben). Referer ist der Host, von dem wir die Anfrage senden. Wenn wir uns beispielsweise auf der Seite http://narod.ru befinden und dort auch auf den Link http://yandex.ru klicken, wird die Anfrage an den Host yandex.ru gesendet. Das Feld für die Referenzabfrage hat jedoch den Hostnamen narod.ru.

Der Abfrageparametersatz ist nicht festgelegt. Zusätzlich zu den obigen können auch andere Parameter vorhanden sein.

Die interessantesten Parameter wie Referer und Cookie . Diese Parameter werden hauptsächlich verwendet, um den Benutzer durch den Server zu identifizieren.

Bei einer GET-Anforderung werden möglicherweise Daten vom Kunden an den Server gesendet. Sie werden direkt über die URL mit dem CGI-Protokoll übertragen. Um beispielsweise in den Chat zu gelangen, kann der Browser die folgende Anfrage an den Server senden:

Erhalten Sie http://chat.ru/ ? Login = Algol & pass = Algol HTTP / 1.0
Akzeptieren: image / gif, image / x-xbitmap, image / jpeg, image / pjpeg, application / vnd.ms-excel, application / msword, application / vnd.ms-powerpoint, * / *
Annahmesprache: ru
Cookie: yandexuid = 2464977781018373381
User-Agent: Mozilla / 4.0 (kompatibel; MSIE 5.5; Windows 98)
Host: yandex.ru
Referer: narod.ru
Proxy-Verbindung: Keep-Alive

Wenn wir den Abfrage-String beobachten, enthält der Login auch das Passwort des Benutzers, das über den URL-String übertragen wird. Diese Art der Datenübertragung zum Server ist praktisch, hat jedoch eine Kapazitätsbeschränkung. Sehr eindrucksvolle Datenfelder können nicht über die URL übertragen werden. Für solche Zwecke gibt es eine andere Art von Anforderung: POST- Anforderung. Eine POST- Anforderung ist GET sehr ähnlich, mit dem einzigen Unterschied, dass die Daten in der POST- Anforderung getrennt vom Anforderungsheader selbst übertragen werden. So besitzt das obige Beispiel in der POST- Version das Formular:

POST http://chat.ru/ HTTP / 1.0
Akzeptieren: image / gif, image / x-xbitmap, image / jpeg, image / pjpeg, application / vnd.ms-excel, application / msword, application / vnd.ms-powerpoint, * / *
Annahmesprache: ru
Cookie: yandexuid = 2464977781018373381
User-Agent: Mozilla / 4.0 (kompatibel; MSIE 5.5; Windows 98)
Host: yandex.ru
Referer: narod.ru
Proxy-Verbindung: Keep-Alive

login = Algol & pass = Algol

Wenn wir die Anmeldeinformationen beobachten, wird das Passwort auch separat im Anfragetext übertragen. Der Anforderungshauptteil sollte leer aus der Kopfzeile verschwinden. Wenn der Server in der POST- Anforderung auf eine leere Zeichenfolge stößt, wird alles, was er darauf bewegt, als Anforderungshauptteil (übertragene Daten) betrachtet. Beachten Sie Folgendes: Das Format der Daten im Hauptteil der POST- Anforderung ist beliebig. Obwohl das CGI-Format am häufigsten verwendet wird, ist es nicht erforderlich. Außerdem erfordert die POST- Anforderung nicht das Vorhandensein des Anforderungshauptteils, sondern kann auf ähnliche Weise Daten über die URL übertragen.

Neben dem CGI-Format können mitunter auch so genannte Datenmengen (z. B. Dateien) übertragen werden. mehrteiliges Format:

POST http://photo.bigmir.net/form.php HTTP / 1.0
Akzeptieren: image / gif, image / x-xbitmap, image / jpeg, image / pjpeg, application / vnd.ms-excel, application / msword, application / vnd.ms-powerpoint, * / *
Referer: http://photo.bigmir.net/form.php
Annahmesprache: ru
Inhaltstyp: mehrteilig / Formulardaten; Grenze = --------------------------- 7d20345dc
Accept-Encoding: gzip, deflate
User-Agent: Mozilla / 4.0 (kompatibel; MSIE 5.01; Windows 98)
Host: photo.bigmir.net
Proxy-Verbindung: Keep-Alive
Pragma: kein Cache
Plätzchen: Ukrainisch = 2; BSX_TestCookie = Ja; rich_ad = 1; b = 1

----------------------------- 7d20345dc
Inhaltsdisposition: Formulardaten; name = "id"

254353
----------------------------- 7d20345dc
Inhaltsdisposition: Formulardaten; name = "d"

22
----------------------------- 7d20345dc
Inhaltsdisposition: Formulardaten; name = "login"

Algol
----------------------------- 7d20345dc
Inhaltsdisposition: Formulardaten; name = "passw"

Algol
----------------------------- 7d20345dc
Inhaltsdisposition: Formulardaten; name = "email"

tps99@mail.ru
----------------------------- 7d20345dc
Inhaltsdisposition: Formulardaten; name = "submit"

Hinzufügen
----------------------------- 7d20345dc--

Achten Sie auf die Content-Type- Kopfzeile : multipart / form-data; Grenze = --------------------------- 7d20345dc . Dieser Parameter drückt an den Server aus, dass der Kunde Daten in einem mehrteiligen Format mit einem Begrenzer überträgt --------------------------- 7d20345dc . Der vom Kunden zufällig erzeugte Limiter ist auch notwendig, damit der Server die verschiedenen im Request-Body gesendeten Elemente trennen kann. Wie Sie sehen, enthält der Body mehrere Elemente, die im ASCII- Format (und nicht in Unicode, wie es für CGI erforderlich ist) übertragen werden und durch die im Parameter Content-Type angegebene Zeichenfolge getrennt sind. Jede Freigabe enthält Informationen über die Art der übertragenen Daten sowie den Namen dieses Teils. Der Komfort des mehrteiligen Formats besteht darin, dass die übertragenen Daten einen unbegrenzten Wert haben und auch keine vorläufige Codierung erfordern.

Neben GET- Anfragen und POST gibt es auch andere, zum Beispiel TRACE , PUT . Sie werden jedoch nur selten verwendet, und wir werden uns in keiner Weise mit ihnen befassen.

Ich werde noch einmal darauf hinweisen, dass ALLE vom Kunden an den Server übermittelten Informationen im Anforderungsheader und -text enthalten sind. Auf andere Weise kann der Server über das HTTP-Protokoll keine Informationen vom Kunden abrufen.

Auf der anderen Seite kann der Server dem Kunden Informationen auch nur als Einspruch gegen die Anfrage übermitteln. Ein etwaiger Datenaustausch im HTTP-Protokoll wird nur vom Client initiiert, der Server kann "einfach so" nichts übertragen, sondern nur auf Wunsch des Clients.

Wenn wir also in der Lage sind, die übertragenen Anforderungen zu steuern, steuern wir die vom Server und vom Client empfangenen Informationen vollständig. Dies ist praktisch, da zum Ändern der übertragenen / angeforderten Daten keine Änderung der HTML-Dateien der Seiten, keine Änderung der Cookies usw. erforderlich ist. Es reicht aus, nur Änderungen an der HTTP-Anforderung vorzunehmen und diese an den Server zu senden. Aber das ist eine andere Chronik :) ...