最近上班和下班的路上,行人空空如也,沒了他日的吵鬧,沒了他日繁榮,此時內心有種不是滋味的滋味,賊難受🥺;但願疫情趕忙走css
吧,還我正常的生活;病毒無情,人間有愛!中國加油,武漢加油!前端
本渣也藉着這段有錢吃不飽飯,有錢買不到口罩,拉屎不敢蹲公測,看到公交地跌空蕩蕩卻不敢上...的日子,把當初在某當買的web
《圖解Http》看了一篇,也正好最近用得上。這本書忘記是何時買的了,一直沒去看過,一直拿來墊鼠標,以爲挺對不起它的正則表達式
畢竟我是它爹。瀏覽器
看完這本《圖解Http》,本渣總結了一些經常使用到或者被問到的知識點。緩存
首先簡單的描述一下,TCP/IP通訊的傳輸流的整個流程。
http(客戶端)<->TCP<->IP<->網絡<->網絡<->IP<->TCP<->http(服務端)
這個流成大概是這樣的:首先做爲發送端的客戶端在應用層(http協議)發出一個想看xxx.xxx.com
網站的http請求。接着,爲了方便傳輸,在傳輸層(TCP協議)把從應用層收到的數據(http請求報文)
進行分割,並在各個報文上打上標記序號及端口號後轉發給網絡層。而後在網絡層(IP協議),增長
做爲通訊目的地的MAC地址後轉發給鏈路層,到這裏發往網絡請求就準備好了。
接受端的服務器在鏈路層接收到數據,按序往上發送,一直到應用層,這樣纔算服務端接收到客戶端
發送過來的http請求。
複製代碼
首先用戶輸入URL,接着此URL會被DNS解析找到對應的IP地址,而後會與目標服務器創建TCP連接(TCP連接
也叫着TCP三次握手,所謂的三次握手就是,客戶端一開始給服務端發送一個帶SYN標誌的數據包;服務端
接收到後,會給客戶端發送一個SYN/ACK標誌到數據包;而後客服端接收到了再給服務端發送一個ACK的數據
包;這樣三次握手完成後就創建起了TCP連接);創建好連接後,TCP協議還會將http請求的報文分割成報文段,
按序號分爲多個報文段,發送給對應的服務端;而後服務端的TCP協議接收到報文段後,按序號以原來的順序重組
報文段,而後服務端找到對應的內容返回給瀏覽器。此時瀏覽器開始解析該返回文檔,首頁瀏覽器會先解析HTML,
生成DOM樹,再解析css,生成規則樹,最後結合二者,生成渲染樹,在生成渲染樹的過程當中瀏覽器會調用GPU繪製,
合成圖層,顯示在屏幕上。
複製代碼
1.GET
做用:用來請求訪問已被URI識別的資源。
2.POST
做用:用來傳輸實體的主體。
3.PUT
做用:用來傳輸文件。
4.HEAD
做用:獲取報文首部。
5.DELETE
做用:用於刪除文件,跟put恰好相反。
6.OPTIONS
做用:用來查詢針對請求URI指定的資源支持的方法。
複製代碼
在請求頭設置Connection:keep-alive(http1.1默認爲持久連接)
複製代碼
響應頭設置set-cookie
請求頭設置cookie
複製代碼
狀態碼有一下幾種類型:
1xx:接收的請求正在處理
2xx:請求正常處理完畢
3xx:須要進行附加操做以完成請求
4xx:服務器沒法處理請求
5xx:服務器處理請求出錯
複製代碼
下面簡單說幾個經常使用的狀態碼安全
200:表示從客戶端發到服務端的請求被正常處理成功
204:表示服務端接收的請求已成功處理,但在返回的響應報文中不含實體的主體部分
206:表示客戶端進行了範圍請求,而服務端成功執行了這部分的GET請求
301:表示永久重定向
302:表示臨時重定向
304:表示服務端資源未改變,可直接使用客戶端未過時的緩存
400:表示請求報文中存在語法錯誤
401:表示發送的請求須要有HTTP認證(BASIC認證,DIGEST認證)的認證信息
403:表示服務端拒絕了客戶端的請求訪問
404:表示服務端未找到客戶端請求的地址
500:表示服務端在執行請求時發生的錯誤
503:表示服務端暫時處於超負荷或正在進行停機維護
複製代碼
什麼是HTTP?
HTTP是以超文本傳輸的協議做爲規範,完成從客戶端到服務端等一系列運做流程。
(也能夠說它是鏈接客戶端->網關->服務端的一個流程)
優勢:
快速簡單,靈活,無連接,無狀態
缺點:
通訊使用明文,內容可能被竊聽;
不驗證通訊方的身份,所以有可能遭遇假裝;
沒法證實報文的完整性,有可能已遭篡改
什麼是https?
http加上加密處理和認證以及完整性保護(SSL)後即HTTPS
優勢
HTTPS的優勢就是HTTP的缺點的相反。
缺點:
慢,更耗CPU及內存資源,還有一個就是須要一筆夠買證書的費用🤣
隨便說一口什麼是SSL:
ssl是獨立HTTP協議的,是當今世界上應用最爲普遍的網絡安全技術。它採用的加密方式是
公開密鑰加密的加密處理方式。
複製代碼
1.xss跨站腳本攻擊
xss也分爲:
1.反射型xss
什麼是反射型xss?
反射型xss就是經過將噁心代碼嵌入到URL中,經過URL傳給服務端,
而後服務端會將惡意代碼取出,拼接在HTML字符串上返回給瀏覽器
,並被執行,從而形成網站被攻擊。
防禦:服務器拿到URL字符串參數以後,能夠經過encodeURIComponent()轉義後
再拼接到HTML返回給瀏覽器。
2.DOM型xss
什麼是DOM型xss?
DOM型xss主要是前端js代碼不夠嚴謹把不可信的內容插入到了頁面中
從而形成網站被攻擊。
防禦:對於添加內容中的url和src能夠經過encodeURIComponent()轉義;
對於單引號,雙引號,標籤(‘「<>),能夠經過正則表達式替換
成(<,>,",&apos)
3.存儲型xss
這個本渣也看的懵懵逼逼就不說了(以後看懂了再補上)
2.CSRF跨站請求僞造
什麼是CSRF?
CSRF就是攻擊者經過誘導(好比xxx動畫站,什麼荷官在線發牌,你們懂得。。。)
被攻擊者進入第三方站點,而後第三方網站向被攻擊者網站發送一個跨站
請求,利用被攻擊者註冊的憑證,繞開服務端的驗證,從而達到對被攻擊者網站執行某項操做的目的。
防禦:請求添加驗證碼,或者添加token。。
複製代碼
以上本渣是對《圖解HTTP》的一些經常使用的東西總結,有不到位的但願大佬的指出。服務器