Quasi tutto ciò che si vede nel browser viene trasmesso al computer attraverso il protocollo HTTP. Ad esempio, quando si è aperta la pagina di questo articolo, il browser ha inviato molte richieste HTTP(Request) e ha ricevuto molte risposte(Response).
HTTP Le intestazioni (Header) sono una parte importante di queste HTTP richieste e risposte, che trasmettono informazioni sul browser del client, sulla pagina richiesta, sul server, ecc.
In questa esercitazione mostreremo come ottenere le informazioni necessarie da Request Headers. Questo tutorial spiega come ottenere le informazioni che ci interessano dalle intestazioni delle richieste (Request Headers) e impostare determinati valori nelle intestazioni di risposta necessarie (Response Headers).
Il modo più semplice per ottenere informazioni sui contenuti di Request Headers è eseguire una richiesta in un'applicazione pubblicata.
- Andare allo strumento sviluppatore (F12).
- Passare alla scheda Networks scheda.
- Selezione della richiesta inviata dall'elenco.
- Passare alla scheda Headers e trovare la sezione Request Headers sezione.
Come utilizzare AppMaster per interagire con le intestazioni Request-Response
Nel AppMasterbackend è possibile ottenere informazioni sull'intestazione della richiesta se il suo nome è specificato nel blocco del processo aziendale. Get Request Headers del processo aziendale.
- Name [string] - Nome della testata;
- Value [string] - Valore dell'intestazione;
Per aggiungere l'intestazione personalizzata Header nella risposta, si utilizza il blocco Set Response Header si utilizza il blocco
- Name[stringa] - Nome dell'intestazione;
- Value[stringa] - Valore dell'intestazione;
Ne esistono molti Request Headers esistono, ma alcuni di essi sono descritti di seguito (le informazioni sono tratte da https://www.w3.org/Protocols/HTTP/HTRQ_Headers.html):
- From - Nel formato della posta Internet, indica il nome dell'utente richiedente. Questo campo può essere utilizzato per scopi di registrazione e per una forma non sicura di protezione dell'accesso. L'interpretazione di questo campo è che la richiesta viene eseguita per conto della persona indicata, che si assume la responsabilità del metodo eseguito. L'indirizzo di posta Internet in questo campo non deve necessariamente corrispondere all'host Internet che ha emesso la richiesta. (Ad esempio, quando una richiesta passa attraverso un gateway, si deve utilizzare l'indirizzo dell'emittente originale). L'indirizzo di posta deve essere, se possibile, un indirizzo di posta valido, sia che si tratti di un indirizzo di posta Internet o della rappresentazione di un indirizzo di un altro sistema di posta.
- Accept - Questo campo contiene un elenco separato da punto e virgola di schemi di rappresentazione ( Content-Type metainformation values) che saranno accettati nella risposta a questa richiesta. L'insieme fornito può naturalmente variare da richiesta a richiesta da parte dello stesso utente.
Esempio:
Accetta: text/plain, text/html
Accetta: text/x-dvi; q=.8; mxb=100000; mxt=5.0, text/x-c - Accept-Encoding- Simile ad Accept, ma elenca i tipi di Content-Encoding accettabili nella risposta.
Esempio:
Accept-Encoding: x-compress; x-zip - Referer - Questo campo di intestazione opzionale consente al client di specificare, a beneficio del server, l'indirizzo (URI) del documento (o dell'elemento all'interno del documento) da cui è stato ottenuto l'URI della richiesta. Ciò consente a un server di generare elenchi di link di ritorno ai documenti, per interesse, registrazione, ecc. Consente di rintracciare i collegamenti errati per la manutenzione. Se viene fornito un URI parziale, questo deve essere analizzato rispetto all'URI dell'oggetto della richiesta.
Esempio:
Referer: http://www.w3.org/hypertext/DataSources/Overview.html - Authorization - Se questa riga è presente, contiene informazioni sull'autorizzazione. Il formato è To Be Specified (TBS). Il formato di questo campo è estensibile. La prima parola è una specificazione del sistema di autorizzazione in uso.
Esempio:
Autorizzazione: Bearer BtHKEsVs5mNNtNf7UWoVwjJzFqLOzucA - Accept-Language - Simile ad Accept, ma elenca i valori di Lingua che sono preferibili nella risposta. Una risposta in una lingua non specificata non è illegale.
- User-Agent - Questa riga, se presente, indica il programma software utilizzato dal client originale. Serve a fini statistici e a tracciare le violazioni del protocollo. Deve essere inclusa. La prima parola delimitata da spazi bianchi deve essere il nome del prodotto software, con una barra opzionale e il designatore della versione. Altri prodotti che fanno parte dell'interprete possono essere inseriti come parole separate.
Esempio:
User-Agent: LII-Cello/1.0 libwww/2.5
Response Headers esempi:
- Allowed - Elenca l'insieme delle richieste che l'utente richiedente può effettuare per questo URL. Se questa riga di intestazione viene omessa, i metodi consentiti di default sono"GET HEAD".
- Public - Come Allowed, maelenca le richieste che chiunque può utilizzare. Se omesso, il metodo predefinito è solo"GET".
- Content-Length - Implica che il corpo è binario e deve essere letto direttamente dal link di comunicazione, senza analizzare le righe, ecc. Quando i dati fanno parte della richiesta, impedisce l'escape e il de-escaping della sequenza di terminazione.
- Content-Encoding - Specifica il meccanismo di codifica utilizzato. Attualmente sono in uso solo x-compress e x-gzip.
- Content-Type - specifica il tipo di documento.
- Content-Length - Implica che il corpo è binario e deve essere letto direttamente dal collegamento di comunicazione, senza analizzare le righe, ecc. Quando i dati fanno parte della richiesta, impedisce l'escape e il de-escaping della sequenza di terminazione.
- Last-Modified - Ultima volta che l'oggetto è stato modificato, cioè la data di questa versione se il documento è un "documento vivente".
Vediamo un esempio di come ottenere l'IP dell'utente e il valore del suo cookie dalle intestazioni della richiesta.
Per ottenere l'IP dell'utente si utilizza x-real-ip . Le intestazioni delle richieste di cookie forniscono informazioni sul token del cookie .
Il BP si presenta come:
Nella fase successiva si deve creare un endpoint per questo BP.
L'interfaccia utente si presenta come segue:
Infine, il risultato è mostrato di seguito. L'utente riceve le informazioni dalle intestazioni una volta che il pulsante viene cliccato( triggeronClick nel flusso di lavoro del pulsante) e i titoli delle etichette vengono aggiornati con queste informazioni(Label Update Properties).