Wie arbeitet refer (r) er technisch?

8

Ich verstehe nicht: Wie können Webserver und Tracker wie Google Analytics Verweise verfolgen?

Ist es Teil von HTTP?

Ist es ein (un) spezifiziertes Verhalten der Browser?

Offenbar jedes Mal, wenn Sie auf einen Link auf einer Webseite klicken, wird die ursprüngliche Webseite der Anfrage entsprechend weitergeleitet.

Was ist der genaue Mechanismus dahinter? Ist es durch irgendeine Spezifikation spezifiziert?

Ich habe ein paar Dokumente gelesen und habe mit meinem eigenen Tomcat-Server und meinem eigenen Google Analytics-Konto gespielt, aber ich verstehe nicht, wie die "Magie" passiert.

Bonusfrage: Wenn ich auf meiner eigenen Website (von Tomcat bedient) einen Link zu einer anderen Site anlege, sieht die andere Seite meine Website als "Referrer", ohne dass ich etwas Besonderes in Tomcat mache?

    
NoozNooz42 18.06.2010, 00:28
quelle

8 Antworten

10

Referer (in der Spezifikation falsch geschrieben) ist ein HTTP-Header. Es ist ein Standard-Header, den alle wichtigen HTTP-Clients unterstützen (auch wenn einige Proxy-Server und Firewalls so konfiguriert werden können, dass sie entfernt oder beschädigt werden). Wenn Sie auf einen Link klicken, sendet Ihr Browser unter anderem eine HTTP-Anfrage, die die angeforderte Seite und die Seite enthält, auf der der Link gefunden wurde.

Da dies ein Client / Request-Header ist, ist der Server irrelevant. Wenn Sie also auf einen Link auf einer Seite auf Ihrem eigenen Server klicken, wird die URL der Seite an den Server der anderen Site gesendet, obwohl Ihr Server dies nicht tut von dieser anderen Seite abhängig von Ihrer Netzwerkkonfiguration zugänglich sein.

    
Chris 18.06.2010, 00:32
quelle
7

Ein Detail, das zu den bereits gemachten Aussagen über Browser hinzugefügt werden soll: HTTPS ändert das Verhalten etwas. Ich bin mir nicht bewusst, ob es in irgendeiner Spezifikation ist, aber wenn Sie von HTTPS zu HTTP springen, und wenn Sie in der gleichen Domain bleiben oder zu verschiedenen Domains gehen, dann wird manchmal der Referrer nicht gesendet. Ich kenne die genauen Regeln nicht, aber ich habe das in der Wildnis beobachtet. Wenn es eine Spezifikation oder Beschreibung darüber gibt, wäre es großartig.

EDIT: ok, der RFC sagt einfach:

  

Clients SOLLTEN kein Referer-Header-Feld in einer (nicht sicheren) HTTP-Anfrage enthalten, wenn die verweisende Seite mit einem sicheren Protokoll übertragen wurde.

Wenn Sie also von der HTTPS-Seite zu einer HTTP-Verbindung wechseln, wird die Referrer-Information nicht gesendet.

    
Jaanus 18.06.2010 00:36
quelle
4

Von: Ссылка

  

Das Referrer-Feld ist ein optionaler Teil   der HTTP-Anfrage gesendet von der   Browser-Programm zum Webserver.

Von RFC 2616:

  

Das Referer [sic] Request-Header-Feld   ermöglicht dem Client, z   der Vorteil des Servers, die Adresse   (URI) der Ressource, aus der   die Anfrage-URI wurde erhalten (die   "Referrer", obwohl der Header   Feld ist falsch geschrieben.)

    
Artelius 18.06.2010 00:35
quelle
1

Wenn Sie eine Webseite über einen Browser anfordern, sendet Ihr Browser den HTTP-Referer-Header zusammen mit der Anfrage.

    
S P 18.06.2010 00:31
quelle
1

Ihr Browser übergibt den Referrer bei jeder Seitenanfrage.

Es scheint ungewöhnlich, dass JavaScript auch darauf zugreifen kann, aber es tut es.

    
Matt Mitchell 18.06.2010 00:32
quelle
1

Ja, der Browser sendet die vorherige Seite in den HTTP-Headern. Dies ist in der HTTP / 1.1-Spezifikation definiert:

Ссылка

Die Antwort auf Ihre Frage lautet ja, da der Browser den Referer sendet.

    
minimalis 18.06.2010 00:33
quelle
1

"Das Referrer-Feld ist ein optionaler Teil der HTTP-Anfrage, die vom Browser-Programm an den Webserver gesendet wird."

Ссылка

    
Maxim Gershkovich 18.06.2010 00:34
quelle
1

Wenn Sie auf einen Link klicken, fügt der Browser der Anfrage den Header Referer hinzu. Es ist ein Teil von HTTP . Sie können mehr darüber hier lesen.

    
Tomas Markauskas 18.06.2010 00:35
quelle

Tags und Links