2010-09-12 6 views
7

Se si fa clic su un risultato in Google Instant, il referer inviato dal browser al sito Web di destinazione contiene una serie di parametri, tra cui l'importante q = [query completata automaticamente]In che modo Google Instant modifica il referer inviato dal browser?

Ma proviene da una pagina il cui URL è semplicemente http://www.google.com/ con un sacco di cose dopo il carattere #, cioè come un'ancora in-page.

Quindi il browser sembra inviare un URL come referente diverso dall'URL della pagina che si stava visualizzando quando si fa clic.

Non sembra esserci un ulteriore reindirizzamento, quindi come diavolo fanno?

risposta

5

Nella maggior parte dei casi, un risultato di ricerca di Google ti invia effettivamente a una pagina di reindirizzamento di Google anziché direttamente alla pagina di destinazione. Usano JavaScript per cambiare il target del link onmousedown mentre si fa clic su di esso.

È possibile visualizzare questo effetto facendo clic e tenendo premuto sul collegamento dei risultati di ricerca e guardando la barra di stato.

Questo non è specifico per Google Instant, lo stanno facendo da molto tempo sulle loro pagine di risultati standard.

+0

Immagino che lo spieghi - grazie! – Butters

+0

Non funziona per me (in Firefox); Sto ricevendo semplicemente www.google.com come Referente, che è l'URL corrente senza la parte hash/anchor. Apparentemente il set-referrer-using-Javascript non riesce su di me. Chromium funziona bene, quindi è forse una delle estensioni di Firefox o qualcosa di simile a bloccarlo. – blueyed

-1

La parte pagina di ancoraggio del URL può essere manipolato sul lato client senza un nuovo richiesta al server. Anche quando si parla di collegamenti di ancoraggio statici (ad esempio <a href="#foo">Section Foo</a>), fare clic su di essi non causa l'invio di una nuova richiesta al server; è elaborato completamente all'interno del browser.

Il javascript utilizzato da Google per rendere Google Instant funziona semplicemente alterando l'ancoraggio in modo programmatico prima di effettuare una richiesta al server.

+0

Sì, ma non è questa la mia domanda! Come fa a ottenere elementi dall'ancora inclusi nel referer HTTP inviato al risultato su cui ho fatto clic? – Butters

Problemi correlati