最近在學習http內容,看了本《圖解http》深有感觸,因此選擇記錄一下學習的內容,也方便一樣想學習的人,可以看到個人內容,對你有所啓發前端
說到http,對咱們前端而言,想到最多的確定就是日常的各類網絡請求,可是你真的知道http具體是什麼,是怎麼產生的嗎?web
http其實是用於從客戶端到服務端等的一系列運做流程的協議,也稱(超文本傳輸協議)。固然,在瞭解http以前,咱們能夠先理解下tcp/ip協議,由於http實際上這是tcp/ip的一個子集。後端
tcp/ip協議按照層次分別分爲了:緩存
在數據傳輸過程當中,層與層之間會添加當前層所屬的首部信息,而後接收端會層層解析下去,最後拿到的就是咱們傳輸的數據 服務器
那麼問題來了,發送端與接收端是若是1對1確認的呢?經過IP傳輸協議,找到對應的IP地址,而後解析IP地址獲取到的MAC地址,MAC地址是你當前網卡所屬的固定地址,因此只要能找到MAC地址,那麼就能惟一確認這就是咱們要找的接收方,固然,並非一次性就能直接找到對應的地址,有多是經過各類中轉而後從MAC地址一直找下去,直到找到所須要的位置。網絡
哈哈哈哈哈,這樣就能從發送端把數據發送到接收端了,可是總會有個新的問題,如何才能確認這個數據的可靠性?tcp
這就涉及到了咱們耳熟能詳的三次握手:post
SYN和ACk是TCP標誌 學習
好了,至此咱們已經基本瞭解tcp/ip協議的簡單內容,那麼如今來了解下http協議具體作了什麼事情吧。編碼
報文分爲請求報文與響應報文,即客戶端發送給服務端的時候發送的請求報文,以及服務端響應客戶端請求時返回去的響應報文。
報文分爲報文首部和報文主體,這裏我只講解咱們前端須要去處理的一部份內容,以及須要瞭解的報文信息。
這是咱們請求或相應的主要內容,即前端請求發送的參數,後端返回的數據
報文首部的內容就比較多了,爲了區分報文的具體類型,因此首部內容及其豐富
上面描述了報文首部咱們須要關注的一些內容,接下來咱們瞭解一下,報文首部的一些配置
首部字段名 | 說明 |
---|---|
Cache-Control | 控制緩存行爲 |
Connection | 逐跳首部、鏈接的管理 |
Date | 建立報文的時間 |
Pragma | 報文指令 |
Trailer | 報文末端的首部一覽 |
Transfer-Encoding | 指定報文主體的傳輸編碼方式 |
Upgrade | 升級爲其餘協議 |
Via | 代理服務器的相關信息 |
Warning | 錯誤通知 |
首部字段名 | 說明 |
---|---|
Accept | 用戶代理可處理的媒體類型 |
Accept-Charset | 優先的字符集 |
Accept-Encoding | 優先的內容編碼 |
Accept-Language | 優先的語言 |
Expect | 期待服務器的特定行爲 |
Authorization | Web認證信息 |
From | 用戶的電子郵箱地址 |
Host | 請求資源所在的服務器 |
If-Match | 比較實體標記(ETag) |
If-modified-Since | 比較資源的更新時間 |
If-None-Match | 比較實體標記 |
If-Range | 資源未更新時發送的Byte的範圍請求 |
If-Unmodified-Since | 比較資源的更新時間(與上一個相反) |
Max-Forwards | 最大傳輸逐跳數 |
Proxy-Authorization | 代理服務器要求客戶端的認證信息 |
Range | 實體的字節範圍請求 |
Refer | 對請求中URI的原始獲取方 |
TE | 傳輸編碼的優先級 |
User-Agent | http客戶端程序的信息 |
首部字段名 | 說明 |
---|---|
Accept-Ranges | 是否接受字節範圍請求 |
Age | 推算資源建立通過時間 |
ETag | 資源的匹配信息 |
Location | 令客戶端重定向至指定URI |
Proxy-Authenticate | 代理服務器對客戶端的認證信息 |
Retry-After | 對再次發起請求的時機要求 |
Server | HTTP服務器的安裝信息 |
Vary | 代理服務器緩存的管理信息 |
WWW-Authenticate | 服務器對客戶端的認證信息 |
以上就是我整理出來的,咱們日常須要用到的關於http的知識,具體的首部字段內容能夠具體去查看下,內容太多,就不一一闡述了
但願對看到的你有幫助