Http協議報文詳解

pathfinder_cui發表於2015-08-15
HTTP報文:
    HTTP請求報文request
    報文格式:
        <method><request-URL><version>
        <headers>
 
        <entity-body>
    
    HTTP響應報文response
    報文格式:
         <version><status><reason-phrase>
         <headers>
         
         <entity-body>

註釋:<version>格式HTTP/<major>.<minor> 如:http/1.1
     
<headers>首部:
        Name:Value
           Content-type:images/gif
        分三類:
          通用首部:請求響應都可以使用的首部
                connection:定義C/S之間關係請求/響應都有關的選項;
                   對於http/1.0,connection:keep-alive
                via:顯示了報文經過的中間節點
                cache-control:快取指示

          請求首部:
                client-IP:
                Host:請求的主機名和埠號
                Refer:網頁跳轉 例如:<a href="test2.html">successful</a>
                user-agent:客戶端什麼工具請求的
                accept首部:使用者標明客戶端自己更傾向於支援的能力;
                accept:指明伺服器能傳送的的媒體型別;
                條件請求首部:
                    if-Modified-Since:是否在指定的時間以來修改過此資源;
                     ...
                跟安全相關的請求首部:
                    authorization:客戶端提交給伺服器端的認證資料,如賬號和密碼
                     cookie:客戶端傳送給伺服器端身份標示
          響應首部:
               age:響應時間
               server:向客戶端標明伺服器程式名稱和版本
               協商首部:
                    accept-ranges:對當前資源來講,伺服器所能接受的範圍型別;
                    vary:
               安全相關的首部
                    set-Cookie:伺服器端在某客戶端第一次請求時發給令牌
                    www-authentication:質詢,即要求客戶端提供賬號和密碼;
                    
<entity-body>  實體首部:用於指定實體屬性的首部
               location:資源的新位置
               allow:允許對此資源使用的請求方法
               內容首部:
                   content-language
               快取首部:
                   Etag:實體標籤
                   expires:過期期限
                   last-Modified:上次修改的時間
                   
          擴充套件首部:非標準首部  如:X-Forward-For
響應報文的狀態嗎:
         1xx:資訊性狀態碼
         2xx:成功類狀態碼
              200:OK
              201:Create
         3xx:重定向狀態碼
              301:Moved Permanently(永久重定向)在響應報文中使用首部“location:URL"指定資源現在所處的位置;
              302:Found (臨時重定向)在響應報文中使用首部"location:URL"指定臨時位置;
              304:Not Modified;客戶端第二次請求時,伺服器告訴客戶端資源沒改,可以使用客戶端本地快取;(條件式請求中使用)
         4xx:代表客戶端錯誤
              403:forbidden,請求被伺服器拒絕;
              404:not found,伺服器沒有客戶端要請求的資源;
              405:請求的方法不對;
         5xx:代表伺服器錯誤
              500:internal server error,伺服器內部錯誤,內部許可權錯誤,指令碼沒有辦法執行;
              502:bad gateway,代理伺服器從上游收到一條偽響應;
              503:service unavailable,伺服器此時無法提供服務,但將來可用
<method>
     GET:請求獲取一個資源,需要伺服器傳送
     HEAD:跟GET相似,但其不需要服務傳送資源而僅傳回響應首部
     POST:支援HTML表單提交,表單中有使用者填入的資料,這些資料會傳送到伺服器端,由伺服器儲存至某位置(例如傳送給處理程式);
     PUT:與get相反,向服務寫入文件;
     DELETE:請求刪除URL指向的資源
     OPTIONS:探測伺服器對某資源所支援的請求方法
     TRACE:跟蹤請求要經過的防火牆、代理或閘道器等

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29620572/viewspace-1772500/,如需轉載,請註明出處,否則將追究法律責任。

相關文章