0

私はこれを見つけようとしましたが、http://www.google.com/ncrが302(または301)リダイレクトを使用していることがわかりました(実際にそうであるかどうかはわかりません)。

また、サーバー側のリダイレクト(301および302)は元のリファラーを変更しません。つまり、http://www.google.com/ncrに直接アクセスすると、リクエストはgoogle.comに送信されますが、何も変更されません。ヘッダーで、私がhttp://www.google.com/ncrから来ていることを示すことができます。

だから私はグーグルがこれをどのように行うのだろうか。

4

1 に答える 1

0

人々はこれをサーブレットで頻繁に行います。サーブレットは特定のパターンを検出し、複合URLへのリダイレクトを発行します。リダイレクトはブラウザに向けられます。これは、ブラウザが新しいリンクをアクティブ化/クリックしたようなものです。

これは、URLバーにgoogle.com/abcと入力し、その後アドレスバーにgoogle.comと入力したようなものです。プライバシーの問題により、ブラウザは以前にアクセスしたURLをサーバーに通知しません。

もちろん、同じセッションで同じサイトにアクセスしている場合、Googleはサーバー側とクライアント側の両方のCookieを使用して、別のgoogleURLから取得したことを追跡します。もしウェブサービスプロバイダーだったら、私は確かにあなたの閲覧履歴を知ることを利用するでしょう。

だから、あなたの閲覧履歴のためにwww.whatever。comは、さまざまなユーザーまたはセッションのさまざまなページにリダイレクトします。

補遺

「プライバシーの問題により、ブラウザは以前にアクセスしたURLをサーバーに通知しません。」完全に正しくありません。

より完全な仕様は

参照ページがセキュアプロトコルで転送された場合、クライアントは(非セキュア)HTTPリクエストにリファラーヘッダーフィールドを含めるべきではありません(SHOULDNOT)。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html

グーグルが私たちにhttpsの使用を強制するもう一つの理由は私たちに利益をもたらします。

安全でないhttpのリダイレクトフロー

私たちが持っているとしましょう

  • URL Aには、URLBへのリードを持つリンクgotoBがあります。
  • URLBはURLCへのリダイレクトです

URL Cのサーバーは、リファラーをURLBではなくURLAとして認識します。つまり、ブラウザーはリファラーをURLAに設定します。

Cookieでリダイレクトする

30xリダイレクトにsetcookieヘッダーを含めることができるはずです。私はそれを試したことがないので、どのブラウザがそれを無視または尊重するかわかりません。

ところで

私の答えがあなたの質問に満足できるものであることに大きな疑問を持っています。個人的には不完全だと思いますので、誰かがもっと良い答えを出してくれるといいのですが、それを答えとして選んでください。実際、あなたの質問が未回答の質問のプールに戻るように、これを回答として選択解除する必要があると思います。ごめん。

于 2012-08-14T03:22:17.530 に答える