国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

前端必知必會HTTP請求系列(三)HTTP報文內的http信息

Invoker / 2148人閱讀

摘要:報文用于協議交互的信息被稱為報文。現在出現的各種首部字段及狀態碼稍后會闡述。狀態碼響應報文包含了多個范圍的內容使用。如果服務器無法響應范圍請求,則會返回狀態碼和完整的實體內容。

http報文

用于HTTP協議交互的信息被稱為HTTP報文。請求端的http報文叫做請求報文,響應端的叫做響應報文,HTTP報文本身有多行數據構成的字符串文本。

http報文大致可分為報文首部和報文主體兩塊,報文主體兩塊。兩者由最初出租。出現的空行來劃分,通常并不一定要有報文主體。

請求報文及響應報文的結構

我們來看一下請求報文和響應報文的結構。
請求報文和響應報文的首部內容由以下數據組成。現在出現的各種首部字段及狀態碼稍后會闡述。

新浪微博請求示例


請求行

包含用于請求方法,請求URL和HTTP請求

狀態行

包含表明響應結果的狀態碼,原因短語和HTTP版本

首部字段

包含表示,請求和響應的各種條件和屬性的各類首部
一般有四種首部分別是通用首部,請求首部,響應首部,實體守護

其他

能包含HTTP的RFC,里面未定義的首部

編碼提升傳輸效率

HTTP在傳輸數據時可以按照數據原貌直接傳輸,但也可以。在傳輸過程,通過編碼提升傳輸效率。通過在傳輸是編碼,能有效地處理大量的訪問請求,但是編碼的操作需要計算機來完成,因此會消耗更多的CPU資源

報文主體和實體主體的差異

報文

是HTTP通信中的基本單位,是由八位組節流。組成通過HTTP通信傳輸

實體

作為請求或響應的有效載荷,數據被傳輸,其內容有實體守護和出題主體組成
HTTP的主體用于傳輸請求或響應的實體主體。
通常報文主體等于實體主體。只有當天傳輸中進行編碼操作時,實體主體的內容發生變化,才導致他和報文主體產生差異
報文和實體這兩個術語在之后會經常出現,請事先理解兩者的差異

壓縮傳輸的內容編碼

像待發送郵件內增加附件時,為了使郵件容量變小,我們會先用zip壓縮文件之后再添加附件發送
HTTP協議中有一種被稱為內容編碼的功能,也能進行類似的操作,內容編碼指明應用在實體內容上的編碼格式,并保持實體信息原樣壓縮,內容編碼后的實體由客戶端接收并負責解碼

常用的內容編碼有以下幾種

gzip

comperss(UNIX 系統的標準壓縮)

deflate(zlib)

identity(不進行編碼)

分割發送的分塊傳輸編碼

在HTTP通信過程中,請求的編碼實體資源尚未全部傳輸完成,之前瀏覽器無法顯示請求頁面,在傳輸大容量數據時,通過把數據分割成多塊,能夠讓瀏覽器逐步顯示頁面
這種把實體分塊的功能稱之為分塊傳輸編碼


分塊傳輸編碼會將實體主體分成多個部分,每一塊都會用16進制來標記塊大小,而實體主體最后一塊會使用“0(CR+LF)”來標記
使用分塊傳輸編碼的實體主題,會有接收的客戶端,負責解碼,恢復到編碼前的實體主體
HTTP1.1中存在一種稱為傳輸編碼(transfer coding)的機制,他可以在通信時按某種編碼方式傳輸,但指定一多用于分塊傳輸編碼中

發送多種數據的多部分對象集合

發送郵件時,我們可以在郵件里寫入文字并添加多份附件。這是因為采用了MIME(Multipurpose Internet Mail Extensions, 多用途因特網郵件擴展)機制。它允許郵件處理文本,圖片,視頻等多個不同類型的數據。例如,圖片等二進制數據以ASCII碼字符串編碼的方式指明,就是利用MIME來描述標記數據類型。而在MIME擴展中會使用一種稱為多部分對象集合(Multipart)的方法,來容納多份不同類型的數據。
相應的HTTP協議中也采納了多部分對象集合,發送的一份報文主體可含有多類型實體。通常是在圖片或文本文件等上傳時使用。
多部分對象集合包含的對象如下。

multipart/form-data

在web表單上傳時使用。

multipart/byteranges

狀態碼206響應報文包含了多個范圍的內容使用。
在HTTP報文中使用多部分對象集合時需要在首部字段里面加Content-type。有關這舍不得知道,我們稍后講解
使用boundary字符串來劃分多部分對象集合指令的各類實體,在boundary字符串指定的各個實體的起始行之前插入“--”標記(例如:--AaB03x、--THIS_STRING_SEPARATES)而在多部分對象集合對應的字符串的最后,插入“--”標記作為結束
多部分對象集合的每個部分類型中都可以含有首部字段,另外可以在某個部分中嵌套,使用多部分對象汽車。

獲取部分內容的范圍請求

以前,用戶不能使用現在這種高速的帶寬訪問互聯網,當時,下載一個尺寸稍微大的圖片或者文件就已經很吃力了。如果下載過程中遇到網絡中斷的情況。那就必須重頭開始,為了解決上面的這個問題,需要一種可恢復的機制,所謂恢復是指能從之前下載中斷處恢復下載。
實現該功能需要指定下載實體的范圍。像這樣,指定范圍發送的請求叫做范圍請求(Range Request)。
對一份10000字節大小的資源,如果使用范圍請求,可以之請求5001~10000字節的資源。
執行范圍請求時,會用到首部字段Rang 來指定資源的byte范圍。byte范圍的指定形式如下:

