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解析);這里有一個Host文件的事情,可以參見計算機視覺3-> yolov5目標檢測1 |從入門到出土第一部分的講述。
第二步,才是通過解析得到的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等;這些東西將響應渲染成特定的頁面給用戶。