- WWW 是依據 HTTP 這個協定而來的,分為伺服器端與用戶端;
- Apache 是一個伺服器端的軟體,主要依據 NCSA 的 HTTPd 伺服器發展而來,為自由軟體;
- Mozilla 是一個自由軟體的開發計畫,其中 firefox 瀏覽器是相當成功的作品。
- 在撰寫自己的網頁資料時,盡量使用 W3C 所發佈的標準,這樣在所有的瀏覽器上面才能夠順利的顯示出你想要的樣子。
URL
<協定>://<主機位址或主機名稱>[:port]/<目錄資源>
- WWW server/client 間資料傳輸的方式
如果瀏覽器是以 http://hostname 的型態來向伺服器要資料時,那麼瀏覽器與伺服器端是如何傳遞資料的呢? 基本上有這幾種方法:
- GET
就是瀏覽器直接向 WWW 伺服器要求網址列上面的資源,這也是最常見的。此外,使用 GET 的方式可以直接在網址列輸入變數喔。舉例來說,鳥哥的討論區有一篇提問的智慧, 他的網址是:『http://phorum.vbird.org/viewtopic.php?t=96』,發現那個 ?t=96 了嗎? t 就是變數, 96 就是這個變數的內容。如果你將問號後面的資料拿掉時,瞧瞧會出現什麼後果? 這麼說,你可以明白 GET 的處理了吧? - POST
這也是用戶端向伺服器端提出的要求,只是這個要求裡面含有比較多的資料就是了。 舉例來說,討論區裡面不是常常有留言的選項嗎,如果你選擇留言的話不是會在瀏覽器冒出一個框框讓你填入資料嗎! 當按下傳送後,那些框框內的資料就會被瀏覽器包起來傳送至 WWW 伺服器了。 POST 與 GET 不相同喔, GET 可以在網址列取得用戶端所要求的變數,不過 POST 就不是使用網址列的功能了。 - HEAD
伺服器端回應給 Client 端的一些資料檔頭而已; - OPTIONS
伺服器端回應給 Client 端的一些允許的功能與方法; - DELETE
刪除某些資源的舉動。
常見的是 GET 這個項目啦!如果有大量資料由用戶端上傳到 WWW 伺服器端時,才會使用到 POST 這個項目。 你還是得需要注意一下這些舉動,因為後續的登錄檔分析內容都是使用這種動作來分析的呦!
- Secure Socket Layer (SSL)
還記得我們在第十一章的 SSH 伺服器當中介紹過他連線的機制吧? 就是利用非對稱的 key pair (Public + Private kye) 來組成金鑰,然後透過公鑰加密後傳輸, 傳輸到目標主機後再以私鑰來解密,如此一來資料在 Internet 上面跑就以加密的方式, 想當然爾,這些資料自然就比較安全啦!SSL 就是利用在 WWW 傳輸上面的加密方式之一啦!
當瀏覽器端與 WWW 伺服器端同時支援 SSL 的傳輸協定時,在連線階段瀏覽器與伺服器就會產生那把重要的金鑰! 產生金鑰後就能夠利用瀏覽器來傳送與接收加密過的重要資料啦!要達成這樣的機制, 你的 WWW 伺服器必需要啟動 https 這個重要的傳輸協定,而瀏覽器則必需要在網址列輸入 https:// 開頭的網址,那兩者才能夠進行溝通與連線。要注意的是,在某些很舊的瀏覽器上面是不支援 SSL 的, 所以在那些舊的瀏覽器上就無法達成 https 的連線啦!
- Certificate Authorities (CA)
想一想 SSL 這個機制有什麼問題?他的問題就是:『那把 Public key 是伺服器產生且任何人都能取得的』!這是什麼問題?因為 public key 可讓任何人取得, 若被釣魚網站取得並且製作一個很類似你網路銀行的網站,並且騙你輸入帳密,要命了!因為你不知道該網站是詐騙集團製作的, 以為 https 就是安全的,如此一來,即使你的資料有加密,但結果,在釣魚網站伺服器端還是能夠取得你輸入的帳密啊! 這個時候就需要第三方公正單位來幫忙啦!
所謂的 CA 就是一個公認的公正單位,你可以自行產生一把金鑰且製作出必要的憑證資料並向 CA 單位註冊 (講到註冊你就要知道...這東西是要錢的意思!),那麼當用戶端的瀏覽器在瀏覽時,該瀏覽器會主動的向 CA 單位確認該憑證是否為合法註冊過的,如果是的話,那麼該次連線才會建立,如果不是呢?那麼瀏覽器就會發出警告訊息, 告知使用者應避免建立連線啊。所以說,如此一來 WWW 伺服器不但有公正單位的背書,使用者在建立連線時也比較有保障!
更多關於 SSL 以及 CA 的介紹,可以約略參考一下:
- Apache 的 SSL: http://www.modssl.org/
- CA 組織之一:https://digitalid.verisign.com/server/apacheNotice.htm