1.HTTP報文
分爲3部分:
【報文首部】服務器端或客戶端需處理的請求或響應的內容及屬性
【空行(CR+LF)】CR(Carriage Return,回車符)和LF(Line Feed,換行符)
【報文主體】應被髮送的數據
其中報文首部又分爲:
請求/響應行
請求/響應首部字段
通用首部字段
實體首部字段
其他
2.編碼提升傳輸速率
HTTP協議中內容編碼指明應用在實體內容上的編碼格式,並保持實體信息原樣壓縮。
內容編碼後的實體由客戶端接收並負責解碼。
在傳輸大容量數據時,使用分塊傳輸編碼(Chunked Transfer Coding)通過把數據分割成多塊,能夠讓瀏覽器逐步顯示頁面。
3.發送多種數據的多部分對象集合
HTTP協議採用多部分對象集合(Multipart),發送的一份報文主體內可包含多類型實體。通常在圖片或這文本文件等上傳時使用。需要在首部字段裏夾上Content-Type。
- multipart/from-data 在Web表單文件上傳時使用
- multipart/byteranges 狀態碼206(Partial Context,部分內容)
4.獲取部分內容的分爲請求
能從之前下載中斷處恢復下載。使用範圍請求(Range Request)指定範圍發送的請求。
例如:
在首部字段Range來指定資源的byte範圍。
Range:bytes=-3000, 5001- // 從一開始到3000字節和從5001字節之後全部的多重範圍
5.內容協商返回最合適的內容
內容協商(Content Negotiation)機制是指客戶端和服務器端就響應的資源內容進行交涉,然後提供給客戶端最爲適合的資源。例如:google對不同國家不同語言的顯示。
包含在請求報文中的某些首部字段就是判斷的基準。
- Accept
- Accept-Charset
- Accept-Encoding
- Accept-Language
- Content-Language