(寫此文是為了自己參考加深自我印象,很多是用自己的話總結的,有錯誤感謝指出!僅供參考)
沒有了會話層和表示層,把這些功能留給程式開發者處理
相當於資料鏈路和物理層合併為網路介面層
序號 seq用於對位元組流編號 表示第乙個位元組的編號
確認號 ack期望收到的下乙個報文段的序號 只有當ack=1時,確認號才有效
syn(同步序列號) 用於建立連線的過程
fin(finish標誌) 用於釋放連線
ack只有當ack=1時,確認號才有效,當建立tcp連線後,所有傳送報文都必須把ack置為1
為什麼要三次握手呢?
為了防止客戶端失效的連線請求開啟伺服器連線,如果客戶端傳送了請求,請求在網路中滯留,客戶端將超時重新發起連線請求,而經過一段時間,超時的請求可能還會傳送到伺服器,如果沒有三次握手,這時候伺服器就會開啟兩個連線。
為什麼要四次揮手才釋放連線呢
因為當客戶端傳送釋放報文後,伺服器端可能仍有資料放鬆,是為了讓伺服器段傳送完未傳送的資料後,伺服器端再傳送釋放報文。
為什麼要等待2msl再關閉連線呢
是為了確保客戶端傳送的確認報文順利到達伺服器,如果客戶端傳送的確認報文中途丟失,那麼伺服器端就會一直請求客戶端,如果這時候客戶端關閉了,那伺服器端就會一直傳送fin=1的資料報文段
建立連線後,客戶端出現
使用保活機制解決這個問題。每次伺服器傳送資料,就重置保活計時器,當保活計時器達到一定的時間內,tcp傳送探測報文,達到一定的次數沒有相應就關閉連線
tcp是怎麼實現差錯控制和流量控制,擁塞避免的
通過超時重傳實現,如果乙個傳送的報文在超時時間內沒有得到回應,將會重新傳送 。乙個報文段從傳送到再到接受確認所經過的時間稱為往返時間rtt,超時時間應該略大於往返時間的加權平均值
①首先經過dns協議,解析網域名稱對應的伺服器位址,dns協議首先會在本地快取查詢時候存在網域名稱對應的ip位址,然後再查詢上層的dns伺服器。
②傳送tcp連線,三次握手建立連線
③傳送http請求
④伺服器接受http請求並返回http報文
⑤瀏覽器解析報文內容,渲染頁面
⑥連線結束,四次揮手釋放連線
cookie只能儲存ascii編碼,而sessionkk而已儲存任何型別的資料,因此在考慮資料複雜性時,優先使用cookie。
對於大型**,如果資訊都存在session中,伺服器開銷是非常大的。
session可以存放在redis中,加快訪問
session和cookie作用
使用者個性化的東西,比如購物車,登陸狀態,使用者自定義設定,主題等
https並不是新協議,而是結合了http和ssl(secure sockets layer) 也就是說https使用了隧道進行通訊 先讓htttp和ssl通訊 再由ssl和tcp通訊。
埠號不同http預設埠號是80 https是443
- http1.0和http1.1的區別
長連線
http1.0需要使用keep-alive引數來保持乙個長連線,而http1.1預設支援長連線和請求流水線處理。
長連線就是可以一直保持連線,不需要每乙個tcp請求都開啟乙個連線,也就是乙個tcp連線處理多個http請求和相應,減少了建立和關閉連線的資源消耗。流水線處理,客戶端不用等待上一次請求結果返回,就可以發出下一次請求。
頻寬優化
http1.1支援只傳送header資訊。如果伺服器認為客戶端有權請求伺服器,返回100,否則返回401.如果客戶端收到100,才開始把body部分傳送到伺服器,節約了頻寬。
狀態碼
http1.1新增了24個錯誤狀態碼 如409(conflict)表示請求的資源與資源的當前狀態發生衝突;410(gone)表示伺服器上的某個資源被永久性的刪除
host頭處理
支援虛擬主機 http1.0認為每台機器都繫結唯一的ip位址,虛擬主機技術的發展,多個ip位址可以對應同一臺物理機器,所以在http1.1的請求頭和相應體中都支援host頭域,如果沒有host資訊會報告400錯誤
快取
引入更多快取控制策略,提供更多可選擇的快取頭,優化快取
分塊傳輸
支援只傳送物件的一部分。而不是請求整個物件
uri是統一資源識別符號,可以唯一標誌乙個資源
url是統一資源定位符,可以提供該資源的路徑。它是一種具體的資源。即uri用來標識乙個資源,url不僅標識資源,還指明了資源的訪問位置。
dns用的是udp協議
dns伺服器更多的是要求速度,輸乙個網域名稱,越快解析出ip位址越好,傳輸的資料量也不大,udp是不可靠傳輸,如果過程出錯,重試就好,代價也不大,主要是出於速度和降低伺服器壓力考慮,降低伺服器的負載 降低網路流量
http1.0 、 http1.1與http2.0的主要區別
面試知識點 計算機網路
目錄tcp與udp的區別 三次握手建立連線 四次揮手釋放連線 瀏覽器工作原理 tcp的可靠交付是依靠停止等待協議和連續arq協議 ack seq欄位的意義 只有ack 1時,ack欄位才有意義 連線請求時,syn 1,ack 0 響應請求,syn 1,ack 1 最後一次握手的作用?防止失效的連線請...
計算機網路知識點
internet protocol有7層。卡車運硬碟問題 相同時間內兩種方案要傳輸相同的資料量。tb gb,b means byte,1 byte 8 bits.what is a connection it consists of four values 1.source ip 2.source ...
計算機網路知識點
應用層 http 傳輸層 tcp,udp 網路層 ip 資料鏈路層 mac 物理層 網線 傳輸層中用tcp協議傳送資料 三次握手 syn 同步 ack 答覆 fin 結束 6.http的請求報文 請求行 request line 請求頭部 header 空行,請求資料 requesdata 請求行 ...