Fast alles, was Sie in Ihrem Browser sehen, wird über das HTTP-Protokoll an Ihren Computer übertragen. Als Sie zum Beispiel diese Artikelseite geöffnet haben, hat Ihr Browser viele HTTP-Anfragen(Request) gesendet und viele Antworten(Response) erhalten.
HTTP Kopfzeilen (Header) sind ein wichtiger Teil dieser HTTP Sie übermitteln Informationen über den Browser des Clients, die angeforderte Seite, den Server usw.
In diesem Tutorial werden wir zeigen, wie man die benötigten Informationen aus Request Headers. Dieses Tutorial zeigt, wie man die Informationen, an denen wir interessiert sind, aus den Request-Headern (Request Headers) und bestimmte Werte in die notwendigen Antwort-Header (Response Headers).
Der einfachste Weg, Informationen über den Inhalt von Request Headers zu erhalten, ist, eine Anfrage in einer veröffentlichten Anwendung auszuführen.
- Rufen Sie das Entwicklerwerkzeug auf (F12).
- Wechseln Sie auf die Networks Registerkarte.
- Wählen Sie die übermittelte Anfrage aus der Liste aus.
- Wechseln Sie auf die Registerkarte Headers Registerkarte und suchen Sie den Request Headers Abschnitt.
Verwendung von AppMaster zur Interaktion mit Request-Response-Headern
Im AppMasterBackend-Designer können Sie Request-Header-Informationen abrufen, wenn ihr Name im Get Request Headers Geschäftsprozess-Block angegeben ist.
- Name [string] - Der Name der Überschrift;
- Value [string] - Wert der Überschrift;
Zum Hinzufügen der benutzerdefinierten Header in der Antwort - der Set Response Header Block verwendet.
- Name[string] - Name der Kopfzeile;
- Value[string] - Wert der Kopfzeile;
Es gibt viele Request Headers gibt es, aber einige von ihnen werden im Folgenden beschrieben (die Informationen stammen von https://www.w3.org/Protocols/HTTP/HTRQ_Headers.html):
- From - Im Internet-Mail-Format wird hier der Name des anfragenden Benutzers angegeben. Dieses Feld kann für Protokollierungszwecke und eine unsichere Form des Zugriffsschutzes verwendet werden. Die Interpretation dieses Feldes ist, dass die Anfrage im Namen der angegebenen Person durchgeführt wird, die die Verantwortung für die durchgeführte Methode übernimmt. Die Internet-Mail-Adresse in diesem Feld muss nicht mit dem Internet-Host übereinstimmen, der die Anfrage gestellt hat. (Wird eine Anfrage beispielsweise durch ein Gateway geleitet, sollte die Adresse des ursprünglichen Ausstellers verwendet werden). Die Mail-Adresse sollte, wenn möglich, eine gültige Mail-Adresse sein, unabhängig davon, ob es sich um eine Internet-Mail-Adresse oder die Internet-Mail-Darstellung einer Adresse in einem anderen Mail-System handelt.
- Accept - Dieses Feld enthält eine durch Semikolon getrennte Liste von Darstellungsschemata ( Content-Type metainformation values), die in der Antwort auf diese Anfrage akzeptiert werden. Der angegebene Satz kann natürlich von Anfrage zu Anfrage desselben Benutzers variieren.
Beispiel:
Akzeptieren: text/plain, text/html
Akzeptieren: text/x-dvi; q=.8; mxb=100000; mxt=5.0, text/x-c - Accept-Encoding- Ähnlich wie Accept, listet aber die Content-Encoding-Typen auf, die in der Antwort zulässig sind.
Beispiel:
Accept-Encoding: x-compress; x-zip - Referer - Mit diesem optionalen Header-Feld kann der Client für den Server die Adresse (URI) des Dokuments (oder eines Elements innerhalb des Dokuments) angeben, von dem der URI in der Anfrage stammt. Auf diese Weise kann ein Server Listen von Rückverweisen auf Dokumente erstellen, die von Interesse sind, protokolliert werden, usw. So können fehlerhafte Links zu Wartungszwecken aufgespürt werden. Wenn ein Teil-URI angegeben wird, sollte er relativ zum URI des Objekts der Anfrage geparst werden.
Beispiel:
Referer: http://www.w3.org/hypertext/DataSources/Overview.html - Authorization - Wenn diese Zeile vorhanden ist, enthält sie Autorisierungsinformationen. Das Format ist To Be Specified (TBS). Das Format dieses Feldes ist erweiterbar. Das erste Wort ist eine Angabe über das verwendete Autorisierungssystem.
Beispiel:
Autorisierung: Bearer BtHKEsVs5mNNtNf7UWoVwjJzFqLOzucA - Accept-Language - Ähnlich wie Accept, führt aber die Sprachwerte auf, die in der Antwort vorzuziehen sind. Eine Antwort in einer nicht spezifizierten Sprache ist nicht illegal.
- User-Agent - Diese Zeile gibt, falls vorhanden, das vom ursprünglichen Client verwendete Softwareprogramm an. Sie dient statistischen Zwecken und der Rückverfolgung von Protokollverletzungen. Sie sollte enthalten sein. Das erste durch Leerzeichen begrenzte Wort muss der Name des Softwareprodukts sein, mit einem optionalen Schrägstrich und einer Versionskennung. Andere Produkte, die Teil des User-Agents sind, können als separate Wörter eingefügt werden.
Beispiel:
Benutzer-Agent: LII-Cello/1.0 libwww/2.5
Response Headers Beispiele:
- Allowed - Listet die Menge der Anfragen auf, die der anfragende Benutzer für diese URL stellen darf. Wenn diese Kopfzeile weggelassen wird, sind die standardmäßig erlaubten Methoden"GET HEAD".
- Public - Wie Allowedbutlistet die Anfragen auf, die jeder verwenden darf. Wird sie weggelassen, ist die Vorgabe nur"GET".
- Content-Length - Bedeutet, dass der Textkörper binär ist und direkt aus der Kommunikationsverbindung gelesen werden sollte, ohne dass Zeilen usw. geparst werden. Wenn die Daten Teil der Anfrage sind, wird das Escapen und De-Escapen der Endsequenz verhindert.
- Content-Encoding - Gibt den verwendeten Kodierungsmechanismus an. Derzeit werden nur x-compress und x-gzip verwendet.
- Content-Type - gibt den Dokumenttyp an.
- Content-Length - Bedeutet, dass der Textkörper binär ist und direkt aus der Kommunikationsverbindung gelesen werden sollte, ohne dass Zeilen usw. geparst werden. Wenn die Daten Teil der Anfrage sind, verhindert dies das Escaping und De-escaping der Beendigungssequenz.
- Last-Modified - Letztes Änderungsdatum des Objekts, d. h. das Datum dieser Version, wenn das Dokument ein "lebendes Dokument" ist.
Sehen wir uns ein Beispiel an, wie man die IP des Benutzers und seinen Cookie-Wert aus den Request-Headern erhält.
Um die IP des Benutzers zu erhalten, wird x-real-ip verwendet. Cookie Request Headers liefern Cookie-Token-Informationen .
Der BP sieht so aus:
Im nächsten Schritt muss ein Endpunkt für diesen BP erstellt werden
Die Benutzeroberfläche sieht wie folgt aus:
Schließlich wird das Ergebnis unten angezeigt. Der Benutzer erhält die Informationen aus den Kopfzeilen, sobald die Schaltfläche angeklickt wird(onClick-Trigger im Workflow der Schaltfläche) und die Titel der Labels werden mit diesen Informationen aktualisiert(Label Update Properties).