Wahl der Leser
Populäre Artikel
Wir präsentieren Ihnen eine Beschreibung der Hauptaspekte des HTTP-Protokolls – eines Netzwerkprotokolls, das es Ihrem Browser von den frühen 90er Jahren bis heute ermöglichte, Webseiten zu laden. Dieser Artikel wurde für diejenigen geschrieben, die gerade erst anfangen, mit Computernetzwerken zu arbeiten und Netzwerkanwendungen zu entwickeln, und denen es immer noch schwerfällt, die offiziellen Spezifikationen alleine zu lesen.
HTTP- ein weit verbreitetes Datenübertragungsprotokoll, das ursprünglich für die Übertragung von Hypertextdokumenten gedacht war (d. h. Dokumente, die Links enthalten können, die die Navigation zu anderen Dokumenten ermöglichen).
Die Abkürzung HTTP steht für Hypertext Transfer Protocol, "Hypertext Transfer Protocol". Gemäß der OSI-Spezifikation ist HTTP ein Anwendungsprotokoll (obere, 7. Schicht). Die aktuelle Version des Protokolls, HTTP 1.1, ist in der RFC 2616-Spezifikation beschrieben.
Das HTTP-Protokoll beinhaltet die Verwendung einer Client-Server-Datenübertragungsstruktur. Die Clientanwendung generiert eine Anfrage und sendet sie an den Server. Anschließend verarbeitet die Serversoftware die Anfrage, generiert eine Antwort und sendet sie an den Client zurück. Die Client-Anwendung kann dann weiterhin andere Anfragen senden, die auf die gleiche Weise verarbeitet werden.
Eine Aufgabe, die traditionell mit dem HTTP-Protokoll gelöst wird, ist der Datenaustausch zwischen einer Benutzeranwendung, die auf Webressourcen zugreift (normalerweise ein Webbrowser) und einem Webserver. Derzeit ist es dem HTTP-Protokoll zu verdanken, dass das World Wide Web funktioniert.
HTTP wird auch häufig als Transportprotokoll für andere Protokolle der Anwendungsschicht wie SOAP, XML-RPC und WebDAV verwendet. In diesem Fall soll das HTTP-Protokoll als „Transport“ verwendet werden.
Die API vieler Softwareprodukte impliziert auch die Verwendung von HTTP für die Datenübertragung – die Daten selbst können in jedem beliebigen Format vorliegen, beispielsweise XML oder JSON.
Typischerweise erfolgt die HTTP-Datenübertragung über TCP/IP-Verbindungen. In diesem Fall verwendet die Serversoftware normalerweise den TCP-Port 80 (und wenn der Port nicht explizit angegeben ist, verwendet die Clientsoftware normalerweise standardmäßig Port 80 zum Öffnen von HTTP-Verbindungen), obwohl sie jeden anderen verwenden kann.
Nehmen wir an, er hat Folgendes in die Adressleiste eingegeben:
Http://alizar.habrahabr.ru/
Dementsprechend müssen Sie als Webbrowser nun eine Verbindung zum Webserver unter alizar.habrahabr.ru herstellen.
Dazu können Sie jedes geeignete Befehlszeilenprogramm verwenden. Beispiel: Telnet:
Telnet alizar.habrahabr.ru 80
Lassen Sie mich gleich klarstellen: Wenn Sie Ihre Meinung plötzlich ändern, drücken Sie Strg + „]“ und geben Sie dann die Eingabetaste ein. Dadurch können Sie die HTTP-Verbindung schließen. Zusätzlich zu Telnet können Sie – je nach Geschmack – auch nc (oder ncat) ausprobieren.
Nachdem Sie eine Verbindung zum Server hergestellt haben, müssen Sie eine HTTP-Anfrage senden. Das ist übrigens ganz einfach – HTTP-Anfragen können aus nur zwei Zeilen bestehen.
Um eine HTTP-Anfrage zu generieren, müssen Sie eine Startzeile erstellen und außerdem mindestens einen Header festlegen – dies ist der Host-Header, der obligatorisch ist und in jeder Anfrage vorhanden sein muss. Tatsache ist, dass die Umwandlung eines Domänennamens in eine IP-Adresse auf der Clientseite erfolgt und dementsprechend beim Öffnen einer TCP-Verbindung der Remote-Server keine Informationen darüber hat, welche Adresse für die Verbindung verwendet wurde: Es könnte zum Beispiel die Adresse alizar.habrahabr.ru, habrahabr.ru oder m.habrahabr.ru sein – und in all diesen Fällen kann die Antwort unterschiedlich sein. Tatsächlich wird jedoch in allen Fällen die Netzwerkverbindung mit dem Knoten 212.24.43.44 geöffnet, und selbst wenn beim Öffnen der Verbindung zunächst nicht diese IP-Adresse, sondern ein Domänenname angegeben wurde, wird der Server darüber nicht informiert Wie auch immer - und deshalb muss diese Adresse im Host-Header übergeben werden.
Die anfängliche (anfängliche) Anforderungszeile für HTTP 1.1 setzt sich nach dem folgenden Schema zusammen:
Zum Beispiel (eine solche Startzeile kann darauf hinweisen, dass die Hauptseite der Website angefordert wird):
Und vergessen Sie natürlich nicht, dass jede Technologie viel einfacher und klarer wird, wenn Sie sie tatsächlich nutzen.
Viel Glück und fruchtbares Lernen!
Tags: Tags hinzufügen
Ab der zweiten Version 8 der Plattform haben Benutzer und Entwickler die Möglichkeit, http-Request direkt in 1C zu verwenden. Das Programm unterstützt zwei Arten von Abfragen:
Somit wurde ein recht komfortables Tool für den Datenaustausch und die Interaktion mit Webdiensten und über http betriebenen Diensten geschaffen.
Natürlich veranschaulichen die einfachsten Beispiele für die Verwendung von Abfragen ihre Fähigkeiten viel besser als viele Beschreibungszeilen. Lass es uns versuchen:
Beginnen wir mit etwas Einfachem. In Abb..
Das Ergebnis der Ausführung dieses Codeabschnitts ist ein ziemlich großer Text, dessen letzter Abschnitt in Abb. 2 dargestellt ist.
Abb.2
In der ersten Codezeile erstellen wir ein Verbindungsobjekt zur http-Ressource. Ein Objekt kann die folgenden Eigenschaften enthalten:
Darüber hinaus verfügt das HTTPConnection-Objekt über eigene Methoden, deren Aufruf eine ausführlichere Beschreibung des Handler-Ausführungsalgorithmus ermöglicht:
In der zweiten Zeile erstellen wir eine Anfrage an die ausgewählte Site. Der Text unserer Anfrage enthält einen Schrägstrich, was bedeutet, dass wir die Hauptseite erhalten möchten. Würde dem Schrägstrich ein beliebiger Ausdruck folgen, zum Beispiel „Seite2“ oder „Nachrichten“, würden wir eine andere Seite erhalten.
Die dritte Zeile führt unsere Anfrage an den Server aus.
Im vierten zeigen wir das Ergebnis.
Stellen wir uns eine Situation vor, in der wir mithilfe der Taste „Abfragen in 1C“ programmgesteuert ein Suchergebnis über eine beliebige Suchmaschine erhalten müssen. Der für den Zugriff auf GOOGLE erforderliche Codeabschnitt ist in Abb. 3 dargestellt
Abb. 3
Hier gibt es zusätzlich zu den uns bereits bekannten Strukturen Header und Statuscode. Beschäftigen wir uns mit ihnen.
Statuscode – Standardwert, der in „Anfrage nach Kommentaren“ angegeben wird, kann die folgenden Werte annehmen:
Jede Seite hat einen Titel, in dessen Text mehrere Parameter unterschieden werden können (Abb. 4):
Diese Aufteilung wird von der SplitAddressLine-Funktion durchgeführt. Nachdem wir so eine neue Adresse erhalten haben, können wir die Seite auf unserem Computer speichern und im Standardbrowser öffnen (GetPage-Verfahren).
Abb.5
Es gibt keine neuen Funktionen oder Möglichkeiten, mit Anfragen zu arbeiten; wir erstellen tatsächlich ein Textdokument aus dem Hauptteil der Website und starten die Seite im Browser.
Wir legen die Datei im Stammverzeichnis von Laufwerk D ab und nennen sie test.
Es stellt sich natürlich die Frage: Wenn wir nicht die gesamte Website benötigen, sondern nur ihre einzelnen Elemente benötigen, kann dies dann erfolgen und wie? Ja, du kannst. Der Programmcode, der Ihnen dies ermöglicht, ist in Abb. 6 dargestellt
Abb.6
Wie Sie der Abbildung entnehmen können, befindet sich im Hauptteil der Anfrage der Code des Site-Strukturelements, das wir erhalten müssen. Dieser Teil war in unserer vorherigen Beschreibung nicht enthalten und wir müssen näher auf diesen Punkt eingehen.
Wir haben einen Browser verwendet Opera, um auf die Website zuzugreifen. Es verfügt über ein für uns wichtiges Tool: Wenn Sie mit der rechten Maustaste auf ein Element klicken, können Sie ein Kontextmenü aufrufen, darunter „Elementcode anzeigen“.
Ihm ist es zu verdanken, dass wir die Adresse erhalten können, die in der Anfrage verwendet wird (Abb. 7).
Im Gegensatz zu einfachen Get-Anfragen verfügen POST-HTTP-Anfragen über einen Textkörper, der entweder im Klartext oder in Form von Dateien mit der Erweiterung xml, Soap, JSON gespeichert werden kann. Im Netzwerk gibt es eine ganze Reihe von Tools zum Erstellen von Anforderungstexten, mit denen Sie die Ausführung bestimmter Anforderungen debuggen und überwachen können.
Um in 1C eine Anfrage mit einem bestimmten Text zu starten, verfügt das HTTP-Anfrageobjekt über die SetBodyFromString-Prozedur.
In diesem Beitrag sollen die Prinzipien der Datenübertragung im Internet anhand zweier Hauptmethoden erläutert werden: GET und POST. Ich habe es als Ergänzung zur Anleitung zum Schichtplangenerator für diejenigen geschrieben, die sich wahrscheinlich nicht für die Details interessieren ☺.
Gehen Sie zur folgenden Adresse (dies dient zur visuellen Erläuterung): http://calendarin.net/calendar.php?year=2016. Achten Sie auf die Adressleiste des Browsers: Calendarin.net/calendar.php ?Jahr=2016 Die Hauptdatei wird benannt, gefolgt von einem Fragezeichen (?) und einem „Jahr“-Parameter mit dem Wert „2016“. Alles, was auf das Fragezeichen folgt, ist also eine GET-Anfrage. Es ist einfach. Um mehr als einen Parameter zu übergeben, müssen diese durch ein kaufmännisches Und-Zeichen (&) getrennt werden. Beispiel: Calendarin.net/calendar.php ?year=2016&display=work-days-and-days-off
Die Hauptdatei wird immer noch benannt, gefolgt von einem Fragezeichen (?), dann einem „Jahr“-Parameter mit dem Wert „2016“, dann einem kaufmännischen Und-Zeichen (&) und dann einem „Anzeige“-Parameter mit dem Wert „Arbeitstage-“ und-Tage“ -frei“.
GET-Parameter können direkt in der Adressleiste des Browsers geändert werden. Wenn Sie beispielsweise den Wert „2016“ in „2017“ ändern und die Taste drücken, gelangen Sie zum Kalender für 2017.
Hierbei handelt es sich um eine verdeckte Datenübertragung (die Seitenadresse ändert sich nicht); Das heißt, Sie können nur sehen, was mithilfe eines Programms (Skripts) übertragen wurde. Beispielsweise werden im folgenden Tool zum Zählen von Zeichen in Texten die Originaldaten mit der POST-Methode übertragen: http://usefulonlinetools.com/free/character-counter.php
Wenn Sie Fragen, Anmerkungen und meine E-Mail haben, stehen wir Ihnen gerne zur Verfügung.
Neben der GET-Methode, die wir im vorherigen Beitrag besprochen haben, gibt es eine weitere Methode zum Senden einer Anfrage über das HTTP-Protokoll – die POST-Methode. Auch die POST-Methode wird in der Praxis sehr häufig eingesetzt.
Wenn wir für die Kontaktaufnahme mit dem Server über die GET-Methode nur eine Anfrage in die URL eingeben mussten, funktioniert bei der POST-Methode alles nach einem anderen Prinzip.
Um diese Art von Anfrage auszuführen, müssen wir auf die Schaltfläche mit dem Attribut „type="submit" klicken, die sich auf der Webseite befindet. Bitte beachten Sie, dass sich dieser Button im Element befindet
Wenn der Benutzer Text in das Textfeld eingibt und auf die Schaltfläche „Senden“ klickt, wird die Textvariable mit dem Wert des vom Benutzer eingegebenen Inhalts an den Server gesendet.
Diese Variable wird mit der POST-Methode gesendet.
Wenn Sie dies in das Formular schreiben:
Wenn der Benutzer Text in das Textfeld eingibt und auf die Schaltfläche „Senden“ klickt, wird die Textvariable mit dem Wert des vom Benutzer eingegebenen Inhalts an den Server gesendet. Diese Variable wird mit der POST-Methode gesendet.
Wenn Sie dies in das Formular schreiben:
In Verbindung stehende Artikel: | |
ELF- und PE-EXE-Formate So öffnen Sie eine Elf-Datei in Windows
Wenn auf Ihrem Computer ein Antivirenprogramm installiert ist ... plt-Erweiterung. Wie öffne ich plt? Warum PLT und was sind seine Vorteile?
Auf dieser Seite wird erklärt, wie Sie ganz einfach ein ... konvertieren können. Radmin – Fernverwaltung und -verwaltung von Windows-PCs Was Radmin kann
Es gibt viele Beispiele für die Fernbedienung... |