2010-12-09 2 views
3

Google은 검색 결과 링크를 클릭 할 때 HTTP 리퍼러를 설정합니다. 이 리퍼러는 URL 주소 표시 줄에 표시된 주소와 다릅니다 (예 : 클릭 한 링크의 검색 결과 위치를 나타내는 GET 매개 변수 cd 포함).누군가가 검색 결과 링크를 클릭 할 때 Google에서 HTTP 추천자를 어떻게 설정합니까?

이것은 자바 스크립트로 수행되는 것 같습니다. 내 웹 사이트에서 비슷한 것을하고 싶습니다. 그래서이 "리퍼러 조작"이 자바 스크립트로 얼마나 정확하게 수행 될 수 있는지 알고 싶습니다.

아이디어가 있으십니까?

답변

3

결과 링크를 클릭하면 Google이 자체 클릭 프록시를 통해 사용자를 리디렉션합니다. 프록시 주소는 Referer입니다.

예 : http://www.google.cz으로 가서 '누군가가 검색 결과 링크를 클릭하면 Google에서 어떻게 HTTP 리퍼러를 설정합니까?'를 검색했습니다. 즉,이 요청 결과 : 거기에서

GET http://www.google.cz/search?hl=cs&source=hp&biw=1276&bih=866&q=How+does+Google+set+the+HTTP+Referrer+when+someone+clicks+on+a+search+result+link%3F&aq=f&aqi=&aql=&oq=&gs_rfai=&fp=b29a84a7dd59af16 HTTP/1.1 
Referer: http://www.google.cz/ 

, 나는 첫 번째 결과 링크를 클릭 :

GET http://www.google.cz/url?sa=t&source=web&cd=1&ved=0CBoQFjAA&url=http%3A%2F%2Fstackoverflow.com%2Fquestions%2F4402502%2Fhow-does-google-set-the-http-referrer-when-someone-clicks-on-a-search-result-link&rct=j&q=How%20does%20Google%20set%20the%20HTTP%20Referrer%20when%20someone%20clicks%20on%20a%20search%20result%20link%3F&ei=WTgBTeOXLsHB8QPO44ybCA&usg=AFQjCNE22KabWH5TnkK1sRLGmqWQ4EvwxQ HTTP/1.1 
Referer: http://www.google.cz/search?hl=cs&source=hp&biw=1276&bih=866&q=How+does+Google+set+the+HTTP+Referrer+when+someone+clicks+on+a+search+result+link%3F&aq=f&aqi=&aql=&oq=&gs_rfai=&fp=b29a84a7dd59af16 

이 리디렉션 조각을 포함 : 클릭이 JS 이벤트에 의해 촬영 된이 리디렉터에 다시 라우팅이라고 How does Google set the HTTP Referrer when someone clicks on a search result link? : 마지막으로 실제 URL로 나를 보내

<body><a href="https://stackoverflow.com/questions/4402502/how-does-google-set-the-http-referrer-when-someone-clicks-on-a-search-result-link" id=link target=_parent></body><script>var a=parent,b=parent.google,c=location;if(a!=window&&b){if(b.r){b.r=0;document.getElementById("link").click();}}else{document.getElementById("link").click();};</script><noscript><META http-equiv="refresh" content="0;URL='https://stackoverflow.com/questions/4402502/how-does-google-set-the-http-referrer-when-someone-clicks-on-a-search-result-link'"></noscript> 

:

GET https://stackoverflow.com/questions/4402502/how-does-google-set-the-http-referrer-when-someone-clicks-on-a-search-result-link HTTP/1.1 
Referer: http://www.google.cz/url?sa=t&source=web&cd=1&ved=0CBoQFjAA&url=http%3A%2F%2Fstackoverflow.com%2Fquestions%2F4402502%2Fhow-does-google-set-the-http-referrer-when-someone-clicks-on-a-search-result-link&rct=j&q=How%20does%20Google%20set%20the%20HTTP%20Referrer%20when%20someone%20clicks%20on%20a%20search%20result%20link%3F&ei=WTgBTeOXLsHB8QPO44ybCA&usg=AFQjCNE22KabWH5TnkK1sRLGmqWQ4EvwxQ 

그렇습니다. 일부 서버 측 코드가 포함되어 있지만 여기서는 대부분 JavaScript를 통해 수행됩니다.

+0

대단히 감사합니다! – Michi20

관련 문제