Karl Heinz: Fragen zum URL Referrer

Hallo,

kommt ein Besucher auf eine Webseite, so wird ja auch der Referrer, von welcher der Besucher kommt, mit an den Webserver auf der die Webseite liegt, übergeben.

Angenommen eine Person befindet sich auf Seite A und klickt auf einen Link der auf Seite C führt. Dann bekommt der Webserver von Seite C ja Seite A als Referrer mit übergeben. Stimmt das so?

Angenommen eine Person befindet sich auf Seite A und klickt auf einen Link der schlussendlich auf Seite C führt. C wird allrdings nicht direkt geladen, dazwischen wird noch Seite B aufgerufen. B leitet dann per 301 auf C weiter. Erhält der Webserver von C dann A oder B als Referrer?

  1. Sofern nicht unterdrückt per Konfiguration und sofern es einen gibt sendet der Browser den Referer in einem gleichnamigen Header. Vom HTTP Status einer Response ist das völlig unabhängig. MfG

  2. Hallo Karl Heinz,

    kommt ein Besucher auf eine Webseite, so wird ja auch der Referrer, von welcher der Besucher kommt, mit an den Webserver auf der die Webseite liegt, übergeben.

    Angenommen eine Person befindet sich auf Seite A und klickt auf einen Link der auf Seite C führt. Dann bekommt der Webserver von Seite C ja Seite A als Referrer mit übergeben. Stimmt das so?

    Ja. (Aber nur, wenn der Nutzer das nicht in seinem Browser abgeschaltet hat, bzw. das ein Addon für ihn gemacht hat und die Website das dem Client nicht durch den Referrer-Policy-Header verbietet (bzw. ihm davon abrät).

    Angenommen eine Person befindet sich auf Seite A und klickt auf einen Link der schlussendlich auf Seite C führt. C wird allrdings nicht direkt geladen, dazwischen wird noch Seite B aufgerufen. B leitet dann per 301 auf C weiter. Erhält der Webserver von C dann A oder B als Referrer?

    B. Diese Funktionsweise wird auch von sogenannten Dereferrer-Diensten genutzt. Beispiel-Dienst.

    Gruß
    Julius

    1. Angenommen eine Person befindet sich auf Seite A und klickt auf einen Link der schlussendlich auf Seite C führt. C wird allrdings nicht direkt geladen, dazwischen wird noch Seite B aufgerufen. B leitet dann per 301 auf C weiter. Erhält der Webserver von C dann A oder B als Referrer?

      B.

      In der Theorie hätte ich auch B gesagt, in der Praxis ist es allerdings A.

      Beispiel:

      Bei einem Klick auf eine AdWords Anzeige von https://tappwater.co komme ich nicht direkt zu https://tappwater.co sondern werde über www.googleleadservices.com per 302 auf https://tappwater.co weitergeleitet. Dies kann man schön im nachfolgenden Screenshot der Firefox Entwicklertools erkennen.

      Schaue ich mir den Referer von https://tappwater.co an so steht da www.google.de (A) und nicht www.googleleadservices.com (B).

      Demnach wird als Referer A und nicht B an C übergeben. Wo ist hier mein Denkfehler?

      1. Hallo Karl Heinz,

        Ich habe nicht die Möglichkeit, das experimentell zu prüfen, aber möglicherweise ist der Unterschied der HTTP Status: 301 (moved permanently) vs 302 (found/see other/moved temporarily).

        Gerade der 302 ist - sagt Wikipedia - nicht unbedingt so verwendet worden wie vom Standard gedacht und wird von den Browsern ggf. konträr zum Standard verarbeitet.

        Rolf

        --
        Dosen sind silbern
    2. Angenommen eine Person befindet sich auf Seite A und klickt auf einen Link der schlussendlich auf Seite C führt. C wird allrdings nicht direkt geladen, dazwischen wird noch Seite B aufgerufen. B leitet dann per 301 auf C weiter. Erhält der Webserver von C dann A oder B als Referrer?

      B.

      nein; die Spec schreibt es nicht eindeutig vor, aber das übliche UA-Verhalten ist es bei Redirects via HTTP den alten Referer-Header zu behalten

      Diese Funktionsweise wird auch von sogenannten Dereferrer-Diensten genutzt. Beispiel-Dienst.

      Nein, wenn du da die Dereferrer-Funktion aktivierst, bekommst du keine Weiterleitung per 30x-Status sondern es wird ein Dokument geladen, dass dann die Weiterleitung vornimmt. http://t1p.de/81vq liefert bspw. das folgende Dokument mit einem Status 200 aus:

              <!doctype html>
              <html lang="de">
              <head>
              <meta http-equiv="refresh" content="0; URL=http://www.google.de/" />
              <link rel="shortcut icon" type="image/x-icon" href="http://t1p.de/favicon.t1p.de.ico"/>
              </head>
              <body>
              <div
                              style="position: absolute; bottom: 10px; right: 10px; color: #a4a4a4;"
                              id="weiterleitung">
                              <strong>Du wirst weitergeleitet ...</strong><br />
                              <a style="color: #999999;" rel="nofollow" href="http://www.google.de/">http://www.google.de/</a>                </div>
                      <script type="text/javascript">
                                              <!--
                                              window.location = "http://www.google.de/";
                                              //-->
                      </script>
              </body>
              </html>
      
      1. Angenommen eine Person befindet sich auf Seite A und klickt auf einen Link der schlussendlich auf Seite C führt. C wird allrdings nicht direkt geladen, dazwischen wird noch Seite B aufgerufen. B leitet dann per 301 auf C weiter. Erhält der Webserver von C dann A oder B als Referrer?

        B.

        nein; die Spec schreibt es nicht eindeutig vor, aber das übliche UA-Verhalten ist es bei Redirects via HTTP den alten Referer-Header zu behalten

        Das heißt üblich wäre A, wobei es in seltenen Fällens auch B sein kann, weil das nicht eindeutig in der Spezifikation vorgeschrieben ist? Habe ich das so richtig verstanden?