http:網際網路的信使
http封包:信使用來搬東西的包裹
http封包:http應用程式之間發送的資料塊
組成:元資訊開頭(文本形式,描述封包的内容和含義)+可選的資料部分。
三部分組成:
起始行(描述封包)
首部塊(屬性)
主體部分(主體)
兩類:請求封包和響應封包

請求封包格式:
響應封包格式:
方法 對資源執行的動作 如get、post等
請求url
版本 http版本,如http/1.1
狀态碼 status-code 描述請求過程中發生的情況
原因短語
首部
實體的主體部分
請求行:說明要做些什麼
響應行:說明發生了什麼
方法:告訴伺服器做什麼事情
狀态碼:告訴用戶端發生了什麼
常見狀态碼:
200 ok 成功
404 not found 未找到
原因短語:文本形式的解釋,如http/1.0 200 ok,ok就是原因短語
版本号:http/x.y 告知對方自己所遵循的協定版本
起始行後面跟着0,1或多個http首部字段
http首部字段向請求和響應封包中添加一些附加資訊
本質是鍵值對的清單
安全方法
http請求不會在伺服器上産生結果,get方法和head方法就是安全方法
get
用于請求伺服器發送某個資源
head
與get方法類似,伺服器在響應中隻傳回首部
put
向伺服器寫入文檔(get是從伺服器讀取文檔)
post
向伺服器輸入資料,用它來支援html表單
post用于向伺服器發送資料,put用于向伺服器上的資源中存儲資料
trace
允許用戶端在最終将請求發送給伺服器時,看看它變成什麼樣子
http狀态碼被分成了五大類
http/1.1向協定中引入資訊性狀态碼,這些狀态碼相對較新,由于複雜性和感覺價值存在一些争議,而受到限制。
重定向狀态碼要麼告知用戶端使用替代位置來通路他們所感興趣的資源,要麼就提供一個替代的響應而不是資源的内容。
304 not modified 若用戶端發起get請求,而最近資源未被修改的話
就應該用這個狀态碼來說明資源未被修改。帶有這個狀态碼的響應不應該包含實體的主體部分。
用戶端發送一些服務端無法處理的東西,如格式錯誤的請求封包,不存在的url
用戶端發送有效請求,伺服器卻出錯。
首部和方法配合工作,共同決定用戶端和伺服器能做什麼事情。
在請求封包和響應封包中都可以用首部來提供資訊。
首部可以分為5個類型:
通用首部 用戶端和伺服器都可以使用的通用首部,提供一些通用功能
如 <code>date:sat, 13 feb 2016 12:09:32 gmt</code>
請求首部 請求封包特有的,為伺服器提供一些額外的資訊
如 <code>accept:image/webp,image/*,*/*;q=0.8</code>
響應首部
實體首部 用于應對實體主體部分的首部
<code>content-type:text/plain; charset=utf-8</code>
拓展首部 非标準的首部,由應用程式開發者建立。
原文位址:http://www.cnblogs.com/johntsai/p/5188356.html