1. 程式人生 > >計算機網路總結

計算機網路總結

1.HTTP—Hyper Text Transfer Protocol,即超文字傳輸協議。是基於tcp協議,屬於應用層協議

2.HTTP由請求報文和相應報文組成

請求報文:

1)請求行:請求方法,URL,協議版本。

2)請求頭部

         Host:請求的主機名

         User-Agent:瀏覽器的具體型別  

         Accept:瀏覽器支援哪些資料型別

          Accept-Language:瀏覽器的語言環境

        Content-Encoding:WEB伺服器表明自己使用了什麼壓縮方法(gzip,deflate)壓縮響應中的物件。

         Cookie:最常用的請求頭,瀏覽器每次都會將cookie傳送到伺服器上,允許伺服器在客戶端儲存少量資料。

        Connection:連線狀態

        Upgrade-Insecure-Requests:安全升級,表示之後的請求都會通過https進行(我的理解)

3)請求資料:Content-Type: text/html; charset='gb2312'

響應報文:

1)響應行:協議版本,狀態碼,狀態碼描述

2)響應頭部

3)響應正文

3.HTTP是無狀態的協議,可以使用cookie和session儲存資料

session本質上也是cookie,seesion儲存資料無大小限制,cookies儲存有大小和數量限制,不同的瀏覽器略有差別,一般在2k-3k左右,數量為50-150左右

4.從瀏覽器輸入一個URL,到展示資料都經歷了什麼

1).查詢本地host檔案,不存在,則請求dns伺服器,dns解析URL得到一個具體IP地址

2)與web伺服器建立TCP連線(3次握手機制),HTTP的預設埠是80,HTTPS的預設埠是443

3)伺服器對使用者的請求做出迴應

4)瀏覽器解析渲染HTML頁面

5)視窗關閉,瀏覽器終端和伺服器的連線

5.HTTP1.0和HTTP1.1的區別:HTTP1.0是短連線,一次請求後,連線斷開;HTTP1.1支援長連線,同一次連線中可以處理多個請求,在請求頭的訊息中connection:keepAlive,會保持連線,如果是close則斷開連線

6.TCP協議是一種面向連線的、可靠的、基於位元組流的運輸層通訊協議。

7.TCP的三次握手和四次揮手

先搞懂幾個概念:ACK確認序號,seq序號,syn請求序號,fin關閉序號,window滑動視窗

等待第三次握手之前的連線稱作半連線,syn攻擊是一種典型的DDOS攻擊

為什麼需要四次揮手?

因為收到fin+ack報文之後,只能證明對方不再發送資料,但可以接受資料,自己的資料也有可能還沒有接受完,所以當資料接受完的時候,再次傳送fin+ack報文,表示可以立即關閉資料。

為什麼需要三次握手?