http常被問到的知識總結

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

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

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

《圖解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》的一些經常使用的東西總結,有不到位的但願大佬的指出。服務器

相關文章
相關標籤/搜索