2017-03-28 6 views
0

https://www.google.com의 검색 텍스트 상자에 검색어 java을 입력했습니다. 결과는 https://en.wikipedia.org/wiki/Java_(programming_language)입니다. 링크를 마우스 오른쪽 버튼으로 클릭하고 Copy Link Address을 선택하면 다음 텍스트가 표시됩니다.Google은 검색 결과를 어떻게 리디렉션합니까?

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=10&cad=rja&uact=8&ved=0ahUKEwiijvLpqvnSAhVFqY8KHU5UDyYQFghDMAk&url=%68%74%74%70%73%3a%2f%2f%65%6e%2e%77%69%6b%69%70%65%64%69%61%2e%6f%72%67%2f%77%69%6b%69%2f%4a%61%76%61%5f%28%70%72%6f%67%72%61%6d%6d%69%6e%67%5f%6c%61%6e%67%75%61%67%65%29&usg=AFQjCNEaMDPWkK-lszS-jjSYrWuKEdrmKA&bvm=bv.150729734,d.dGc

는 그리고 크롬의 주소 표시 줄에 위의 링크를 붙여 넣습니다. 그리고 Developer Tools을 사용하여 HTTP 네트워크 트래픽을 모니터링합니다.

enter image description here

첫 번째 HTTP 요청은 원래 링크입니다. 상태 코드가 302 인 HTTP 응답은 Location 헤더의 링크를 따라 만들 수 있음을 알고 있습니다. Chrome은 https://en.wikipedia.org/wiki/Java_(programming_language)에 대해 다음과 같은 요청을 어떻게 처리합니까? 리디렉션은이 경우 상태 코드 200을 사용하여 어떻게 처리됩니까?

답변

1

는 리디렉션 때문에 첫 번째 HTTP 요청 (https://www.google.com/url?sa=t&rct=j...)의 응답으로 이루어집니다 : JavaScript가 활성화되어 있으면

  • , 다음 창의 위치는 스크립트를 사용하여 https://en.wikipedia.org/...를 탐색한다.

    <script>window.googleJavaScriptRedirect=1</script> 
    <META name="referrer" content="origin"> 
    <script>var n={navigateTo:function(b,a,d){if(b!=a&&b.google){if(b.google.r){b.google.r=0;b.location.href=d;a.location.replace("about:blank");}}else{a.location.replace(d);}}};n.navigateTo(window.parent,window,"https://en.wikipedia.org/wiki/Java_(programming_language)"); 
    </script> 
    <noscript> 
    <META http-equiv="refresh" content="0;URL='https://en.wikipedia.org/wiki/Java_(programming_language)'"> 
    </noscript> 
    
    : 자바 스크립트가 비활성화 또는 자바 스크립트를 지원하지 않는 클라이언트는 다음 <meta http-equiv="refresh"> 여기 https://en.wikipedia.org/...

로 리디렉션하는 데 사용되는 경우

  • 첫 번째 HTTP 요청의 응답 본문입니다