http報文和協議首部

http報文和協議首部

http報文

3》報文格式
         request 報文
            <method> <request-URL> <version>
            <headers>
            <entity-body>
        response 報文
            <version> <status> <reason-phrase>
            <headers>
            <entity-body>
    4》method:請求方法,標明客戶端但願服務器對資源執行的動做。
        GET :從服務器獲取一個資源
        HEAD :只從服務器獲取文檔的響應首部
        POST :向服務器輸入數據,一般會再由網關程序繼續處理
        PUT :將請求的主體部分存儲在服務器中,如上傳文件
        DELETE :請求刪除服務器上指定的文檔
        TRACE :追蹤請求到達服務器中間通過的代理服務器
        OPTIONS :請求服務器返回對指定資源支持使用的請求方法
    5》version:
        HTTP/<major>.<minor>
    6》status:
        三位數字,標記請求處理過程當中發生的狀況。
            1xx :100-101 信息提示
            2xx :200-206 成功
            3xx :300-305 重定向
            4xx :400-415 錯誤類信息,客戶端錯誤
            5xx :500-505 錯誤類信息,服務器端錯誤
        經常使用狀態碼
            200:成功,請求數據經過響應報文的entity-body 部分發送;OK
            301:請求的URL 指向的資源已經被刪除;但在響應報文中經過首部Location 指明瞭資源如今所處的新位置;Moved Permanently
            302:響應報文Location置 指明資源臨時新位置 Moved Temporarily
            304:客戶端發出了條件式請求,但服務器上的資源不曾發生改變,則經過響應此響應狀態碼通知客戶端;Not Modified
            401:須要輸入帳號和密碼認證方能訪問資源;Unauthorized
            403:請求被禁止;Forbidden
            404:服務器沒法找到客戶端請求的資源;Not Found
            500:服務器內部錯誤;Internal Server Error
            501:
            502:代理服務器從後端服務器收到了一條僞響應,如沒法鏈接到網關;Bad Gateway
            503:服務不可用,臨時服務器維護或過載,服務器沒法處理請求
            504:網關超時
            
            
    7》reason-phrase: 
        狀態碼所標記的狀態的簡要描述
    8》headers:每一個請求或響應報文可包含任意個首部;每一個首部都有首部名稱,後面跟一個冒號,然後跟一個可選空格,接着是一個值。
    9》entity-body;請求時附加的數據或響應時附加的數據。

http協議首部

1》首部的分類:
        通用首部
        請求首部
        響應首部
        實體首部
        擴展首部
    2》通用首部:
        Date:報文的建立時間
        Connection:鏈接狀態,如keep-alive, close
        Via:顯示報文通過的中間節點(代理,網關)
        Cache-Control:控制緩存,如緩存時長
        MIME-Version: 發送端使用的MIME
    3》請求首部:
        Accept:通知服務器本身可接受的媒體類型
        Accept-Charset: 客戶端可接受的字符集
        Accept-Encoding:客戶端可接受編碼格式,如gzip
        Accept-Language:客戶端可 接受的語言
        Client-IP:  請求的客戶端IP
        Host:  請求的服務器名稱和端口號
        Referer:跳轉至當前URI 的前一個URL
        User-Agent:客戶端代理,瀏覽器版本
        1。條件式請求首部:
            Expect:容許客戶端列出某請求所要求的服務器行爲
            If-Modified-Since :自從指定的時間以後,請求的資源是否發生過修改
            If-Unmodified-Since :與上面相反
            If-None-Match :本地緩存中存儲的文檔的ETag 標籤是否與服務器文檔的Etag 不匹配
            If-Match :與上面相反
        2。安全請求首部:
            Authorization:向服務器發送認證信息,如帳號和密碼
            Cookie:客戶端向服務器發送cookie
            Cookie2:用於說明請求端支持的cookie 版本
        3。代理請求首部:
            Proxy-Authorization: 向代理服務器認證
    4》響應首部:
        信息性:
            Age :從最初建立開始,響應持續時長
            Server :服務器程序軟件名稱和版本
        協商首部:某資源有多種表示方法時使用
            Accept-Ranges :服務器可接受的請求範圍類型
            Vary :服務器查看的其它首部列表
        安全響應首部:
            Set-Cookie :向客戶端設置cookie    
            Set-Cookie2:  以上面類似
            WWW-Authenticate:來自服務器對客戶端的質詢列表
    5》實體首部:
        Allow:  列出對此資源實體可以使用的請求方法
        Location :告訴客戶端真正的實體位於何處
        Content-Encoding: 對主體執行的編碼
        Content-Language: 理解主體時最適合的語言
        Content-Length:  主體的長度
        Content-Location:  實體真正所處位置
        Content-Type :主體的對象類型,如text
        緩存相關:
            ETag :實體的擴展標籤
            Expires :實體的過時時間
            Last-Modified :最後一次修改的時間
    
    6)mod_deflate 模塊
        使用mod_deflate 模塊壓縮頁面優化傳輸速度
        適用場景:
            (1)  節約帶寬,額外消耗CPU ;同時,可能有些較老瀏覽器不支持
            (2)  壓縮適於壓縮的資源,例如文本文件
            LoadModule deflate_module modules/mod_deflate.so
            #mod_deflate configuration
                SetOutputFilter DEFLATE
            # Restrict compression to these MIME types
                AddOutputFilterByType DEFLATE text/plain
                AddOutputFilterByType DEFLATE text/html
                AddOutputFilterByType DEFLATE application/xhtml+xml
                AddOutputFilterByType DEFLATE text/xml
                AddOutputFilterByType DEFLATE application/xml
                AddOutputFilterByType DEFLATE application/x-javascript
                AddOutputFilterByType DEFLATE text/javascript
                AddOutputFilterByType DEFLATE text/css
            # Level of compression (Highest 9 - Lowest 1)
                DeflateCompressionLevel 9
            
            排除特定舊版本的瀏覽器,不支持壓縮
            #Netscape 4.x  只壓縮text/html
                BrowserMatch ^Mozilla/4 gzip-only-text/html
            #Netscape 4.06-08本 三個版本不壓縮
                BrowserMatch ^Mozilla/4\.0[678] no-gzip
            #MSIE masquerade as Netscape,but it is fine
                Internet Explorer 標識自己爲「Mozilla / 4 」,但其實是可以處理請求的壓縮。若是用戶代理首部匹配字符串「MSIE 」(「B」爲單詞邊界」),就關閉以前定義的限制
                BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
相關文章
相關標籤/搜索