http常被問到的知識總結

NO IMAGE

最近上班和下班的路上,行人空空如也,沒了他日的吵鬧,沒了他日繁榮,此時心裡有種不是滋味的滋味,賊難受🥺;希望疫情趕緊走

吧,還我正常的生活;病毒無情,人間有愛!中國加油,武漢加油!

http常被問到的知識總結

本渣也藉著這段有錢吃不飽飯,有錢買不到口罩,拉屎不敢蹲公測,看到公交地跌空蕩蕩卻不敢上…的日子,把當初在某當買的

《圖解Http》看了一篇,也正好最近用得上。這本書忘記是什麼時候買的了,一直沒去看過,一直拿來墊鼠標,覺得挺對不起它的

畢竟我是它爹。

看完這本《圖解Http》,本渣總結了一些常用到或者被問到的知識點。


1.TCP/IP通信的傳輸流流程

首先簡單的描述一下,TCP/IP通信的傳輸流的整個流程。
http(客戶端)<->TCP<->IP<->網絡<->網絡<->IP<->TCP<->http(服務端)
這個流成大概是這樣的:首先作為發送端的客戶端在應用層(http協議)發出一個想看xxx.xxx.com
網站的http請求。接著,為了方便傳輸,在傳輸層(TCP協議)把從應用層收到的數據(http請求報文)
進行分割,並在各個報文上打上標記序號及端口號後轉發給網絡層。然後在網絡層(IP協議),增加
作為通信目的地的MAC地址後轉發給鏈路層,到這裡發往網絡請求就準備好了。
接受端的服務器在鏈路層接收到數據,按序往上發送,一直到應用層,這樣才算服務端接收到客戶端
發送過來的http請求。

2.從瀏覽器輸入到看到頁面的過程

首先用戶輸入URL,接著此URL會被DNS解析找到對應的IP地址,然後會與目標服務器建立TCP鏈接(TCP鏈接
也叫著TCP三次握手,所謂的三次握手就是,客戶端一開始給服務端發送一個帶SYN標誌的數據包;服務端
接收到後,會給客戶端發送一個SYN/ACK標誌到數據包;然後客服端接收到了再給服務端發送一個ACK的數據
包;這樣三次握手完成後就建立起了TCP鏈接);建立好鏈接後,TCP協議還會將http請求的報文分割成報文段,
按序號分為多個報文段,發送給對應的服務端;然後服務端的TCP協議接收到報文段後,按序號以原來的順序重組
報文段,然後服務端找到對應的內容返回給瀏覽器。此時瀏覽器開始解析該返回文檔,首頁瀏覽器會先解析HTML,
生成DOM樹,再解析css,生成規則樹,最後結合兩者,生成渲染樹,在生成渲染樹的過程中瀏覽器會調用GPU繪製,
合成圖層,顯示在屏幕上。

3.HTTP所有請求方法的作用

1.GET
作用:用來請求訪問已被URI識別的資源。
2.POST
作用:用來傳輸實體的主體。
3.PUT
作用:用來傳輸文件。
4.HEAD
作用:獲取報文首部。
5.DELETE
作用:用於刪除文件,跟put剛好相反。
6.OPTIONS
作用:用來查詢針對請求URI指定的資源支持的方法。

4.HTTP的持久鏈接

在請求頭設置Connection:keep-alive(http1.1默認為持久鏈接)

5.設置Cookie

響應頭設置set-cookie
請求頭設置cookie

6.http狀態碼

狀態碼有一下幾種類型:
1xx:接收的請求正在處理
2xx:請求正常處理完畢
3xx:需要進行附加操作以完成請求
4xx:服務器無法處理請求
5xx:服務器處理請求出錯

下面簡單說幾個常用的狀態碼

200:表示從客戶端發到服務端的請求被正常處理成功
204:表示服務端接收的請求已成功處理,但在返回的響應報文中不含實體的主體部分
206:表示客戶端進行了範圍請求,而服務端成功執行了這部分的GET請求
301:表示永久重定向
302:表示臨時重定向
304:表示服務端資源未改變,可直接使用客戶端未過期的緩存
400:表示請求報文中存在語法錯誤
401:表示發送的請求需要有HTTP認證(BASIC認證,DIGEST認證)的認證信息
403:表示服務端拒絕了客戶端的請求訪問
404:表示服務端未找到客戶端請求的地址
500:表示服務端在執行請求時發生的錯誤
503:表示服務端暫時處於超負荷或正在進行停機維護

7.HTTP和HTTPS

什麼是HTTP?
HTTP是以超文本傳輸的協議作為規範,完成從客戶端到服務端等一系列運作流程。
(也可以說它是連接客戶端->網關->服務端的一個流程)
優點:
快速簡單,靈活,無鏈接,無狀態
缺點:
通信使用明文,內容可能被竊聽;
不驗證通信方的身份,因此有可能遭遇偽裝;
無法證明報文的完整性,有可能已遭篡改
什麼是https?
http加上加密處理和認證以及完整性保護(SSL)後即HTTPS
優點
HTTPS的優點就是HTTP的缺點的相反。
缺點:
慢,更耗CPU及內存資源,還有一個就是需要一筆夠買證書的費用🤣
隨便說一口什麼是SSL:
ssl是獨立HTTP協議的,是當今世界上應用最為廣泛的網絡安全技術。它採用的加密方式是
公開密鑰加密的加密處理方式。

8.web的常用攻擊技術和防護

1.xss跨站腳本攻擊
xss也分為:
1.反射型xss
什麼是反射型xss?
反射型xss就是通過將噁心代碼嵌入到URL中,通過URL傳給服務端,
然後服務端會將惡意代碼取出,拼接在HTML字符串上返回給瀏覽器
,並被執行,從而造成網站被攻擊。
防護:服務器拿到URL字符串參數之後,可以通過encodeURIComponent()轉義後
再拼接到HTML返回給瀏覽器。
2.DOM型xss
什麼是DOM型xss?
DOM型xss主要是前端js代碼不夠嚴謹把不可信的內容插入到了頁面中
從而造成網站被攻擊。
防護:對於添加內容中的url和src可以通過encodeURIComponent()轉義;
對於單引號,雙引號,標籤(‘“<>),可以通過正則表達式替換
成(&lt,&gt,&quot,&apos)
3.存儲型xss
這個本渣也看的懵懵逼逼就不說了(之後看懂了再補上)
2.CSRF跨站請求偽造
什麼是CSRF?
CSRF就是攻擊者通過誘導(比如xxx動畫站,什麼荷官在線發牌,大家懂得。。。)
被攻擊者進入第三方站點,然後第三方網站向被攻擊者網站發送一個跨站
請求,利用被攻擊者註冊的憑證,繞開服務端的驗證,從而達到對被攻擊者網站執行某項操作的目的。
防護:請求添加驗證碼,或者添加token。。

以上本渣是對《圖解HTTP》的一些常用的東西總結,有不到位的希望大佬的指出。

http常被問到的知識總結

相關文章

SpringBoot要怎麼學?要學哪些東西?要不要先學SSM?鬆哥說說看法

前端代碼是怎樣智能生成的業務邏輯智能生成篇

從零手寫一套Express的源碼

🔥Webpack插件開發如此簡單!