HTTP是一個應用層協議,由請求和回應構成,是一個標準的客戶端服務模型。 HTTP通常承載於TCP協定之上,有時候也承載於TLS或SSL協定層之上,這時候,就成了常說的HTTPS。預設HTTP的連接埠號碼為80,HTTPS的連接埠號碼為443。
缺點是服務端不會主動的向客戶端PUSH
SPDY協定的應用程式需要用戶端瀏覽器和伺服器端同時支援。優化了瀏覽器和伺服器之間的通信,支援流復用,具備優先順序的請求,主動發起請求,強制SSL安全傳輸等先進的特性
4.1.2 HTTP協定如何運作
瀏覽網頁是HTTP協定的主要應用,一次HTTP操作稱為一個事務
1 客戶機於伺服器需要建立連接,點擊某個超鏈接,HTTP協定的工作開始。
2 建立連線後,用戶端傳送一個請求給伺服器。
3 伺服器接收到請求後,給予對應的回應訊息
4 用戶端接收伺服器傳回的訊息並顯示在使用者的顯示器上,然後用戶端與伺服器斷開連線
HTTP協定中的一些主要概念
1 請求
HTTP請求由三個部分組成:請求頭,請求標頭,請求正文
請求列:Method Request-URL HTTP-Version CRLF
Method :請求方法(GET,POST,HEAD,PUT,,DELETE,TRACE,CONLETETE,TRACE,#OPST,HEAD,PUT,DELETE,TRACE,CONLETE
## 2 回應
HTTP回應也由三個部分組成:分別為狀態行,訊息標頭,訊息回應正文
Status-Code Reason-Phrase CRLF
HTTP Version:服務器HTTP協議的版本
Status-Code:服務器發回的響應狀態代碼
Reason Phrase:狀態代碼的文字描述
狀態代碼有三位數字組成,五種可能取值#
## 503 Server Unavailable:伺服器目前無法處理客戶端的請求,一段時間後可能會恢復正常
# 請求標頭、回應標頭、實體標頭
1 普通標頭中有少數標頭域用於所有的請求和回應訊息,但並未用於傳輸的實體,且只用於傳輸的訊息(快取控制、連線控制)
2 請求標頭允許客戶端傳遞要求給伺服器端的額外資訊以及用戶端本身的資訊(UA頭,Accept)
3 回應標頭允許伺服器傳遞無法放在狀態列中的額外回應訊息,以及關於伺服器的資訊和對Request URL所識別的資源進行下一步存取的資訊(Location)
# 4 實體標頭定義了實體內文和要求所識別的資源的元資訊,例如有無實體文字
幾個較重要的封包:# :頭域指定請求資源的Internet主機和連接埠號,必須表示請求URL的原始伺服器或網關的位置。
User Agent:簡稱UA,內容包含發出要求的使用者資訊。通常包含瀏覽者的信息,主要是瀏覽器的名稱版本和所使用的作業系統
Accept:告訴伺服器可以接受的檔案格式。通常這個值在各種瀏覽器中都差不多。
Cookie:分成兩種:一種是客戶端想伺服器傳送的使用Cookie封包頭,可以有多個數值,另一種是伺服器傳送給瀏覽器的,標頭為Set Cookie,只能有一個值,需要指明domain,path
Cache Control:指定請求與回應遵循的快取機制。在要求訊息或回應訊息設定Cache Control並不會修改另一個訊息過程中的快取處理過程。請求時快取指令包括no cache,no store,max age,max state,no transform,must revalidate,proxy revalidate,max age
Referer:頭域允許客戶端指定請求提供客戶端的來源資源位址,這可以允許伺服器產生回退鍊錶,用來登錄,最佳化緩存,Referer通常是流量統計系統用來記錄來訪者位址的參數
Content Length:內容長度
Content Range:回應的資源範圍。可以在每次請求中標記請求的資源範圍,在連線斷開重連時,用戶端只請求該資源未下載的部分,而不是重新請求整個資源,實現斷點續傳。迅雷就是這個原理,使用多執行緒分段讀取網路傻女孩的資源,最後合併
Accept Encoding:指定能接收的編碼方式
# 標頭:在http訊息中,也可以使用一些在http1.1中正式規範裡沒有定義的頭字段。
相關推薦:
php中header使用的HTTP協定用法摘要
#
以上是HTTP協定實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!