2014-07-05 53 views
0

當我看一個puu.sh源代碼,也有一些是這樣的:像puu.sh隱藏圖像路徑確實

www.puu.sh/11111 

,並在源代碼是

<img style="-webkit-user-select: none" src="http://puu.sh/11111"> 

是不是這種遞歸公式,應該有一個無限循環? 這是如何工作的?

當我有類似www.puu.sh/1111awww.puu.sh/1111A這些可以是不同的圖像,但如果這些圖像將在同一個文件夾中這些名稱將相互覆蓋。

有人能告訴我他們是怎麼做到的嗎?

+1

這是'URL重寫'的一個例子,重要的問題是'http://puu.sh/'的網絡服務器將獲得完整的URL(「http://puu.sh/」 11111「)交付給它。然後它可以以任何想要的方式處理它。以下是一些指導原則:** [url-rewriting-for-beginners](http://www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners/)**。 –

回答

1

我不知道該網站是如何實現它的,但一種可以實現可以檢索兩個不同對象的URL的方式是讓服務器檢查「referer」標頭。如果它的值是「http://puu.sh/11111」,則返回圖像;否則,返回網頁。

只有在底層文件系統忽略大小寫的情況下,只有在相互衝突的情況下,名稱纔會有所不同。不區分大小寫的文件系統在Windows上是常見的,但類Unix系統通常會區分文件名中的大小寫。

請注意,不能保證http://puu.sh/11111引用文件名 - 它可能是由服務器端腳本解釋的URL。

+0

有沒有任何示例如何使用引用標頭的這種技巧?我可以僞造我的參考頭,看看puush如何反應? – user3742399

+0

您的瀏覽器將自動設置一個引用標題。根據您使用的瀏覽器,您可能會告訴它永遠不會發送引用標頭(在Firefox中,使用Web Developer擴展)。或者,您可以通過代理路由您的請求,並進行所需的任何更改。 – user3553031