圖解http是一本挺好的協議入門書籍,主要講http協議,在這裏記錄一下學習總結
(因爲在看書的時候記得文字筆記,所以底下會有許多圖片,字醜別嫌棄)
TCP/IP協議是互聯網各類協議族的總稱
分爲應用層,傳輸層,網絡層,鏈路層
http協議爲其子集,是處於應用層
IP協議(網絡層) Internet Protocol 網際協議
IP地址:節點分配的地址(可變換)
MAC地址:網卡所屬固定地址(不可變換)(Media Access Control Address)
ARP地址解析協議:兩臺電腦網絡通信時數據經過多臺中轉電腦,用ARP解析,根據IP解析出MAC地址
(這個傳輸中轉過程稱爲路由選擇)
(Address Resolution Protocol)
TCP協議(傳輸層) Transmission Control Protocol 傳輸控制協議
字節流服務:將大塊數據分割爲報文段爲單位的數據包進行管理
三次握手確認傳輸成功:
1.先發送SYN標誌的數據包給對方
2.對方發送SYN/ACK標誌表示傳達確認
3.再發送SYN標誌表示傳輸結束
SYN:synchronize ACK:acknowledgement
DNS服務(應用層) Domain Name System
域名到IP地址的解析服務
計算機可以被賦予IP地址,也可以被賦予主機名和域名
URI統一資源標識符
U:uniform:規定統一格式 R:resource:可標識的任何資源 I:identifier:標識符
登錄信息:指定用戶名和密碼
服務器地址:域名或IPv4地址
端口號:省略則爲默認端口號
查詢字符串:非必須
片段標識符:非必須
URL統一資源定位符
HTTP協議:超文本傳輸協議 HyperText Transfer Protocol
HTTP協議能明確區分客戶端和服務端
請求報文的構成:請求行,請求首部字段,內容實體
響應報文的構成:狀態行,響應首部字段,主體
http協議是無狀態協議:對於發送過的請求或響應不做持久化(Cookie技術可以用於持久化)\
http請求方法類型:
get,post,put,head,delete,options,trace,connect
get:獲取資源 post:傳輸實體主體 put:傳輸文件 head:獲得報文首部 delete:刪除文件 options:詢問支持的方法
trace:追蹤路徑△ connect:用隧道協議連接代理 通常用get和post
網絡隧道傳輸:使用SSL和TLS加密後傳輸
SSL:Secure Sockets Layer 安全套接層
TLS:Transport Layer Security 傳輸安全層
報文首部的概念:請求行/狀態行 +首部字段=報文首部
報文:HTTP通信的基本單位,8位字節流組成
實體:作爲請求/響應的有效載荷數據被傳輸,內容由實體首部和實體主體構成
通常情況下: 報文等價於實體(只是稱呼不同) 如果傳輸過程中進行編程則產生差異
壓縮傳輸的內容編碼(類似於文件壓縮的概念):
一種應用在實體內容上的編碼格式,並且保持實體信息原樣壓縮,由客戶端接收之後解碼使用
常見類型:gzip,compress,deflate,identity
△分割發送的分塊傳輸編碼:把實體主體分塊傳輸的一種編碼
獲取部分內容的範圍請求:
可以使用首部字段Range指定獲取部分資源
Range: bytes =0-3000,5000-7000
獲取0-3000字節和5000-7000字節的數據
△內容協商返回最合適內容:根據首部字段返回最合適資源(中英版本,編碼版本....)
狀態碼:告知返回的請求結果:
狀態碼的類別
最具代表性的14種:
最常見的就是200 OK和404 Not Found
持久連接和管線化:
舊版http協議每次http通信就斷開一次連接,因而推出這兩個技術(http1.1默認持久連接)
持久連接:建立一次TCP連接後,沒有明確表示斷開則保持TCP連接狀態
管線化:建立持久連接後,不等第一個請求收到響應就發送下一個請求
Cookie技術:在請求/響應報文內寫入Cookie信息
第一次響應時服務器端加入Cookie信息<set-Cookie:....>
第二次請求時,客戶端就在請求報文中加入Cookie信息 Cookie:....
P.s.制定HTTP協議技術標準的文檔稱爲RFC:request for comments 徵求修正意見書
虛擬主機:實現單服務器搭建多個Web站點,對應多個域名
http訪問虛擬主機由於IP地址相同,所以必須在Host首部完整指定主機名或者域名
代理服務器:客戶端和服務端的"中間人"角色
每次經過代理服務器,會追加寫入Via首部信息
用途:1.利用緩存技術減少網絡帶寬的流量 2.對於特定網站的訪問控制 3.獲取訪問日誌
分類方式:1.是否使用緩存 2.是否修改報文
透明代理:經過代理時不對報文做任何加工
緩存代理:在響應時存一份副本在代理服務器上,下次再請求相同內容時將緩存資源返回給客戶端
緩存服務器:代理服務器的一種,減少源服務器的資源請求.緩存副本存在有效期.緩存還可以存在於本來瀏覽器中.
網關:類似於代理,可以與非HTTP服務器通信(例:數據庫,信用卡結算系統聯動)
本書具體沒講網關,所以我也不知道啥是網關
除了HTTP的另外應用層協議:
FTP:文件傳輸協議 File Transfer Protocol 一種用於文件訪問的協議,最常見在企業內網服務器之間,學校內網服務器之間的協議
(FTP無法是網頁形式的,所以互聯網基本都用HTTP)
NNTP協議:涼了 WAIS協議:涼了 Archie協議:涼了 Gopher:涼了
___________________________分割線___________________________