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

HTTP-Protokoll

Lassen Sie uns für die Quelle selbst herausfinden, was das allgemeine Protokoll ist. Das Protokoll ist eine bestimmte Reihe von Regeln von Schlüsselzeichen, die für die Kommunikation von Geräten untereinander bestimmt sind. Es ist notwendig, damit Computer oder ihre Elemente vom Freund eines Freundes eindeutig verstanden werden können.

Protokoll - das Sprechen von Computern im Netzwerk.

Tatsächlich kann jede Gruppe von Befehlen als Protokoll bezeichnet werden, aber in der Praxis wird das Konzept des Protokolls nur auf die sogenannten Netzwerkprotokolle angewendet - die Kommunikationssprachen von Computern im Netzwerk. Jedes Protokoll hat einen bestimmten Zweck und wird durch spezielle Software unterstützt.

URL, IP auch DNS-Adressen, Domains

Die URL (Uniform Resource Locator) ist also die vollständige Dokumentroute . URL ist die Adresse, unter der das Dokument (Datei) im Internet eindeutig gefunden werden kann. Diese Zeile, die Sie in das Feld "Adresse" Ihres Browsers eingeben, enthält auch die URL des Dokuments.

URL kann ein ziemlich anspruchsvolles Aussehen haben, auch aus verschiedenen Teilen. 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 für die Übermittlung dieses Dokuments verwendet wird, sowie den tatsächlichen Namen des Vorgangs selbst (Dateiname und Erweiterung). Die Basis (und die einzige obligatorische Freigabe für das HTTP-Protokoll) der Adresse ist der Hostname. Es bestimmt die Maschine, auf der sich der Akt befindet (im Netzwerk werden einzelne Computer Host genannt ). Jeder Computer im Netzwerk ist ein Host, hat auch einen eindeutigen Namen (in diesem Netzwerk). Im Beispiel ist rambler.ru der Name des Computers, auf dem das Dokument gefunden werden soll.

Hostnamen können auf doppelte Weise angegeben werden: Verwenden von DNS unter Verwendung einer IP-Adresse. Die IP-Adresse besteht aus vier Zahlen, die durch einen Punkt getrennt sind. Jede Zahl kann im Bereich von 0 bis 255 liegen. Zum Beispiel 192.168.2.1 .

In der Praxis ist es jedoch unbequem, IP-Adressen zu verwenden, da Zahlen schwer zu merken sind. Daher wurde das Domain Name System (DNS) eingeführt, bei dem jede IP-Adresse entweder als ein aus Buchstaben oder Ziffern bestehender Name in eine Beziehung gesetzt wird. So zum Beispiel im obigen Beispiel DNS-Name war rambler.ru , entspricht es auch IP-Adresse 217.73.192.109 .

Es sollte beachtet werden, dass unterschiedliche IP-Adressen immer verschiedenen DNS-Namen entsprechen, aber die gleichen IP-Adressen können unterschiedlichen DNS-Namen entsprechen. Zum Beispiel haben solche unterschiedlichen DNS-Namen wie www.rambler.ru und rambler.ru auch eine Blabla-IP-Adresse. URL-Adressen dürfen sowohl DNS-Namen als auch IP-Adressen verwenden. Daher sind zwei URLs http://rambler.ru/index.html ebenfalls http://217.73.192.109/index.html gleichwertig. Einige Möglichkeiten zur Angabe einer IP-Adresse sind unter http://www.xakep.ru/post/11980/default.htm beschrieben .

Beachten Sie auch, dass der Host im Prinzip keinen eigenen Domain-Namen besitzen muss. Das heißt, einige Hosts dürfen nur auf die IP-Adresse zugreifen.