5001-10000字節

Range: bytes=5001-10000

從5001字節之后全部的

Range: bytes=5001-

從一個開始到3000字節和5000~7000字節的多重范圍

Range: bytes=0-3000, 5000-700

針對范圍請求,響應會返回狀態碼為206 Partial Content 的響應報文。另外,對于多重范圍的范圍請求,響應會在首部字段Content-Type標明multipart/byteranges后返回響應的報文。
如果服務器無法響應范圍請求,則會返回狀態碼200 ok 和完整的實體內容。

內容協商返回最合適的內容

同一個web網站有可能存在著多份相同內容的頁面。比如英語版和中文版的web頁面,他們內容雖然相同,但使用的語言卻不同。
當瀏覽器的默認語言為英語或者是中文的時候,訪問相同的RUI的web頁面時,則會顯示對應的英語版或中文版的web頁面。這樣的機制稱為內容協商。
內容協商機制是指客戶端和服務端就響應的資源進行交涉,然后提供給客戶端最為適合的資源。內容協商會以語言、字符集、編碼方式等為基準判斷響應的資源。
包含在請求報文中的某些首部字段就是判斷的基準。這些首部字段的詳細說明請參考下一部分的內容

Accept

Accept-Charset

Accept-Encoding

Accept-Language

Content-Language

內容協商技術有以下三種類型。
服務器協商(Server-driven Negotiation)
由服務器端進行內容協商。以請求的首部字段為參考,在服務器端自動處理。但對用戶來說,以瀏覽器發送的信息作為判定的依據,并不一定能篩選出最優的內容。
客戶端驅動協商(Agent-driven Negotiation)
有客戶端進行內容協商的方式。用戶從瀏覽器現實的可選項列表中手動選擇。開可以利用JavaScript腳本在web頁面上自動進行上述選擇。比如按OS得類型或瀏覽器的類型,自行切換成PC版頁面或手機版頁面。
透明協商(Transparent Negotiation)
是服務器驅動和客戶端驅動的結合體,是由服務器端和客戶端各自進行內容協商的一種方法。

前端必知必會HTTP請求系列(一)了解Web及網絡基礎
前端必知必會HTTP請求系列(二)簡單一點的HTTP協議
前端必知必會HTTP請求系列(三)HTTP,報文內部的HTTP信息
前端必知必會HTTP請求系列(四)返回結果的HTTP狀態碼
前端必知必會HTTP請求系列(五)與HTTP協作的web服務器
前端必知必會HTTP請求系列(六)HTTP的首部
前端必知必會HTTP請求系列(七)確保Web安全的HTTPS
前端必知必會HTTP請求系列(八)確認訪問用戶身份的認證
前端必知必會HTTP請求系列(九)基于HTTP的功能追加協議
前端必知必會HTTP請求系列(十)構建Web內容的技術
前端必知必會HTTP請求系列(十一)Web攻擊技術
有什么問題可以到評論區留言,持續關注,不斷更新!

本文作者前端技術小哥,轉載請聲明
新前端技術交流群召集前端技術人,這里有Node.js/Vue.js/React.js/React-Native.js/微信小程序 技術問題交流。歡迎加入!群號:426334209
點擊鏈接加入群聊【前端技術交流群】http://qm.qq.com/cgi-bin/qm/q...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104244.html

相關文章

  • 前端必知必會HTTP請求系列(二)簡單一點的HTTP協議

    摘要:通過請求和響應的交換達成通信協議中已經規定了請求是從客戶端發出,最后由服務端響應這個請求并返回。隨后的字符串指明了請求訪問的資源對象。協議自身不對請求和響應之間的通信狀態進行保存,也就是說這個級別。從前發送請求后需等待并受到響應。 showImg(https://segmentfault.com/img/bVbmDsG?w=1024&h=538); http協議用戶客戶端和服務器之間的...

    xbynet 評論0 收藏0
  • 前端必知必會HTTP請求系列(一)了解Web及網絡基礎

    摘要:誕生了在深入學習之前我們來了解一下他的背景,同時了解一下當時制定的初衷,這樣有助于我們更好的理解。為知識共享而規劃的在年月,互聯網還只屬于少數人,在互聯網的前期,誕生了。的成長時代年月,成功研發了世界上第一臺服務器和瀏覽器。 showImg(https://segmentfault.com/img/bVblTgr?w=800&h=400);在當前大前端的環境下,前后端分離,前后端同構等...

    qylost 評論0 收藏0
  • JWT必知必會

    摘要:最近,項目的安全認證機制全面采用。為了伸縮性考慮,采用機制,必然面臨著應用狀態的問題,而且必然牽涉到的復制。為了安全性考慮,機制僅驗證時天然對免疫。若有可能,使用標志。采用來防止這是因為,在站點上發起向站點的請求時,站點的同樣會被發送給。 最近,項目的安全認證機制全面采用JWT。現在,趁整個工作基本告一段落之際,將一些知識點總結一下發布出來。 為什么要遷移? 原因很簡單,就以下幾點: ...

    張金寶 評論0 收藏0

發表評論

0條評論

Invoker

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<