Warum ist der Hash-Teil der URL serverseitig nicht zugänglich?
In der Webentwicklung besteht die URL aus mehreren Komponenten, einschließlich Protokoll, Domänenname, Pfad und Hash. Der Hash, gekennzeichnet durch das „#“-Symbol, wird verwendet, um einen bestimmten Teil der Seite zu identifizieren, beispielsweise eine Überschrift oder einen Abschnitt.
Frage:
Allerdings wurde festgestellt, dass der Hash-Teil der URL serverseitig nicht verfügbar ist. Wenn ein Benutzer beispielsweise „http://www.foo.com/page.php?parameter=kickme#MOREURL“ in die Adressleiste seines Browsers eingibt, erhält der Server den Teil „#MOREURL“ nicht.
Antwort:
Ja, der Hash-Teil der URL ist für den Server ohne Verwendung externer Tools nicht zugänglich. Dies liegt daran, dass die Hash-Komponente ausschließlich vom Browser-Client verarbeitet werden soll. Der Server empfängt es nie als Teil der HTTP-Anfrage.
Erklärung:
Gemäß dem HTML-Standard wird das Hash-Fragment nicht an den Server gesendet. Der Browser interpretiert es und verarbeitet es möglicherweise auf verschiedene Weise, z. B. indem er zu einer bestimmten Stelle auf der Seite scrollt. Dieses Verhalten ist bei verschiedenen Browsern und serverseitigen Technologien wie PHP konsistent.
Wikipedia liefert weitere Erläuterungen:
„Der Fragmentbezeichner funktioniert anders als der Rest des URI: nämlich seine Verarbeitung.“ ausschließlich clientseitig und ohne Beteiligung des Servers. Wenn ein Agent (z. B. ein Webbrowser) eine Ressource von einem Webserver anfordert, sendet der Agent den URI an den Server, sendet jedoch nicht das Fragment wartet darauf, dass der Server die Ressource sendet, und dann verarbeitet der Agent die Ressource entsprechend dem Fragmentwert.“
Das obige ist der detaillierte Inhalt vonWarum können Server nicht auf den Hash-Teil einer URL zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!