Wahrscheinlich haben Sie bereits darauf geachtet, dass jeder DNS-Name aus getrennten Wörtern besteht, die durch Punkte getrennt sind. Jeder Name bezieht sich individuell auf die Domäne, zu der der Host gehört. Das gesamte DNS-System ist hierarchisch aufgebaut. Alle Domänen der 1. Ebene (com, org, ru usw.) geben die 0-Level-Stammdomäne ein (die normalerweise nicht in DNS geschrieben wird, da sie standardmäßig impliziert ist). Domänen einer anderen Ebene (z. B. Rambler, Mail oder Kiew) geben die Hauptdomänen usw. ein. Domänen in DNS werden von rechts nach links geschrieben, um den Level zu erhöhen.

Beachten wir zwei wichtige Merkmale: 1. Die Domäne ist eine rein administrative Einheit, die in keiner Weise einen Host darstellt. 2. Die IP-Adresse hängt in keiner Weise von der Domäne ab, in der sich der Host befindet.

Somit wird das Domänensystem einfach eingeführt, um Standorte nach geographischen oder objektiven Merkmalen zu klassifizieren und hat auch keine Beziehung zu dem physischen Gerät des Internet.

In der URL-Beispiel-URL legen wir explizit den Namen der index.html fest, an der wir interessiert sind. Auf jeder Site ist jedoch ein Standarddokument vorhanden. Es besitzt die Position index.html oder default.html und befindet sich ebenfalls im Stammordner der Site. Wenn wir die URL der Website eingeben, ohne den Dateinamen anzugeben, wird automatisch das Standarddokument geöffnet. Somit entspricht die Adresse http://crackchat.h1.ru der Adresse http://crackchat.h1.ru/index.html . In ähnlicher Weise bla bla wie es eine Standarddatei gibt, gibt es auch einen Standardordner. In den meisten Servern ist der Standardordner für HTTP-Dokumente der WWW- Name.

Nach dem DNS folgt auf die URL-Adresse der Name der Handlung, auf die wir uns bewerben. Es wird davon ausgegangen, dass sich diese Datei im Stammordner befindet. Wenn bla bla nicht so ist, können wir die gefüllte Route zum Akt angeben und die Unterordner über einen direkten Schrägstrich auflisten:

In diesem Beispiel greifen wir auf die Datei im Ordner cgi-bin / perl / zu . Dieser Pfad ist relativ zum Stammordner. Wenn der Pfad zum Stammordner beispielsweise f: / www ist , dann beziehen wir uns in diesem Beispiel auf die Datei f: /www/cgi-bin/perl/search.pl . In diesem Fall sollten Sie Folgendes berücksichtigen: Da die meisten Webserver auf UNIX-ähnlichen Systemen basieren, müssen Sie bei der Angabe der Route zur Datei den Unterschied der Kleinbuchstaben berücksichtigen. Wenn wir also auf die URL http://rambler.ru/CGI-BIN/perl/Search.pl zugegriffen haben, würde der Server keine solche Datei finden. Der Unterschied von eindrucksvollen Kleinbuchstaben kommt auch nur auf dem Weg zur Datei vor, DNS unterscheidet nicht zwischen Groß- und Kleinschreibung (es ist gleichbedeutend mit essen rambler.ru auch RAMBLER.RU ).

Wie bereits erwähnt, entspricht DNS einer strikt definierten IP-Adresse, bedeutet aber nicht, dass der DNS-Name dem Host entspricht, den wir adressieren. Oft besitzt der Wirt selbst Domänen von bodenlosen Ebenen in sich. Zum Beispiel ist die Site h1.ru ein Host in einer Domäne einer anderen Ebene, aber sie enthält selbst Domänen der dritten Ebene, zum Beispiel crackchat.h1.ru oder crosswords.h1.ru . Daher gehören diese Site-Paare zum gleichen Host und haben dieselbe IP-Adresse! In diesem Fall sehen die Domänen der dritten Ebene in diesem Fall wie Ordner auf der Host- Festplatte h1.ru aus , und der Zugriff darauf könnte beispielsweise erfolgen: h1.ru/crackchat/ auch h1.ru/crosswords/ . Das Zugriffswerkzeug (über eine Domäne der dritten Ebene oder über einen Plattenpfad) wird von den Servereinstellungen bestimmt.

