讓您真正瞭解為什麼您無法隱形HTML的原理
為什麼沒有防原始碼被偷看的HTML語法?
防止HTML原始碼被看一直都是許多人嘗試要做的事情• 有些人會防止瀏覽者按右鍵、自製開新視窗、編碼等等各種稀奇古怪的做法... 但這些根本不會防止你的HTML原始碼免於被看• 這一篇文章將會向您解釋 HyperText Transfer Protocol (HTTP) 的 Request (要求) 及Response (回應) ,也就是伺服器與客戶端之間的對話,讓您瞭解為什麼您無法必免HTML 被瀏覽者看到事實•
如果您是學習做網頁的人,您必須要瞭解什麼是"客戶端"和"伺服器端" (又稱後端)• 我想伺服器端我想大家都應該很容易瞭解,就是提供資料的人• 但客戶端的意思則是任何一個"要求接受資料的人",瀏覽器就是一個的例子• 他們兩個的工作很簡單,就是互相傳送資訊 (要求 - 回應)•
HTTP (Protocol) 本身並不處理資訊傳送的工作,他只定義兩者講了什麼• 客戶端會每一次都先傳送一個GET method來要求主機整個文件資料,等主機處理完後,則傳送給對方回應• 基本的一個要求長的類似像這樣:
GET /filename.html HTTP/1.0
如果要人性話一點,瀏覽器似乎在說『傳給我你Root目錄的filename.html檔案』• 而當伺服器看到這一個要求時,則會老實的找filename.html,然後傳給你類型這樣的文件結果:
HTTP/1.1 200 OK
X-Powered-By: ASP.NET
Administrator: Tek
Date: Tue, 17 Jun 2003 22:57:31 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Tue, 17 Jun 2003 22:55:28 GMT
ETag: "0f0ac8b2335c31:8eb"
Content-Length: 60
<html>
<head>
</head>
<body>
oh~ mama!
</body>
</html>
以上是在我主機實際測試的結果,僅供參考•
您可以看見這一個接收回來的文件包含者HTML原始碼... 沒錯,事實上這就是整個完整的HTML文件真面目• 而在<html>之上的,則是HTTP Header,這會被瀏覽器先處理掉,所以你透過瀏覽器你看不到這一段•
HTTP Headers:
HTTP/1.1 200 OK
X-Powered-By: ASP.NET
Administrator: Tek
Date: Tue, 17 Jun 2003 22:57:31 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Tue, 17 Jun 2003 22:55:28 GMT
ETag: "0f0ac8b2335c31:8eb"
Content-Length: 60
HTML 原始碼:
<html>
<head>
</head>
<body>
oh~ mama!
</body>
</html>
接著,瀏覽器會把這一個HTML文件暫存到自己的硬碟裡•
從上面的要求/回應對話,也許您可能就已經發現為什麼您無法隱藏你的HTML原始碼了•
這就是為什麼在你每一次問『我要怎麼辦讓別人看不到我的HTML原始碼?』,沒有人會給你一個滿意的答案的原因... 因為你沒辦法阻擋主機傳出你允許的文件內容,也不能違反這樣的規則!
另外,我想當您看完這一篇,你可能會問『那為什麼ASP, PHP, JSP的原始碼就看不到?』 因為 他們屬於後端語言,也就是說伺服器會先讀取/處理這一類型的程式碼,然後才會把結果(HTML)丟給你• 所以您當然看不到! 如需要詳細運作說明,請翻翻該程式語言的基本運用原理相關文章!
【註解】
請勿誤會客戶端與伺服器端之間真的是文字語言在溝通! 他們經由TCP and IP 用Byte 當溝通的,文字只是解碼的結果•
由於伺服器與客戶端之間是用Bits & Bytes來講話的,所以當你傳送一個Request的時候,基本上英文大小寫其實也會影響你的要求不正確! 但問題卻可以必免... 像是微軟的IIS就考量到了這種問題