2014-11-05 42 views
1

我最近遇到一個名爲t1p.de的URL縮短服務,它提供了URL的「延遲(r)」。發現有趣的我覺得我會自己嘗試。使用chrome的調試/開發視圖[F12]它告訴我,該網站正在使用'301 - 永久移動的'http重定向。'dereferrer'服務如何工作?

使用Spring我寫了一個小控制器,返回一個RedirectView,這是Spring的等價物/做http 301重定向的方式。

使用chrome的開發工具再次檢查,雖然我看到我仍然可以在請求頭中看到原始引用者。

該服務和/或任何其他服務如何設法替換引用者?
我該如何在java中使用Java EE技術和/或Spring來實現?

+0

['RedirectView'] (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/view/RedirectView.html)似乎確實會迴應303(* See Other *),而不是301( *永久移動*)。這可能是問題?嘗試玩['@ResponseStatus(value = HttpStatus.MOVED_PERMANENTLY)'](http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/ResponseStatus。 HTML)。 – sp00m 2014-11-05 13:49:20

+0

@ sp00m有趣的是,它現在爲我返回一個'302'。雖然我確信在我寫這個問題時它回覆了'301'。 – 2014-11-05 13:56:11

+0

@ sp00m nvm,可以使用'setStatusCode(HttpStatus.MOVERD_PERMANENTLY)'將響應代碼從'302'改爲'301'。儘管這並沒有改變關於引用者隱藏的任何事情。 – 2014-11-05 14:02:15

回答

0

這個'derefer(r)ing'基本上是一個黑客。一個簡單的方法來做到這一點(和唯一的一個,我發現)是頭信息添加到返回的HTML頁面,將瀏覽器定向立即刷新並調用了新的一頁:

<head> 
    <meta http-equiv="refresh" content="0;URL=http://google.com" /> 
</head>