Der Stammordner wird als Domäne angesehen und daher können die meisten URLs in den folgenden Formaten angegeben werden: wie bei der WWW-Domain (zB www.crackchat.h1.ru ) oder ohne diese ( crackchat.h1.ru ) - in diesem Fall ist der Server trotzdem leitet Sie automatisch zum Ordner www, da es standardmäßig akzeptiert wird.

Protokolle, Ports, CGI-Protokoll

Wie wir gesehen haben, besteht die URL-Adresse aus drei Hauptelementen: dem DNS-Namen, der Dateiroute und dem Protokollnamen. Wenn das erste Elementpaar das Dokument lokalisieren kann, bestimmt das Protokoll, wie auf das Dokument zugegriffen wird. Mit anderen Worten, zu welcher Zeit der Kunde versucht, das Dokument zu erhalten, ist er gezwungen, dem Server zu sagen, wie er (der Server) gezwungen ist, diese Handlung an ihn (den Client) zu übertragen. Es gibt viele verschiedene Datenübertragungsprotokolle im Netzwerk, darunter das üblichste HTTP (Hypertext Transfer Protocol), ftp (File Transfer Protocol), mailto (Präfix der Mailprotokollfamilie ), Datei (Dateizugriffsprotokoll oder Ordner). Die Art des Protokolls bestimmt, welches Programm in der Lage sein wird, Daten im Format dieses Protokolls zu verarbeiten. Internet Explorer kann also mit den Protokollen http arbeiten , auch ftp , aber kann nicht mit dem mailto- Protokoll in irgendeiner Weise arbeiten. Wenn Sie also Ihren Browser in die Adressleiste von mailto: microsoft.com eingeben , wird ein spezielles Mailprogramm gestartet, das mit diesem Protokoll arbeiten kann (z. B. Outlook Express oder The Bat!). Der Name des Protokolls wird durch das wichtigste in der URL angezeigt und muss mit einem Doppelpunkt enden. Das Register spielt keine Rolle.

