作為乙個開發人員,如果您經常跟客戶端、伺服器打交道,肯定要懂點http協議內容,對於開發除錯至關重要。
http協議 (hypertext transfer protocol,超文字傳輸協議)是網際網路上應用最為廣泛的一種網路傳輸協議,所有的www檔案都必須遵守這個標準。它是乙個基於tcp/ip通訊協議來傳遞資料(html 檔案, 檔案, 查詢結果等)。簡單介紹一下內容:
1. http的工作原理
2. http的訊息結構
3. http的請求方式
4. http的響應資訊
5. http的狀態碼類
http協議工作於客戶端-服務端架構為上。瀏覽器作為http客戶端通過url向http服務端即web伺服器傳送所有請求。http協議通訊流程圖:
需要注意的是:
http是基於客戶端/服務端(c/s)的架構模型,通過乙個可靠的鏈結來交換資訊,是乙個無狀態的請求/響應協議。客戶端傳送請求結構圖:乙個http」客戶端」是乙個應用程式(web瀏覽器或其他任何客戶端),通過連線到伺服器達到向伺服器傳送乙個或多個http的請求的目的,和通過接收客戶端的請求並向客戶端傳送http響應資料。
http使用統一資源識別符號(uniform resource identifiers, uri)來傳輸資料和建立連線。一旦建立連線後,資料訊息就通過類似internet郵件所使用的格式[rfc5322]和多用途internet郵件擴充套件(mime)[rfc2045]來傳送。
伺服器響應訊息圖:
常用的請求方式列表:
序號方法描述1
get請求指定的頁面資訊,並返回實體主體。
2head
類似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭
3post
向指定資源提交資料進行處理請求(例如提交表單或者上傳檔案)。資料被包含在請求體中。post請求可能會導致新的資源的建立和/或已有資源的修改。
4put
從客戶端向伺服器傳送的資料取代指定的文件的內容。
5delete
請求伺服器刪除指定的頁面。
6connect
http/1.1協議中預留給能夠將連線改為管道方式的**伺服器。
7options
允許客戶端檢視伺服器的效能。
8trace
回顯伺服器收到的請求,主要用於測試或診斷。
引數列表:
應答頭說明
allow
伺服器支援哪些請求方法(如get、post等)。
content-encoding
文件的編碼(encode)方法。
content-length
表示內容長度。
content-type
表示後面的文件屬於什麼mime型別。
date
當前的gmt時間。
expires
應該在什麼時候認為文件已經過期,從而不再快取它?
last-modified
文件的最後改動時間。
location
表示客戶應當到**去提取文件。
refresh
表示瀏覽器應該在多少時間之後重新整理文件,以秒計。
server
伺服器名字。servlet一般不設定這個值,而是由web伺服器自己設定。
set-cookie
設定和頁面關聯的cookie。
www-authenticate
客戶應該在authorization頭中提供什麼型別的授權資訊?
這是常見的http狀態碼:
具體分類表:
分類分類描述
1**資訊,伺服器收到請求,需要請求者繼續執行操作
2**成功,操作被成功接收並處理
3**重定向,需要進一步的操作以完成請求
4**客戶端錯誤,請求包含語法錯誤或無法完成請求
5**伺服器錯誤,伺服器在處理請求的過程中發生了錯誤
HTTP協議的簡單學習
協議 計算機通訊網路中兩台計算機進行通訊時所必須共同遵守的約定或規則。http協議 hyper text transfer protocol的縮寫,即超文字傳輸協議,是一種規定了瀏覽器和伺服器之間通訊的規則。url 統一資源定位符 http請求主要組成 請求行請求頭 請求體 常見的請求方式包括get...
HTTP學習筆記 HTTP報文
如果說http是網際網路的信使,那麼http報文就是運送的包裹。所有的http程式都是通過互相傳送報文來完成工作的。本文將介紹http報文的流動方式,報文的組成部分,請求和響應報文之間的區別等。http報文是在http應用程式之間傳送的資料塊,這些資料塊以文字形式存在,以描述了報文的內容及含義的元資...
HTTP學習筆記 HTTP協議
tcp ip協議按層次分為四層 應用層,傳輸層,網路層,資料鏈路層。該層決定了向使用者提 用服務時通訊的活動。如ftp和dns服務等。傳輸層有兩個性質不同的協議 tcp和udp協議。網路層的作用就是計算機之間通過網路裝置進行傳輸時,選擇一條傳輸路線。用來處理連線網路的硬體部分,硬體上的範疇均在該層的...