HTTP報文
1.用于Http協(xié)議交互的信息稱為HTTP報文糕非。請求端的http報文叫做請求報文,響應端的叫做響應報文咙轩。
2.HTTP報文大致可分為報文首部和報文主體倆部分
3.請求報文和響應報文結構
請求報文包含四部分:
a、請求行:包含請求方法、URI谒主、HTTP版本信息
b、請求首部字段:包含表示請求的各種條件和各類首部
c赃阀、空行
d霎肯、請求內容實體(請求數(shù)據)
響應報文包含四部分:
a、狀態(tài)行:包含HTTP版本榛斯、狀態(tài)碼观游、狀態(tài)碼的原因短語
b、響應首部字段:包含表示響應的各種條件和各類首部
c驮俗、空行
d懂缕、響應內容實體(響應數(shù)據)
4.編碼提升傳輸速率
HTTP在傳輸數(shù)據時可以按照數(shù)據原貌直接傳輸,也可以在傳輸過程中通過編碼來提升傳輸速率王凑。編碼需要計算機來完成搪柑,所以會消耗cpu資源
報文實體和實體主體的區(qū)別
HTTP報文德智體用于傳輸請求或響應的實體主體
5.壓縮傳輸編碼
http中的內容編碼類似于zip壓縮文件聋丝,指明應用在實體內容上的編碼格式,保持實體信息原樣壓縮工碾∪跄溃客戶端接收并解碼
常見的內容編碼 gzip compress deflate identity
6.分割發(fā)送的分塊傳輸編碼
請求的編碼實體資源尚未全部傳輸完成之前,瀏覽器無法顯示請求頁面渊额。在傳輸大容量數(shù)據時况木,通過把數(shù)據分割成多塊,能夠讓瀏覽器逐步顯示頁面
7.狀態(tài)碼
常見的HTTP響應狀態(tài)碼**
1xx:指示信息--表示請求已接收旬迹,繼續(xù)處理
2xx:成功--表示請求已被成功接收火惊、理解、接受
3xx:重定向--要完成請求必須進行更進一步的操作
4xx:客戶端錯誤--請求有語法錯誤或請求無法實現(xiàn)
5xx:服務器端錯誤--服務器未能實現(xiàn)合法的請求
200:請求被正常處理
204:請求被受理但沒有資源可以返回
206:表示客戶端進行了范圍請求舱权,而服務器成功執(zhí)行了這部分的GET請求矗晃,響應報文中通過Content-Range指定范圍的資源。
301:永久性重定向
302:臨時重定向(可以用來做網址劫持)
303:與302狀態(tài)碼有相似功能宴倍,只是它希望客戶端在請求一個URI的時候张症,能通過GET方法重定向到另一個URI上
304:發(fā)送附帶條件的請求時,條件不滿足時返回鸵贬,與重定向無關
307:臨時重定向俗他,與302類似,只是強制要求使用POST方法
400:請求報文語法有誤阔逼,服務器無法識別
401:表示發(fā)送的請求需要有通過HTTP認證的認證信息兆衅。
403:對請求資源的訪問被服務器拒絕了
404:服務器無法找到對應資源,url可能不正確
500:服務器內部錯誤嗜浮,可能存在bug
503:表明服務器暫時處于超負荷或正在進行停機維護羡亩,現(xiàn)在無法處理請求。
8.與HTTP協(xié)作的Web服務器
單臺虛擬機實現(xiàn)多個域名
代理 具有轉發(fā)功能危融,攀巖服務器與客戶端中間人的角色
網關 轉發(fā)其他服務器通信數(shù)據的服務器
隧道 在相隔甚遠的客戶端和服務器倆者之間進行中轉畏铆,并保持雙方通信連接
HTTP通信時,除了客戶端和服務器以外吉殃,代理辞居,網關和隧道配合服務器工作,用戶通信數(shù)據轉發(fā)
9.保存資源的緩存
緩存是指代理服務器或客戶端本地磁盤內保存的資源副本蛋勺。
緩存服務器是代理服務器的一種瓦灶,并歸類在緩存代理類型中.當代理轉發(fā)從服務器返回的響應時,代理服務器將會保存一份資源副本
10.客戶端的緩存 臨時網絡文件
瀏覽器緩存如果有效抱完,就不必再向服務器請求相同的資源贼陶,可以從本地磁盤內讀取。但是也有有效期
11.首部字段結構
首部字段由首部字段名和字段值構成,中間用冒號“:”分割
首部字段名:字段值
首部字段類型
根據實際用途分為以下4種類型
通用首部字段:請求報文和響應報文倆方都會使用的首部
請求首部字段:從客戶端向服務端發(fā)送請求報文時使用的首部
響應首部字段:從服務端向客戶端返回響應報文時使用的首部
實體首部字段:針對請求報文和響應報文的實體部分使用的首部