Unter den Protokollen gibt es sehr bizarre zum Beispiel res oder über das Protokoll (für Interesse können Sie in die Adressleiste des Browsers die Adresse eingeben: <a href="mailto:bill@microsoft.com"> Grüße an Bill senden </a> sehen Sie auch, was passieren wird :) . Ein anderes unterhaltsames Protokoll ist ldap (versuchen Sie zum Beispiel ldap: //microsoft.com ).

Da ein Protokoll für die URL in keiner Weise alle Protokolle handeln kann. Die Protokolle über oder Javascript haben also nichts mit der vollständigen Dokumentroute zu tun, daher sind die "Adressen" mit diesen Protokollen keine URL-Adressen.

Das Protokollpräfix gibt den Kunden an, in welcher "Sprache" mit dem Server kommuniziert. Und der Kunde weiß im Voraus, welches Programm diese Kommunikation durchführen soll, was über den Server nicht zu sagen ist. Damit der Server in der erforderlichen Protokollsprache mit uns "sprechen" kann, muss er (ein Server) ein geeignetes Programm ausführen, das dieses Protokoll versteht. Ports werden verwendet, um dieses Problem zu lösen. Wenn also der DNS-Name oder die IP-Adresse die Maschine bestimmt , auf die wir uns beziehen, bestimmt der Port, auf welches Programm wir diesen Host adressieren. Ports sind mit einer Ganzzahl im Bereich von 0 bis 65535 gekennzeichnet.

Jedem Protokoll wird ein Standardport zugewiesen, über den das Serverprogramm auf Clientanforderungen wartet. Wenn der Server zum Beispiel HTTP- Protokoll unterstützt, wartet das entsprechende Serverprogramm (z. B. Apache) auf Clientanforderungen auf Port 80 (dieser Port wird standardmäßig für das HTTP- Protokoll akzeptiert). Wenn dieser Blast-Host das gleiche ftp- Protokoll unterstützt, wartet ein anderes Serverprogramm auf Anforderungen an Port 21 (dieser Port ist für das ftp- Protokoll reserviert).

Der Port, an den wir uns wenden, wird automatisch festgelegt, abhängig davon, welches Protokoll wir in der URL gewählt haben. Sie können den Port aber auch explizit angeben. Die Portnummer wird nach dem DNS-Namen oder der IP-Adresse durch einen Doppelpunkt angegeben:

In dem obigen Beispiel beziehen wir uns auf ein Programm, das auf Port 8080 "gehängt" ist, und bitten sie auch, uns eine index.html- Datei über das http- Protokoll zu geben. Wenn es auf dem Server kein solches Programm gibt (dann überwacht kein Programm die Anforderungen für Port 8080 ), wird uns der Browser eine Nachricht über die falsche URL geben.

Da standardmäßig für HTTP- Server der Port 80 akzeptiert wird, entspricht die Adresse http://rambler.ru:80 der Adresse http://rambler.ru . Hosts sind zwar grundsätzlich nicht verpflichtet, HTTP am 80. Port zu unterstützen. Der Server kann zum Beispiel auf Port 3128 konfiguriert werden, und zu diesem Zeitpunkt, um mit diesem Host über HTTP zu kommunizieren, müssen Sie die Portnummer ohne Unterbrechung angeben: http://rambler.ru:3128

Beim Zugriff auf den Server müssen Sie manchmal zusätzlich zur Adresse des Zertifikats zusätzlich die ID des Benutzers angeben, der auf den Server zugreift (oder auf den wir auf dem Server zugreifen), aber das Zugriffspasswort ist ähnlich. Mit der URL können Sie diese Informationen senden. Dazu wird dem Namen vor dem DNS ein @ -Zeichen vorangestellt, dem der Benutzername vorausgeht:

In der Regel erfordert das http- Protokoll keine Benutzeridentifizierung, aber für solche Protokolle wie ftp oder mailto ist es zwingend erforderlich. Zusätzlich zum Benutzernamen können Sie ein Zugriffspasswort angeben. Das Passwort verschwindet im Namen eines Doppelpunkts. Zum Beispiel: ftp: // masha: kasha@yahoo.com . Diese URL-Adresse fordert das Root-Verzeichnis des Hosts yahoo.com im FTP- Protokoll für den Benutzer masha mit dem kasha- Passwort an. Aber eine solche Adresse mailto: //masha@mail.ru wird verwendet, um auf das Postfach des Benutzers masha im mail.ru- Host zuzugreifen .

Der Name des Benutzers kann dem der Domäne ähneln, er besteht auch aus verschiedenen Elementen, die durch einen Punkt getrennt sind. Zum Beispiel mailto: //bill.geits@microsoft.com .

Wie bereits erwähnt, ist URL eine gefüllte Dokumentroute. Ein Akt bedeutet jede Datei, die auch als Text existieren kann (zB html oder doc oder pdf Dateien), auch ein Bild (jpg oder gif), ebenfalls ein Programm. Das http-Protokoll impliziert, dass, wenn ein Text oder ein Bild in der URL angefordert wird, sie an den Benutzer gesendet werden müssen, um sie in seinem Browser anzuzeigen. Wenn das Programm oder Skript angefordert wird, muss es jedoch auf dem Server ausgeführt werden. Das Ergebnis selbst kann entweder als Text oder als Bild vorliegen. Der Typ der resultierenden Handlung ist innerhalb des Programms selbst definiert, und der Benutzer weiß im Voraus nicht, welche Art von Dokument er durch Aufrufen des Programms erhalten wird. Das Serverprogramm wird von der üblichen URL des Programms oder Skripts selbst aufgerufen. In der Regel verwendet das Netzwerk Skripte mit den Erweiterungen .pl .php. Cgi (die ersten beiden bezeichnen Programme, die in Perl geschrieben sind, auch PHP, die letzte Erweiterung kann jedoch auf alle ausführbaren Module angewendet werden, einschließlich Perl auch PHP und EXE). Zum Beispiel URL URL http://www.rambler.ru/cgi-bin/top.cgi erfordert auf dem Host rambler.ru einige Anwendung top.cgi auch übertragen das Ergebnis der Arbeit dieser Anwendung (zB HTML-Dokument oder Bild) an den Kunden.

Von Serveranwendungen wäre es jedoch wenig sinnvoll, wenn sie keine Parameter übergeben könnten. URL erlaubt dies. Um Parameter an Serveranwendungen (auch Gateways genannt ) zu übertragen, wird ein Datenübertragungsformat verwendet, das als CGI (Common Gateway Interface) bekannt ist. In diesem Format können Sie die Eingabedaten von Programmen in einer einzigen Zeile angeben.

Im Beispiel sehen Sie, dass die URL ein Server-Gateway mit dem Namen search.pl aufruft und es als Eingabeparameter mit dem Namen user weiterleitet , ebenso den Wert von masha . Verschwindet der CGI-String aus dem Skriptnamen mit dem Task-Symbol ? . Wenn das Skript mehrere Parameter übergeben muss, werden diese nacheinander durch das & -Parser-Symbol & aufgeführt : http://rambler.ru/cgi-bin/perl/search.pl?user=masha&password=kasha .

Wir beachten Folgendes: Da die meisten WEB-Technologien auf Textdatenformaten basieren, ist es zu früh oder zu spät, um Befehle von Daten zu unterscheiden. Wenn wir beispielsweise einen bestimmten Ausdrucksparameter mit dem Wert C = A + B als CGI-Parameter übergeben wollen: http://site.com/script.cgi?expression=C=A+B, dann wird eine solche Anfrage von CGI missverstanden, da der andere Das Zeichen = wird als Trennzeichen zwischen dem Parameternamen und seinem Wert behandelt. Daher wird im CGI-Protokoll (sowie in jeder Raum-URL) eine spezielle Zeichenkodierung namens URL-Datenformat verwendet . Diese Codierung zeigt die Buchstaben des lateinischen Alphabets so an, wie sie sind, und die verbleibenden Zeichen in der Form % nn, wobei nn der hexadezimale Zeichencode ist. Zum Beispiel wird das doppelte Anführungszeichen " wie % 22 aussehen, aber das Zeichen = in % 3D. Die Ausnahme ist das Leerzeichen, das zusätzlich zur Standardkodierung % 20 ähnlich wie + codiert werden kann. .com / script.cgi? Ausdruck = C% 3DA% 2BB .

HTTP-Protokoll

HTTP (Hypertext Transfer Protocol) - das Hauptprotokoll, das im Web verwendet wird. Obwohl das Protokoll als Hypertext-Transfer-Protokoll (dh HTML) bezeichnet wird, kann das HTTP-Protokoll in der Klasse selbst verwendet werden, um praktisch alle Daten im Netzwerk zu übertragen. Diese Übertragung von Text und Bildern erfolgt auch in Dateien. Die Popularität von HTTP ist meines Erachtens mit mehreren Faktoren verbunden: Es ist die Verwendung einer hinreichend universellen URL-Adressierung, die Fähigkeit, Daten zu übertragen (sowohl vom Kunden zum Server als auch umgekehrt), aber ähnliche Arbeit im No-Line- der Kunde auch der Server, ohne Vermittler). Das HTTP-Protokoll kann als dual bezeichnet werden, in dem Sinne, dass Daten in einem Client-Server-System paarweise, sowie vom Kunden zum Server, auch vom Server zum Client, verschoben werden können. Die HTTP-Syntax selbst ist jedoch speziell darauf ausgerichtet, Daten vom Kunden zum Server zu übertragen.

