dass ich ZMU nicht finde im Chrome, ja - das sind ja die vordefinierten Ergebnisse die bei ZMU oder MUC erscheinen.
Dass ich aber in der Erebnisliste im Deskop - browser keine App - was "eingepielt" bekomme, welches mir andere Ergebnisse anzeigt?
Damit aus Deinem ZMU ein "München Hauptbahnhof" wird (bzw. überhaupt das Drop-Down mit der Auswahl erscheint), muss dein API-Consumer (völlig egal ob das jetzt dein Browser ist oder eine App oder ...), erstmal die Lufthansa Webseite laden.
Ich hab's mir jetzt nur flüchtig angeschaut und bin nicht tiefer eingestiegen:
Der Firefox hier meint, dass der Request für (das ist das Teil, welches Dafür verantwortlich ist, dass der Airport Dropdown erscheint)
vom granite JavaScript kommt, welches bei tags.tiqcdn.com gehosted wird.
D.h. dein Browser muss jetzt zunächst die Lufthansa Webseite korrekt verarbeiten, damit er überhaupt das granite JavaScript lädt.
Sowohl bei Dir im Browser/App als auch netzwerkseitig sind jetzt an verschiedenen Stellen Caches eingebaut, damit nicht jedes Mal alles komplett neu übertragen werden muss.
Du brauchst jetzt erstmal eine Version dieses granite JavaScripts welches zur Version der Lufthansa Webseite passt, die an deinen Browser ausgespielt wird.
Dann sollten da jetzt nicht irgendwelche Caches dazwischenfunken und letztlich könnte, je nach Browser-Settings und Cookie-Policy auch noch dort etwas dazwischenfunken.
Nachdem dein Browser das jetzt alles erfolgreich gemeistert hat, muss der oben genannte API Request durchgeführt werden. Diese Geschichte ist via Cloudflare gehosted. Je nach der Reputation Deines Browser Fingerprints könnte es sein, dass Cloudflare deinem Browser da auf die Finger gehauen hat und dich nicht durch gelassen hat.
Wenn man sich nun die Header dieser Antwort genauer anschaut, scheint auch dort ein Cache involviert zu sein:
| cf-cache-status | MISS |
| cf-ray | ...-LAX |
Was könnte jetzt genauso gut passiert sein: irgendwer vor Dir (aber in naher geografischer Region), aber maximal 3600 Sekunden (weil das ist die maximale Cache-Zeit die zumindest zum Client kommuniziert wird; aber keine Ahnung was intern genutzt wurde) vor Dir, könnte nun eine ähnliche Abfrage gestartet haben, für die das Lufthansa Backend irgendwelchen Quark (oder nichts) zurückgeliefert hat. Es ist möglich, dass dieser Zustand im Cache gespeichert war. - Die Kiste braucht bei nem Cache-Miss btw. ne gute Sekunde um dir ne Antwort zu schicken. - Wenn dein Browser das jetzt ebenfalls gecached hat, ist die Wahrscheinlichkeit groß, dass da kein neuer Request zum Lufthansa backend versucht wird und dir dementsprechend eben nichts angezeigt wird.
Dein nächster Request ging jetzt evtl. zu einem anderen Cache (der möglicherweise den richtigen Wert bereits im Cache zwischengespeichert hatte oder aber der beim Lufthansa Backend angefragt und eine gültige Antwort erhalten hatte) und deswegen konnte der Browser etwas anzeigen.
Das ist halt letztlich auch nen stückweit ne Fuzzysuche, weil du nicht genau weißt, was der Nutzende eingeben wird, weshalb das nicht nur mit ner vollindexierten Datenbanksuche zu erschlagen ist.
Schaut man sich jetzt weiterhin die Cookies (z.B. ApplicationGatewayAffinity, ApplicationGatewayAffinity-PRODLUFTHANSA-443) an, dann scheinen da, unabhängig von Cloudflare, noch bestimmte Anwendungsserverfarmen dahinter zu hängen.
Das wird gerne gemacht, damit alle deine Requests auf denselben Anwendungsserver gerouted werden können um bestimmte inkonsistente Zustände zu vermeiden. - Hier kann es jetzt bspw. passieren, dass der eine Browser auf dem einen Server/Serverfarm landet, und ein anderer auf nem anderen. Dort können dann u.a. auch verschiedene Anwendungsversionen ins Spiel kommen.
Je nach voreingestellter Sprachversion deines Browsers könnte es auch hier noch Unterschiede geben, weshalb Anfragen von verschiedenen Serverfarmen beantwortet werden.
(Alles sehr stark vereinfacht ausgedrückt)
Suchst du jetzt nach "MUC", kommt das hier zurück:
| items | |
| 0 | |
| airport | "München, Alle Flughäfen" |
| code | "MUC" |
| country | "Deutschland" |
| items | |
| 0 | |
| airport | "München - Franz Josef Strauss" |
| code | "MUC" |
| country | "Deutschland" |
| type | "AIRPORT" |
| 1 | |
| airport | "Augsburg - Hauptbahnhof" |
| code | "AGY" |
| country | "Deutschland" |
| type | "TRAIN" |
| 2 | |
| airport | "München Hauptbahnhof" |
| code | "ZMU" |
| country | "Deutschland" |
| type | "TRAIN" |
| type | "CITY" |
Suchst Du jetzt nach ZMU, kommt das hier:
| items | |
| 0 | |
| airport | "München Hauptbahnhof" |
| code | "ZMU" |
| country | "Deutschland" |
| items | |
| 0 | |
| airport | "München - Franz Josef Strauss" |
| code | "MUC" |
| country | "Deutschland" |
| distance | |
| value | 29 |
| unit | "km" |
| type | "AIRPORT" |
| 1 | |
| airport | "Augsburg - Hauptbahnhof" |
| code | "AGY" |
| country | "Deutschland" |
| distance | |
| value | 55 |
| unit | "km" |
| type | "TRAIN" |
| 2 | |
| airport | "Innsbruck - Kranebitten" |
| code | "INN" |
| country | "Österreich" |
| distance | |
| value | 99 |
| unit | "km" |
| type | "AIRPORT" |
| type | "TRAIN" |
Der scheint da irgendwie noch Entfernungsberechnungen durchzuführen weil er weiß, was da wie weit entfernt ist.