《HTTP权威指南》学习笔记——HTTP报文
HTTP報文
HTTP:互聯網的信使
HTTP報文:信使用來搬東西的包裹
1.報文流
HTTP報文:HTTP應用程序之間發送的數據塊
組成:元信息開頭(文本形式,描述報文的內容和含義)+可選的數據部分。
2.報文的組成部分
三部分組成:
- 起始行(描述報文)
- 首部塊(屬性)
- 主體部分(主體)
報文的語法:
兩類:請求報文和響應報文
請求報文格式:
<method><request-URL><version> <headers> <entity-body>響應報文格式:
<version><status><reason-phrase> <headers> <entity-body>- 方法 對資源執行的動作 如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
允許客戶端在最終將請求發送給服務器時,看看它變成什么樣子
3.狀態碼
HTTP狀態碼被分成了五大類
3.1 100——199 信息性狀態碼
HTTP/1.1向協議中引入信息性狀態碼,這些狀態碼相對較新,由于復雜性和感知價值存在一些爭議,而受到限制。
3.2 200——299 成功狀態碼
3.3 300——399 重定向狀態碼
重定向狀態碼要么告知客戶端使用替代位置來訪問他們所感興趣的資源,要么就提供一個替代的響應而不是資源的內容。
304 Not Modified 若客戶端發起GET請求,而最近資源未被修改的話
就應該用這個狀態碼來說明資源未被修改。帶有這個狀態碼的響應不應該包含實體的主體部分。
3.4 400——499 客戶端錯誤狀態碼
客戶端發送一些服務端無法處理的東西,如格式錯誤的請求報文,不存在的URL
3.5 500——599 服務器錯誤狀態碼
客戶端發送有效請求,服務器卻出錯。
首部
首部和方法配合工作,共同決定客戶端和服務器能做什么事情。
在請求報文和響應報文中都可以用首部來提供信息。
首部可以分為5個類型:
- 通用首部 客戶端和服務器都可以使用的通用首部,提供一些通用功能
如 Date:Sat, 13 Feb 2016 12:09:32 GMT - 請求首部 請求報文特有的,為服務器提供一些額外的信息
如 Accept:image/webp,image/*,*/*;q=0.8 - 響應首部
- 實體首部 用于應對實體主體部分的首部
Content-Type:text/plain; charset=utf-8 - 拓展首部 非標準的首部,由應用程序開發者創建。
總結
以上是生活随笔為你收集整理的《HTTP权威指南》学习笔记——HTTP报文的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装win7和centos6.7双系统
- 下一篇: QQ最新版布局猜想