00 Web介紹
00-00
Web本意是網,這裡多指全球資訊網(World Wide Web),是由許多互相連線的超文字系統組成的,通過網際網路訪問。
Web是非常廣泛的網際網路應用,每天都有數以億萬計的Web資源傳輸。
我們平時通過瀏覽器上網都屬於Web。
PS:全球資訊網和網際網路、因特網又有什麼聯絡呢?
00-01 Web發展史
Web1.0
初期;
-
典型示例:
-
入口網站
-
個人頁面
-
-
安全問題:
-
SQL隱碼攻擊
-
上傳漏洞
-
檔案包含
-
掛馬、暗鏈
-
命令執行
-
(主要危害Web伺服器)
-
一般就是提供靜態的頁面給使用者,而且這種資訊只能夠閱讀,不能夠修改或新增。
Web2.0
如今;
-
典型示例:
-
微博
-
Blog
-
-
安全問題:
-
(更復雜,逐漸針對Web使用者
-
釣魚
-
URL跳轉
-
資料劫持
-
框架漏洞
-
CSRF
-
XSS
-
邏輯漏洞
-
Web安全形勢不容樂觀,數量迅速增長,種類迅速增多,從針對Web伺服器到Web使用者,所以Web安全知識比較重要。
00-02 Web工作流程
以點餐類比
下面是Web提供服務的標準流程:
這裡也分為客戶端和服務端。
上面的安全問題也可以以此劃分。
00-03 瀏覽器
工作原理
我們訪問一個網站,輸入的是一個URL(域名/網址),瀏覽器是無法通過我們輸入的URL找到相應的Web伺服器的,它只能通過IP地址才能找到Web伺服器。
所以第一步,瀏覽器先通過URL獲取Web伺服器的IP地址(也稱DNS解析);
第二步,才是通過解析得到的IP地址,訪問Web伺服器。
工作示例
我們開啟瀏覽器,輸入:https://www.cnblogs.com/Roboduster
瀏覽器收到這個URL,會先進行上面說到的DNS解析,通常情況下,瀏覽器會先向DNS伺服器傳送解析請求,請求查詢這個URL的IP地址。
DNS伺服器處理完成後,返回這個IP地址。
瀏覽器接收這個資訊,並據此找到WEB伺服器。
之後,需要根據HTTP協議進行通訊。
瀏覽器先傳送一個HTTP請求,伺服器處理完後,會返回一個HTTP響應給瀏覽器。
操作演示
我們開啟https://www.cnblogs.com/Roboduster
按F12(自行找到開發者工具),選中網路這一格
然後我們,找到左側的all(全部),點選,重新整理該頁面。
重新整理後可以看到瀏覽器傳送了很多請求。這些請求就是我們說的HTTP請求。
我們選中左側的任何一個js檔案,右側標頭(head)裡可以看到請求的詳細資訊。響應裡有這個js經過壓縮的樣子。預覽可以看到好一點的程式碼風格。
同理可以檢視CSS和img等各種檔案格式。
最重要的是我們需要關注上方的文件(Doc),這是我們請求的主頁面,我們可以在下面的計時(timing)檢視請求的耗時
在標頭裡我們可以看到遠端地址,這裡就是所請求的IP對應的伺服器的地址
在響應裡可以看到我們請求得到的資料體
00-04 留一個問題
通過上面的操作我們可能會有疑問,我們檢視的是HTTP響應,這裡是相應的資料流,而我們平時上網看到的是各色各樣的Web頁面。
那麼瀏覽器是如何將伺服器返回的HTTP響應轉換成我們看到的頁面的呢?
這就涉及各種標準和技術:HTML、JS、CSS等;這些東西將響應渲染成特定的頁面給使用者。