Sehen wir uns also die einfachste Beispiel-HTTP-Anfrage an. Wenn im Adressfenster des Browsers die Adresse http://yandex.ru eingegeben wird, dann bestimmt der Browser die IP-Adresse des Servers yandex.ru wird es auch an den 80. Port senden wie eine 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, * / *
Accept-Language: de
Cookie: yandexuid = 2464977781018373381
User-Agent: Mozilla / 4.0 (kompatibel, MSIE 5.5, Windows 98)
Gastgeber: yandex.ru
Referer: narod.ru
Proxy-Verbindung: Keep-Alive

Die Anfrage wird im Klartext übertragen. Der erste Teil der Abfrage befindet sich in der ersten Zeile: Dies ist der Anfragetyp ( GET ), die URL des angeforderten Dokuments ( http://yandex.ru ) ist ebenfalls eine Art HTTP-Protokoll ( HTTP / 1.0 ). Die Abfrageparameter sind unten aufgeführt. Jede Zeile entspricht einem Parameter. Der Name des Parameters bewegt sich in der Quelle der Zeichenfolge, dann ist der Doppelpunkt auch der Wert des Parameters. Die Bedeutung der Parameter ist intuitiv klar, aber wir beschreiben die wichtigsten: Akzeptieren - die Art von Daten, die der Browser akzeptieren kann (in MIME-Codierung). Accept-Language ist die bevorzugte Sprache, in der der Browser Daten empfangen möchte. User-Agent - der Typ des Programms, das die Anforderung gesendet hat. Host - DNS (oder IP) Hostname, an den die Anfrage adressiert wird. Cookies sind Cookies (Daten, die vom Server auf der lokalen Festplatte des Clients gespeichert wurden, wenn dieser Host das letzte Mal besucht wurde). Referer - Host, von dessen Seite wir die Anfrage senden. So zum Beispiel, wenn wir auf der Seite http://narod.ru sind , klicken wir dort auch auf den Link http://yandex.ru , dann wird die Anfrage an den Gastgeber yandex.ru gesendet, jedoch wird das Referer- Abfragefeld den Namen des narod.ru-Hosts haben.

Der Abfrageparametersatz ist nicht festgelegt. Zusätzlich zu dem Obigen können andere Parameter vorhanden sein.

Am interessantesten sind solche Parameter wie Referer auch Cookie . Diese Parameter werden hauptsächlich dazu verwendet, den Benutzer durch den Server zu identifizieren.

Bei einer GET-Anfrage können Daten vom Kunden an den Server übertragen werden. Sie werden direkt über die URL-Adresse des CGI-Protokolls übertragen. Um beispielsweise den Chat einzugeben, 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, * / *
Accept-Language: de
Cookie: yandexuid = 2464977781018373381
User-Agent: Mozilla / 4.0 (kompatibel, MSIE 5.5, Windows 98)
Gastgeber: yandex.ru
Referer: narod.ru
Proxy-Verbindung: Keep-Alive

Wie wir sehen, enthält der Abfrage-String das Login auch das Passwort des Benutzers, das über den URL-String übergeben wurde. Diese Art der Datenübertragung zum Server ist praktisch, aber die Kapazität ist begrenzt. Extrem beeindruckende Datenfelder können nicht über die URL übertragen werden. Für solche Zwecke gibt es eine andere Art von Abfrage: die POST- Anfrage. Die POST- Anfrage ist GET sehr ähnlich, mit dem einzigen Unterschied, dass die Daten in der POST- Anfrage getrennt vom eigentlichen Anfrage-Header selbst übertragen werden. Das obige Beispiel in der POST- Version hat also die Form:

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, * / *
Accept-Language: de
Cookie: yandexuid = 2464977781018373381
User-Agent: Mozilla / 4.0 (kompatibel, MSIE 5.5, Windows 98)
Gastgeber: yandex.ru
Referer: narod.ru
Proxy-Verbindung: Keep-Alive

login = Algol & pass = Algol

Wenn wir die Daten über die Anmeldung beobachten, wird das Passwort auch separat im Anfragekörper übertragen. Der Hauptteil der Anfrage muss durch eine leere Zeichenfolge aus dem Header entfernt werden. Wenn der Server auf eine leere Zeichenfolge in der POST- Anforderung stößt, wird alles, was sich weiter bewegt, vom Anfragetext berücksichtigt (zu sendende Daten). Beachten Sie Folgendes: Das Format der Daten im Hauptteil der POST- Anfrage ist beliebig. Trotz der Tatsache, dass das am häufigsten verwendete CGI-Format, ist es optional. Die Anforderung erfordert nicht nur die Anforderung eines Anfrageteils, sondern auch die Übertragung von Daten über eine URL.

Neben dem CGI-Format werden manchmal auch eindrucksvolle Informationsmengen (zum Beispiel Dateien) übertragen. Multipart- 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
Accept-Language: de
Inhaltstyp: multipart / form-data; Grenze = --------------------------- 7d20345dc
Accept-Encoding: gzip, deflate
Benutzer-Agent: Mozilla / 4.0 (kompatibel; MSIE 5.01; Windows 98)
Gastgeber: photo.bigmir.net
Proxy-Verbindung: Keep-Alive
Pragma: kein Cache
Cookie: Ukrainisch = 2; BSX_TestCookie = Ja; rich_ad = 1; b = 1

----------------------------- 7d20345dc
Content-Disposition: Formulardaten; name = "id"

254353
----------------------------- 7d20345dc
Content-Disposition: Formulardaten; name = "d"

22
----------------------------- 7d20345dc
Content-Disposition: Formulardaten; name = "login"

Algol
----------------------------- 7d20345dc
Content-Disposition: Formulardaten; name = "passw"

Algol
----------------------------- 7d20345dc
Content-Disposition: Formulardaten; Name = "E-Mail"

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

Hochladen
----------------------------- 7d20345dc--

Lassen Sie uns die Kopfzeile beachten Content-Type: multipart / form-data; Grenze = --------------------------- 7d20345dc . Dieser Parameter drückt auf dem Server aus, dass der Kunde Daten im Multipart- Format mit einem Begrenzer überträgt --------------------------- 7d20345dc . Der Begrenzer wird vom Kunden zufällig erzeugt und ist auch notwendig, damit das Silber die verschiedenen Elemente trennen kann, die im Anfragekörper gesendet werden. Wie Sie sehen können, enthält der Textkörper mehrere Elemente, die im ASCII- Format übertragen werden (und nicht in Unicode, wie sie für CGI benötigt werden), ebenfalls durch die im Inhaltstyp- Parameter angegebene Zeile getrennt. Jede Freigabe enthält Informationen über die Art der übertragenen Daten und den Namen dieses Teils. Der Komfort des Multipart- Formats besteht darin, dass die übertragenen Daten einen unbegrenzten Wert haben und keine vorherige Codierung erfordern.

Zusätzlich zu GET- Anfragen gibt es auch andere POSTs , wie TRACE , PUT . Aber sie werden selten benutzt, und wir werden in keiner Weise auf sie eingehen.

Noch einmal werde ich darauf achten, dass ALLE vom Kunden an den Server übermittelten Informationen im Header und im Hauptteil der Anfrage enthalten sind. Auf andere Weise kann der Server keine Informationen vom Kunden über das HTTP-Protokoll empfangen.

Auf der anderen Seite kann der Server dem Kunden auch nur Informationen geben, die der Anfrage widersprechen. Jeglicher Datenaustausch in einem HTTP-Protokoll wird nur vom Client initiiert, der Server kann jedoch "nur so" nur auf Anforderung des Clients übertragen.

Wenn wir also die übertragenen Anforderungen kontrollieren können, kontrollieren wir die vom Server und vom Client empfangenen Informationen vollständig. Dies ist praktisch, da zum Ändern der übertragenen / angeforderten Daten keine HTML-Seitendateien geändert, Cookies geändert werden müssen, sondern lediglich Änderungen an der HTTP-Anfrage vorgenommen und an den Server gesendet werden müssen. Dies ist jedoch eine andere Chronik :) ...