網絡基本協議
五層模型: 應用層、傳輸層、網絡層、鏈接層、實體層
1、實體層:把電腦連接起來的物理手段,主要規定了網絡的一些電氣特性,負責傳送0和1的電信號
2、鏈接層:在實體層上方,確定0和1的分組方式,主要內容有以太網協議(一組電信號構成一個數據包: 標頭和數據),MAC地址(網卡),廣播
3、網絡層: 主機之間的通訊
路由,網址(確定計算機所在的子網絡,32位二進制組成)、IP協議,
子網掩碼:判斷任意兩個IP地址是否在同一子網絡
IP數據包: 包含IP地址信息,放在以太網數據包的數據裏
ARP協議:用於獲取同一子網絡內的主機的MAC地址
不在同一子網絡,將數據包傳送到兩個子網絡的連接處,即網關,由網關來處理獲取MAC地址
4、傳輸層: 端口之間的通訊
端口:表示數據包由哪個程序使用,0~65535之間的整數,0~1023被系統占用
UDP:UDP數據包放在IP數據包的數據部分。簡單但是可靠性差,無法判斷對方是否收到
TCP:每發出一個數據包都需要確認,確保數據不回丟失,但實現困難,過程復雜,消耗資源
5、應用層
規定郵件、網頁、FTP數據的格式,這些應用程序的協議就構成了應用層
參考鏈接:http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html
http://www.alloyteam.com/2016/07/httphttp2-0spdyhttps-reading-this-is-enough/
一、http
1、Hyper Text Transfer Protocol,用於服務器傳輸超文本到本地瀏覽器的傳送協議,基於TCP/IP傳送數據,是一個基於應用層的面向對象的協議
2、簡單(協議簡單),靈活(可傳輸任意類型的數據對象,由Content-Type標記)、無連接(每次處理一個請求然後斷開)、無狀態(對於事物處理沒有記憶能力,後續處理需要之前的信息則必須重傳)
3、request
a: 請求行(請求類型、請求資源、HTTP協議版本)
b: 請求頭(附加信息如User-Agent,Host)
c: 空行
d: 請求數據
4、response
a: 狀態行(HTTP協議版本、狀態碼、狀態消息)
b: 消息報頭(用來說明客戶端使用的一些附加消息)
c: 空行
b: 響應正文
5、狀態碼
1xx: 指示信息-- 請求已接收,繼續處理
2xx: 成功--請求已被成功接收
3xx: 重定向--要完成請求必須更進一步的操作
4xx: 客戶端錯誤--請求有語法錯誤或者請求無法實現
5xx: 服務器錯誤--服務器未能實現合法的請求
6、請求方法
http1.0: GET、POST、HEAD
http1.1: OPTIONS、PUT、DELETE、TRACE、CONNECT
7、http工作原理
a: 客戶端連接到web服務器(TCP套接字連接)
b: 發送http請求(請求行、請求頭、空行、請求數據)
通過TCP套接字客戶端向web服務器發送一個文本的請求報文
c: 服務器接收請求並返回http響應(狀態行、響應頭、空行、響應數據)
web服務器解析請求,定位請求資源,服務器將資源復本寫到TCP套接字,由客戶端讀取
d: 釋放TCP連接
若connection模式為close,則服務器主動關閉TCP連接,客戶端被動關閉連接,釋放TCP連接
,若connection模式為keep-alive,則連接會保持一段時間,在該時間內可以繼續接收請求
e: 客戶端解析HTML內容
客戶端首先解析狀態行,查看請求狀態碼,然後解析每一個響應頭,再讀取響應數據HTML, 顯示在瀏覽器窗口
參考鏈接:https://www.cnblogs.com/ranyonsue/p/5984001.html
網絡基本協議