Dużo już googlowałem na ten temat, czytałem różne artykuły o tym nagłówku, jego zastosowaniu w Heroku i projektach opartych na Django.
Jednak w mojej głowie wciąż jest to zdezorientowane.
- Jaki jest cel tego nagłówka?
- Czy narusza prywatność użytkownika?
- Czy może pomóc w śledzeniu użytkownika?
http
http-headers
Stephan
źródło
źródło
Odpowiedzi:
Podczas korzystania z usługi sieciowej, do której mają dostęp klienci, może być trudno skorelować żądania (które klient może zobaczyć) z dziennikami serwera (które serwer może zobaczyć).
Pomysł
X-Request-ID
polega na tym, że klient może utworzyć losowy identyfikator i przekazać go do serwera. Serwer następnie dołącza ten identyfikator do każdej tworzonej instrukcji dziennika. Jeśli klient otrzyma błąd, może dołączyć identyfikator do raportu o błędzie, umożliwiając operatorowi serwera wyszukanie odpowiednich instrukcji dziennika (bez konieczności polegania na sygnaturach czasowych, adresach IP itp.).Ponieważ ten identyfikator jest generowany (losowo) przez klienta, nie zawiera żadnych poufnych informacji, a zatem nie powinien naruszać prywatności użytkownika. Ponieważ unikalny identyfikator jest tworzony na żądanie, nie pomaga również w śledzeniu użytkowników.
źródło
Cel: Idempotencja
Z identyfikatorem, który zmienia się dla każdego żądania, ale pozostaje taki sam w przypadku ponownej próby żądania, odbiorca może zapewnić, że żądanie nie zostanie przetworzone więcej niż raz.
Oto cytat od pewnego dostawcy API:
Jeśli utworzysz losowy ciąg, niepowtarzalny na żądanie , nie naruszy to Twojej prywatności ani nie umożliwi śledzenia.
Jeśli chcesz dowiedzieć się więcej o tym, co ma do zaoferowania idempotencja, przeczytaj ten wnikliwy artykuł .
NB Jak komentuje Stefan Kögl, ten nagłówek nie jest ustandaryzowany - stąd (przestarzały) przedrostek „X-”.
źródło
Wyjaśnienie za pomocą opowieści / analogii
Twój internet gra (jak zwykle), więc dzwonisz do Tellstra i czekasz na telefon bez końca…… w końcu poddajesz się i z frustracji zatrzaskujesz telefon. (To połączenie nie powiodło się. W dziennikach połączeń Tellstra znajduje się jego zapis).
„To wszystko, dzwonię do Rzecznika Praw Obywatelskich!”
Ale Obmudsman ma do przejrzenia tysiące zapisów rozmów (wszystkie nieudane zapytania Tellstra). Jeśli powiesz im, że zadzwoniłeś do Telstra i że rozmowa się nie powiodła, to nie wystarczy: skąd Rzecznik Praw Obywatelskich dowie się ze wszystkich zapisów rozmów Tellstra, która z nich była Twoja - aby można było dalej zbadać sprawę? ?
Tutaj pojawia się X-Request-ID - kiedy dzwonisz do Tellstra, podajesz losowy numer (X-Request-ID) i jest to rejestrowane w rekordach Tellstra. W ten sposób rzecznik praw obywatelskich (mając dostęp do wszystkich zapisów) będzie mógł znaleźć Twoje połączenie przychodzące, aby dowiedzieć się, co poszło nie tak.
Zastosowanie historii do HTTP
To samo dotyczy żądań http - jest to identyfikator, który pomaga Ci (jako deweloperowi zaplecza) dowiedzieć się, co poszło nie tak, gdy klient zgłasza błąd lub duży raport.
To podstawowe podsumowanie tego. Wszelkie pytania itp. Po prostu opublikuj komentarz i mam nadzieję, że to wyjaśnię.
źródło
Ten nagłówek żądania może służyć do synchronizacji. Załóżmy, że utworzyłeś listę rzeczy do zrobienia, która umożliwia korzystanie z trybu offline. Twój użytkownik tworzy 3 elementy i każdemu z nich nadawany jest unikalny identyfikator UUID w aplikacji offline. Gdy połączenie sieciowe jest dostępne, rekordy są wysyłane do serwera POST i zwracane są odpowiadające im identyfikatory wygenerowane automatycznie z bazy danych. Następnie możesz zamienić identyfikatory w swojej aplikacji (np. Atrybut „id” elementu HTML „li”).
źródło