Bijna alles wat u in uw browser ziet, wordt via het HTTP-protocol naar uw computer verzonden. Toen u bijvoorbeeld deze artikelpagina opende, heeft uw browser veel HTTP-verzoeken(Request) verzonden en veel antwoorden(Response) ontvangen.
HTTP headers (Header) zijn een belangrijk onderdeel van deze HTTP verzoeken en antwoorden, ze geven informatie over de browser van de client, de gevraagde pagina, de server, enz.
In deze tutorial laten we zien hoe je de informatie die je nodig hebt van Request Headers. Deze tutorial laat zien hoe we de informatie waarin we geïnteresseerd zijn uit de request headers (Request Headers) en bepaalde waarden in te stellen in de noodzakelijke antwoordheaders (Response Headers).
De eenvoudigste manier om informatie over de inhoud van Request Headers is het uitvoeren van een verzoek in een gepubliceerde toepassing.
- Ga naar de ontwikkelaarstool (F12).
- Ga naar het Networks tabblad.
- Het ingediende verzoek selecteren uit de lijst.
- Ga naar de Headers tab en zoek de Request Headers sectie.
Hoe AppMaster te gebruiken voor interactie met Request-Response Headers
In de AppMasterbackend designer kunt u informatie over de request headers krijgen als de naam ervan is gespecificeerd in het Get Request Headers bedrijfsprocesblok.
- Name [string] - Naam van de kop;
- Value [string] - Header's value;
Om de aangepaste Header in het antwoord - het Set Response Header blok gebruikt.
- Name [string] - Header's naam;
- Value [string] - Waarde van de koptekst;
Er zijn vele Request Headers bestaan, maar een paar ervan worden hieronder beschreven (informatie is afkomstig van https://www.w3.org/Protocols/HTTP/HTRQ_Headers.html):
- From - In Internet mail formaat geeft dit de naam van de aanvragende gebruiker. Dit veld kan worden gebruikt voor logging doeleinden en een onveilige vorm van toegangsbeveiliging. De interpretatie van dit veld is dat het verzoek wordt uitgevoerd namens de opgegeven persoon, die de verantwoordelijkheid aanvaardt voor de uitgevoerde methode. Het internetpostadres in dit veld hoeft niet overeen te komen met de internethost die het verzoek heeft gedaan. (Wanneer een verzoek bijvoorbeeld via een gateway wordt doorgegeven, moet het adres van de oorspronkelijke verstrekker worden gebruikt). Het mailadres moet, indien mogelijk, een geldig mailadres zijn, ongeacht of het in feite een internetmailadres is of de internetmailrepresentatie van een adres op een ander mailsysteem.
- Accept - Dit veld bevat een door een puntkomma gescheiden lijst van representatieschema's ( Content-Type metainformatiewaarden) die zullen worden aanvaard in het antwoord op dit verzoek. De gegeven reeks kan natuurlijk verschillen van verzoek tot verzoek van dezelfde gebruiker.
Voorbeeld:
Accept: text/plain, text/html
Accept: text/x-dvi; q=.8; mxb=100000; mxt=5.0, text/x-c - Accept-Encoding- Gelijkaardig aan Accept, maar vermeldt de Content-Encoding types die aanvaardbaar zijn in het antwoord.
Voorbeeld:
Accept-Encoding: x-compress; x-zip - Referer - Met dit optionele headerveld kan de client ten behoeve van de server het adres ( URI ) opgeven van het document (of element in het document) waarvan de URI in het verzoek is verkregen. Hierdoor kan een server lijsten van backlinks naar documenten genereren, voor interesse, logging, enz. Slechte links kunnen worden opgespoord voor onderhoud. Als een gedeeltelijke URI wordt gegeven, moet deze worden geparseerd ten opzichte van de URI van het object van het verzoek.
Voorbeeld:
Referer: http://www.w3.org/hypertext/DataSources/Overview.html - Authorization - Als deze regel aanwezig is, bevat hij autorisatie-informatie. Het formaat is To Be Specified (TBS). Het formaat van dit veld is uitbreidbaar. Het eerste woord is een specificatie van het gebruikte machtigingssysteem.
Voorbeeld:
Autorisatie: Bearer BtHKEsVs5mNNtNf7UWoVwjJzFqLOzucA - Accept-Language - Vergelijkbaar met Accept, maar vermeldt de taalwaarden die de voorkeur genieten in het antwoord. Een antwoord in een niet-gespecificeerde taal is niet illegaal.
- User-Agent - Deze regel geeft, indien aanwezig, het softwareprogramma dat door de oorspronkelijke cliënt werd gebruikt. Dit is voor statistische doeleinden en het opsporen van protocolschendingen. Deze regel moet worden opgenomen. Het eerste woord met spaties moet de naam van het softwareproduct zijn, met een optionele schuine streep en een versieaanduiding. Andere producten die deel uitmaken van de user agent mogen als aparte woorden worden opgenomen.
Voorbeeld:
User-Agent: LII-Cello/1.0 libwww/2.5
Response Headers voorbeelden:
- Allowed - Vermeldt de reeks verzoeken die de aanvragende gebruiker voor deze URL mag doen. Als deze kopregel wordt weggelaten, zijn de standaard toegestane methoden"GET HEAD".
- Public - Als Toegestaan, maarvermeldt de verzoeken die iedereen mag gebruiken. Indien weggelaten, is de standaard alleen"GET".
- Content-Length - Impliceert dat de body binair is en direct van de communicatielink moet worden gelezen, zonder parsing van regels, enz. Wanneer de gegevens deel uitmaken van het verzoek, voorkomt dit het escapen en de-escapen van de beëindigingssequentie.
- Content-Encoding - Specificeert het gebruikte coderingsmechanisme. Momenteel worden alleen x-compress en x-gzip gebruikt.
- Content-Type - specificeert documenttype.
- Content-Length - Impliceert dat de body binair is en direct van de communicatieverbinding moet worden gelezen, zonder parsing van regels, enz. Wanneer de gegevens deel uitmaken van het verzoek, voorkomt het escapen en de-escapen van de beëindigingsreeks.
- Last-Modified - Laatste keer dat het object werd gewijzigd, d.w.z. de datum van deze versie indien het document een "levend document" is.
Laten we een voorbeeld bekijken van het verkrijgen van het IP van de gebruiker en zijn Cookie waarde uit de Request Headers.
Om het IP van de gebruiker te verkrijgen wordt x-real-ip gebruikt. Cookie Request Headers geven informatie over Cookie token.
De BP ziet er als volgt uit:
In de volgende stap moet endpoint voor deze BP worden aangemaakt
De UI ziet er zo uit:
Uiteindelijk ziet het resultaat er als volgt uit. De gebruiker krijgt de informatie uit de headers zodra op de knop wordt geklikt(onClick trigger in de workflow van de knop) en de titels van de labels worden bijgewerkt met deze informatie(Label Update Properties).