• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            socketref,再見!高德

            https://github.com/adoggie

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(54)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1358128

            http頭的組成:
            ==============
             HTTP頭字段包括4類:
                   general-header ;
                 request-header ;
                   response-header ;
                 entity-header .
             
            *******************************************************************************
             General Header Fields
            =============================
               general header是request、response都可用的, 但是不能用于entity.
             
             
                   -- Cache-Control
                   -- Connection
                   -- Date
                   -- Pragma
                   -- Trailer
                   -- Transfer-Encoding
                   -- Upgrade
                   -- Via
                   -- Warning
             
            *******************************************************************************
             Request Header Fields
            ======================
             
               request-header fields 允許客戶端傳遞關(guān)于request和客戶端的附加信息到服務(wù)端,
             
                   -- Accept
                   -- Accept-Charset
                   -- Accept-Encoding
                   -- Accept-Language
                   -- Authorization
                   -- Expect
                   -- From
                   -- Host
                   -- If-Match
                   -- If-Modified-Since
                   -- If-None-Match
                   -- If-Range
                   -- If-Unmodified-Since
                   -- Max-Forwards
                   -- Proxy-Authorization
                   -- Range
                   -- Referer
                   -- TE
                   -- User-Agent
             
            *******************************************************************************
              Response Header Fields
            ===============================
             
               response-header fields 允許服務(wù)端傳遞關(guān)于response的、不能放到Status-Line的附加信息。
               這些頭給出關(guān)于服務(wù)端的信息。  
             
                  -- Accept-Ranges
                  -- Age
                  -- ETag
                  -- Location
                  -- Proxy-Authenticate
                  -- Retry-After
                  -- Server
                  -- Vary
                  -- WWW-Authenticate
             
            *******************************************************************************
             Entity Header Fields
            ========================
             
               Entity-header fields 定義關(guān)于entity-body的metainformation(標(biāo)題字段數(shù)據(jù)),
               如果當(dāng)前沒有body, 則定義被request確定的資源信息.
               一些metainformation是可選的; 一些是必須的。
             
                   -- Allow
                   -- Content-Encoding
                   -- Content-Language
                   -- Content-Length
                   -- Content-Location
                   -- Content-MD5
                   -- Content-Range
                   -- Content-Type
                   -- Expires
                   -- Last-Modified
                   -- extension-header


            【轉(zhuǎn)自】http://www.x5dj.com/userforum/00100239/00305167.shtml

            一、基礎(chǔ)篇
            HTTP(HyperTextTransferProtocol)是超文本傳輸協(xié)議的縮寫,它用于傳送WWW方式的數(shù)據(jù),關(guān)于HTTP協(xié)議的詳細(xì)內(nèi)容請(qǐng)參 考RFC2616。HTTP協(xié)議采用了請(qǐng)求/響應(yīng)模型??蛻舳讼蚍?wù)器發(fā)送一個(gè)請(qǐng)求,請(qǐng)求頭包含請(qǐng)求的方法、URI、協(xié)議版本、以及包含請(qǐng)求修飾符、客戶 信息和內(nèi)容的類似于MIME的消息結(jié)構(gòu)。服務(wù)器以一個(gè)狀態(tài)行作為響應(yīng),相應(yīng)的內(nèi)容包括消息協(xié)議的版本,成功或者錯(cuò)誤編碼加上包含服務(wù)器信息、實(shí)體元信息以 及可能的實(shí)體內(nèi)容。
            通常HTTP消息包括客戶機(jī)向服務(wù)器的請(qǐng)求消息和服務(wù)器向客戶機(jī)的響應(yīng)消息。這兩種類型的消息由一個(gè)起始行,一個(gè)或者多個(gè)頭域,一個(gè)只是頭域結(jié)束的空行和可選的消息體組成。HTTP的頭域包括通用頭,請(qǐng)求頭,響應(yīng)頭和實(shí)體頭四個(gè)部分。每個(gè)頭域由一個(gè)域名,冒號(hào)(:)和域值三部分組成。域名是大小寫無關(guān)的,域值前可以添加任何數(shù)量的空格符,頭域可以被擴(kuò)展為多行,在每行開始處,使用至少一個(gè)空格或制表符。
            1、通用頭域
            通用頭域包含請(qǐng)求和響應(yīng)消息都支持的頭域,通用頭域包含Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。對(duì)通用頭域的擴(kuò)展要求通訊雙方都支持此擴(kuò)展,如果存在不支持的通用頭域,一般將會(huì)作為實(shí)體頭域處理。下面簡(jiǎn)單介紹幾個(gè)在UPnP消息中使用的通用頭域。
            Cache-Control頭域
            Cache-Control指定請(qǐng)求和響應(yīng)遵循的緩存機(jī)制。在 請(qǐng)求消息或響應(yīng)消息中設(shè)置Cache-Control并不會(huì)修改另一個(gè)消息處理過程中的緩存處理過程。請(qǐng)求時(shí)的緩存指令包括no-cache、no- store、max-age、max-stale、min-fresh、only-if-cached,響應(yīng)消息中的指令包括public、 private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、 max-age。各個(gè)消息中的指令含義如下:
            Public指示響應(yīng)可被任何緩存區(qū)緩存。
            Private指示對(duì)于單個(gè)用戶的整個(gè)或部分響應(yīng)消息,不能被共享緩存處理。這允許服務(wù)器僅僅描述當(dāng)用戶的部分響應(yīng)消息,此響應(yīng)消息對(duì)于其他用戶的請(qǐng)求無效。
            no-cache指示請(qǐng)求或響應(yīng)消息不能緩存
            no-store用于防止重要的信息被無意的發(fā)布。在請(qǐng)求消息中發(fā)送將使得請(qǐng)求和響應(yīng)消息都不使用緩存。
            max-age指示客戶機(jī)可以接收生存期不大于指定時(shí)間(以秒為單位)的響應(yīng)。
            min-fresh指示客戶機(jī)可以接收響應(yīng)時(shí)間小于當(dāng)前時(shí)間加上指定時(shí)間的響應(yīng)。
            max-stale指示客戶機(jī)可以接收超出超時(shí)期間的響應(yīng)消息。如果指定max-stale消息的值,那么客戶機(jī)可以接收超出超時(shí)期指定值之內(nèi)的響應(yīng)消息。
            Date頭域
            Date頭域表示消息發(fā)送的時(shí)間,時(shí)間的描述格式由rfc822定義。例如,Date:Mon,31Dec200104:25:57GMT。Date描述的時(shí)間表示世界標(biāo)準(zhǔn)時(shí),換算成本地時(shí)間,需要知道用戶所在的時(shí)區(qū)。
            Pragma頭域
            Pragma頭域用來包含實(shí)現(xiàn)特定的指令,最常用的是Pragma:no-cache。在HTTP/1.1協(xié)議中,它的含義和Cache-Control:no-cache相同。
            2、請(qǐng)求消息
            請(qǐng)求消息的第一行為下面的格式:
            Method SP Request-URI SP HTTP-Version CRLF 
            Method表示對(duì)于Request-URI完成的方法,這個(gè)字段是大小寫敏感的,包括OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE。方法GET和HEAD應(yīng)該被所有的通用WEB服務(wù)器支持,其他所有方法的實(shí)現(xiàn)是可選的。GET方法取回由Request-URI標(biāo)識(shí)的信息。HEAD方法也是取回由Request-URI標(biāo)識(shí)的信息,只是可以在響應(yīng)時(shí),不返回消息體。POST方法可以請(qǐng)求服務(wù)器接收包含在請(qǐng)求中的實(shí)體信息,可以用于提交表單,向新聞組、BBS、郵件群組和數(shù)據(jù)庫發(fā)送消息。
            SP表示空格。
            Request-URI遵循URI格式,在此字段為星號(hào)(*)時(shí),說明請(qǐng)求并不用于某個(gè)特定的資源地址,而是用于服務(wù)器本身。
            HTTP-Version表示支持的HTTP版本,例如為HTTP/1.1。
            CRLF表示換行回車符。
            請(qǐng) 求頭域允許客戶端向服務(wù)器傳遞關(guān)于請(qǐng)求或者關(guān)于客戶機(jī)的附加信息。請(qǐng)求頭域可能包含下列字段Accept、Accept-Charset、Accept- Encoding、Accept-Language、Authorization、From、Host、If-Modified-Since、If- Match、If-None-Match、If-Range、If-Range、If-Unmodified-Since、Max-Forwards、 Proxy-Authorization、Range、Referer、User-Agent。對(duì)請(qǐng)求頭域的擴(kuò)展要求通訊雙方都支持,如果存在不支持的請(qǐng)求頭域,一般將會(huì)作為實(shí)體頭域處理。
            典型的請(qǐng)求消息:
            GEThttp://class/download.microtool.de:80/somedata.exe
            Host:download.microtool.de
            Accept:*/*
            Pragma:no-cache
            Cache-Control:no-cache
            Referer:http://class/download.microtool.de/
            User-Agent:Mozilla/4.04[en](Win95;I;Nav)
            Range:bytes=554554-
            上例第一行表示HTTP客戶端(可能是瀏覽器、下載程序)通過GET方法獲得指定URL下的文件。棕色的部分表示請(qǐng)求頭域的信息,綠色的部分表示通用頭部分。
            Host頭域
            Host頭域指定請(qǐng)求資源的Intenet主機(jī)和端口號(hào),必須表示請(qǐng)求url的原始服務(wù)器或網(wǎng)關(guān)的位置。HTTP/1.1請(qǐng)求必須包含主機(jī)頭域,否則系統(tǒng)會(huì)以400狀態(tài)碼返回。
            Referer頭域
            Referer頭域允許客戶端指定請(qǐng)求uri的源資源地址,這可以允許服務(wù)器生成回退鏈表,可用來登陸、優(yōu)化cache等。他也允許廢除的或錯(cuò)誤的連接由于維護(hù)的目的被追蹤。如果請(qǐng)求的uri沒有自己的uri地址,Referer不能被發(fā)送。如果指定的是部分uri地址,則此地址應(yīng)該是一個(gè)相對(duì)地址。
            Range頭域
            Range頭域可以請(qǐng)求實(shí)體的一個(gè)或者多個(gè)子范圍。例如,
            表示頭500個(gè)字節(jié):bytes=0-499
            表示第二個(gè)500字節(jié):bytes=500-999
            表示最后500個(gè)字節(jié):bytes=-500
            表示500字節(jié)以后的范圍:bytes=500-
            第一個(gè)和最后一個(gè)字節(jié):bytes=0-0,-1
            同時(shí)指定幾個(gè)范圍:bytes=500-600,601-999
            但是服務(wù)器可以忽略此請(qǐng)求頭,如果無條件GET包含Range請(qǐng)求頭,響應(yīng)會(huì)以狀態(tài)碼206(PartialContent)返回而不是以200(OK)。
            User-Agent頭域
            User-Agent頭域的內(nèi)容包含發(fā)出請(qǐng)求的用戶信息。

            3、響應(yīng)消息
            響應(yīng)消息的第一行為下面的格式:
            HTTP-Version SP Status-Code SP Reason-Phrase CRLF
            HTTP-Version表示支持的HTTP版本,例如為HTTP/1.1。
            Status-Code是一個(gè)三個(gè)數(shù)字的結(jié)果代碼
            Reason-Phrase給Status-Code提供一個(gè)簡(jiǎn)單的文本描述。Status-Code主要用于機(jī)器自動(dòng)識(shí)別,Reason-Phrase主要用于幫助用戶理解。Status-Code的第一個(gè)數(shù)字定義響應(yīng)的類別,后兩個(gè)數(shù)字沒有分類的作用。第一個(gè)數(shù)字可能取5個(gè)不同的值:
            1xx:信息響應(yīng)類,表示接收到請(qǐng)求并且繼續(xù)處理
            2xx:處理成功響應(yīng)類,表示動(dòng)作被成功接收、理解和接受
            3xx:重定向響應(yīng)類,為了完成指定的動(dòng)作,必須接受進(jìn)一步處理
            4xx:客戶端錯(cuò)誤,客戶請(qǐng)求包含語法錯(cuò)誤或者是不能正確執(zhí)行
            5xx:服務(wù)端錯(cuò)誤,服務(wù)器不能正確執(zhí)行一個(gè)正確的請(qǐng)求
            響 應(yīng)頭域允許服務(wù)器傳遞不能放在狀態(tài)行的附加信息,這些域主要描述服務(wù)器的信息和Request-URI進(jìn)一步的信息。響應(yīng)頭域包含Age、 Location、Proxy-Authenticate、Public、Retry-After、Server、Vary、Warning、WWW- Authenticate。對(duì)響應(yīng)頭域的擴(kuò)展要求通訊雙方都支持,如果存在不支持的響應(yīng)頭域,一般將會(huì)作為實(shí)體頭域處理。
            典型的響應(yīng)消息:
            HTTP/1.0200OK
            Date:Mon,31Dec200104:25:57GMT
            Server:Apache/1.3.14(Unix)
            Content-type:text/html
            Last-modified:Tue,17Apr200106:46:28GMT
            Etag:"a030f020ac7c01:1e9f"
            Content-length:39725426
            Content-range:bytes554554-40279979/40279980
            上例第一行表示HTTP服務(wù)端響應(yīng)一個(gè)GET方法。棕色的部分表示響應(yīng)頭域的信息,綠色的部分表示通用頭部分,紅色的部分表示實(shí)體頭域的信息。
            Location響應(yīng)頭
            Location響應(yīng)頭用于重定向接收者到一個(gè)新URI地址。
            Server響應(yīng)頭
            Server響應(yīng)頭包含處理請(qǐng)求的原始服務(wù)器的軟件信息。此域能包含多個(gè)產(chǎn)品標(biāo)識(shí)和注釋,產(chǎn)品標(biāo)識(shí)一般按照重要性排序。
            4、實(shí)體信息
            請(qǐng)求消息和響應(yīng)消息都可以包含實(shí)體信息,實(shí)體信息一般由實(shí)體頭域和實(shí)體組成。實(shí) 體頭域包含關(guān)于實(shí)體的原信息,實(shí)體頭包括Allow、Content-Base、Content-Encoding、Content-Language、 Content-Length、Content-Location、Content-MD5、Content-Range、Content-Type、 Etag、Expires、Last-Modified、extension-header。extension-header允許客戶端定義新的實(shí)體頭,但是這些域可能無法未接受方識(shí)別。實(shí)體可以是一個(gè)經(jīng)過編碼的字節(jié)流,它的編碼方式由Content-Encoding或Content-Type定義,它的長(zhǎng)度由Content-Length或Content-Range定義。
            Content-Type實(shí)體頭
            Content-Type 實(shí)體頭用于向接收方指示實(shí)體的介質(zhì)類型,指定HEAD方法送到接收方的實(shí)體介質(zhì)類型,或GET方法發(fā)送的請(qǐng)求介質(zhì)類型Content-Range實(shí)體頭
            Content-Range實(shí)體頭
            用于指定整個(gè)實(shí)體中的一部分的插入位置,他也指示了整個(gè)實(shí)體的長(zhǎng)度。在服務(wù)器向客戶返回一個(gè)部分響應(yīng),它必須描述響應(yīng)覆蓋的范圍和整個(gè)實(shí)體長(zhǎng)度。一般格式:
            Content-Range:bytes-unit SP first-byte-pos - last-byte-pos/entity-legth
            例 如,傳送頭500個(gè)字節(jié)次字段的形式:Content-Range:bytes0-499/1234如果一個(gè)http消息包含此節(jié)(例如,對(duì)范圍請(qǐng)求的響 應(yīng)或?qū)σ幌盗蟹秶闹丿B請(qǐng)求),Content-Range表示傳送的范圍,Content-Length表示實(shí)際傳送的字節(jié)數(shù)。
            Last-modified實(shí)體頭
            Last-modified實(shí)體頭指定服務(wù)器上保存內(nèi)容的最后修訂時(shí)間。
            5、 HTTP 頭參考(microsoft)
            HTTP 請(qǐng)求和 HTTP 響應(yīng)都使用頭發(fā)送有關(guān) HTTP 消息的信息。頭由一系列行組成,每行都包含名稱,然后依次是冒號(hào)、空格、值。字段可按任何順序排列。某些頭字段既能用于請(qǐng)求頭也能用于響應(yīng)頭,而另一些頭字段只能用于其中之一。
            許 多請(qǐng)求頭字段都允許客戶端在值部分指定多個(gè)可接受的選項(xiàng),有時(shí)甚至可以對(duì)這些選項(xiàng)的首選項(xiàng)進(jìn)行排名。多個(gè)項(xiàng)以逗號(hào)分隔。例如,客戶端可以發(fā)送包含 “Content-Encoding: gzip, compress,”的請(qǐng)求頭,表示可以接受各種壓縮類型。如果服務(wù)器的響應(yīng)正文使用 gzip 編碼,其響應(yīng)頭中將包含“Content-Encoding: gzip”。
            有些字段可以在單個(gè)頭中出現(xiàn)多次。例如,頭可以有多個(gè)“Warning”字段。
            下 表列出了 HTTP 1.1 頭字段。注意:有些頭字段是 MIME 字段。MIME 字段在 Internet Engineering Task Force (IETF) 文檔 RFC 2045 中進(jìn)行了定義,但也可用于 HTTP 1.1 協(xié)議。有關(guān) MIME 和 HTTP 1.1 規(guī)范的詳細(xì)信息,請(qǐng)參閱 IEIF 頁。
            一般頭字段
            一般頭字段可用于請(qǐng)求消息和響應(yīng)消息。
             名稱          示例值
            Cache-Control
              "max-age=10"
            Connection    "close"
            Date          "Tue, 11 Jul 2000 18:23:51 GMT"
            Pragma        "no-cache"
            Trailer         "Date"
            Transfer-Encoding "chunked"
            Upgrade       "SHTTP/1.3"
            Via            "HTTP/1.1 Proxy1, HTTP/1.1 Proxy2"
            Warning       "112 Disconnected Operation"
            請(qǐng)求頭字段
            請(qǐng)求頭字段僅用于請(qǐng)求消息。
               名稱             示例值
            Accept           "text/html, image/*"
            Accept-Charset   "iso8859-5"
            Accept-Encoding  "gzip, compress"
            Accept-Language "en, fr"
            Authorization     [credentials]
            Content-Encoding "gzip"
            Expect           "100-continue"
            From            "user@microsoft.com"
            Host            "www.microsoft.com"
            If-Match         "entity_tag001"
            If-Modified-Since "Tue, 11 Jul 2000 18:23:51 GMT"
            If-None-Match    "entity_tag001"
            If-Range         "entity_tag001" or "Tue, 11 Jul 2000 18:23:51 GMT"
            If-Unmodified-Since "Tue, 11 Jul 2000 18:23:51 GMT"
            Max-Forwards    "3"
            Proxy-Authorization [credentials]
            Range       "bytes=100-599"
            Referer      "http://www.microsoft.com/resources.asp"
            TE          "trailers"
            User-Agent   "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)"
             
            >>請(qǐng)求頭字段的具體含義
            Accept:
            瀏覽器可接受的MIME類型。
            Accept-Charset:瀏覽器可接受的字符集。
            Accept-Encoding:瀏覽器能夠進(jìn)行解碼的數(shù)據(jù)編碼方式,比如gzip。
            Accept-Language:瀏覽器所希望的語言種類,當(dāng)服務(wù)器能夠提供一種以上的語言版本時(shí)要用到。
            Authorization:授權(quán)信息,通常出現(xiàn)在對(duì)服務(wù)器發(fā)送的WWW-Authenticate頭的應(yīng)答中。
            Connection:表 示是否需要持久連接。如果Servlet看到這里的值為“Keep-Alive”,或者看到請(qǐng)求使用的是HTTP 1.1(HTTP 1.1默認(rèn)進(jìn)行持久連接),它就可以利用持久連接的優(yōu)點(diǎn),當(dāng)頁面包含多個(gè)元素時(shí)(例如Applet,圖片),顯著地減少下載所需要的時(shí)間。要實(shí)現(xiàn)這一點(diǎn), Servlet需要在應(yīng)答中發(fā)送一個(gè)Content-Length頭,最簡(jiǎn)單的實(shí)現(xiàn)方法是:先把內(nèi)容寫入ByteArrayOutputStream,然 后在正式寫出內(nèi)容之前計(jì)算它的大小。
            Content-Length:表示請(qǐng)求消息正文的長(zhǎng)度。
            Cookie:設(shè)置cookie,這是最重要的請(qǐng)求頭信息之一
            From:請(qǐng)求發(fā)送者的email地址,由一些特殊的Web客戶程序使用,瀏覽器不會(huì)用到它。
            Host:初始URL中的主機(jī)和端口。
            If-Modified-Since:只有當(dāng)所請(qǐng)求的內(nèi)容在指定的日期之后又經(jīng)過修改才返回它,否則返回304“Not Modified”應(yīng)答。
            Pragma:指定“no-cache”值表示服務(wù)器必須返回一個(gè)刷新后的文檔,即使它是代理服務(wù)器而且已經(jīng)有了頁面的本地拷貝。
            Referer:包含一個(gè)URL,用戶從該URL代表的頁面出發(fā)訪問當(dāng)前請(qǐng)求的頁面。
            User-Agent:瀏覽器類型,如果Servlet返回的內(nèi)容與瀏覽器類型有關(guān)則該值非常有用。
            UA-Pixels,UA-Color,UA-OS,UA-CPU:由某些版本的IE瀏覽器所發(fā)送的非標(biāo)準(zhǔn)的請(qǐng)求頭,表示屏幕大小、顏色深度、操作系統(tǒng)和CPU類型。
            響應(yīng)頭字段
            響應(yīng)頭字段僅用于響應(yīng)消息。
              名稱          示例值
            Accept-Ranges  "none"
            Age            "2147483648(2^31)"
            ETag           "b38b9-17dd-367c5dcd"
            Last-Modified    "Tue, 11 Jul 2000 18:23:51 GMT"
            Location        "http://localhost/redirecttarget.asp"
            Proxy-Authenticate [challenge]
            Retry-After      "Tue, 11 Jul 2000 18:23:51 GMT" or "60"
            Server         "Microsoft-IIS/5.0"
            Vary            "Date"
            WWW-Authenticate [challenge]
            實(shí)體頭字段
            實(shí)體頭字段可以用于請(qǐng)求消息或響應(yīng)消息。實(shí)體頭字段中包含消息實(shí)體正文的有關(guān)信息,如使用的編碼格式。
               名稱            示例值
            Allow              "GET, HEAD"
            Content-Encoding   "gzip"
            Content-Language  "en"
            Content-Length     "8445"
            Content-Location   "http://localhost/page.asp"
            Content-MD5       [md5-digest]
            Content-Range     "bytes 2543-4532/7898"
            Content-Type      "text/html"
            Expires           "Tue, 11 Jul 2000 18:23:51 GMT"
            Last-Modified      "Tue, 11 Jul 2000 18:23:51 GMT"
            >>實(shí)體頭字段的具體含義
            Allow 服務(wù)器支持哪些請(qǐng)求方法(如GET、POST等)。
            Content-Encoding 文檔的編碼(Encode)方法。只有在解碼之后才可以得到Content-Type頭指定的內(nèi)容類型。利用gzip壓縮文檔能夠顯著地減少HTML文檔 的下載時(shí)間。Java的GZIPOutputStream可以很方便地進(jìn)行g(shù)zip壓縮,但只有Unix上的Netscape和Windows上的IE 4、IE 5才支持它。
            Content-Length 表示內(nèi)容長(zhǎng)度。只有當(dāng)瀏覽器使用持久HTTP連接時(shí)才需要這個(gè)數(shù)據(jù)。
            Content-Type 表示后面的文檔屬于什么MIME類型。Servlet默認(rèn)為text/plain,但通常需要顯式地指定為text/html。
            Date 當(dāng)前的GMT時(shí)間。你可以用setDateHeader來設(shè)置這個(gè)頭以避免轉(zhuǎn)換時(shí)間格式的麻煩。
            Expires 應(yīng)該在什么時(shí)候認(rèn)為文檔已經(jīng)過期,從而不再緩存它?
            Last-Modified 文檔的最后改動(dòng)時(shí)間??蛻艨梢酝ㄟ^If-Modified-Since請(qǐng)求頭提供一個(gè)日期,該請(qǐng)求將被視為一個(gè)條件GET,只有改動(dòng)時(shí)間遲于指定時(shí)間的文檔才會(huì)返回,否則返回一個(gè)304(Not Modified)狀態(tài)。
            Location 表示客戶應(yīng)當(dāng)?shù)侥睦锶ヌ崛∥臋n。Location通常不是直接設(shè)置的,而是通過HttpServletResponse的sendRedirect方法,該方法同時(shí)設(shè)置狀態(tài)代碼為302。
            Refresh 表示瀏覽器應(yīng)該在多少時(shí)間之后刷新文檔,以秒計(jì)。除了刷新當(dāng)前文檔之外,你還可以通過setHeader("Refresh", "5; URL=http://host/path")讓瀏覽器讀取指定的頁面。
            注 意這種功能通常是通過設(shè)置HTML頁面HEAD區(qū)的<META HTTP-EQUIV="Refresh" C>實(shí)現(xiàn),這是因?yàn)椋詣?dòng)刷新或重定向?qū)τ谀切┎荒苁褂肅GI或Servlet的HTML編寫者十分重要。但是,對(duì)于Servlet來說,直接設(shè)置 Refresh頭更加方便。
            注意Refresh的意義是“N秒之后刷新本頁面或訪問指定頁面”,而不是“每隔N秒刷新本頁面或訪問指定頁面 ”。因此,連續(xù)刷新要求每次都發(fā)送一個(gè)Refresh頭,而發(fā)送204狀態(tài)代碼則可以阻止瀏覽器繼續(xù)刷新,不管是使用Refresh頭還是<META HTTP-EQUIV="Refresh" ...>。
            注意Refresh頭不屬于HTTP 1.1正式規(guī)范的一部分,而是一個(gè)擴(kuò)展,但Netscape和IE都支持它。
            請(qǐng)求頭示例
            以下是 HTTP 請(qǐng)求的簡(jiǎn)單示例。
            GET /articles/news/today.asp HTTP/1.1
            Accept: */*
            Accept-Language: en-us
            Connection: Keep-Alive
            Host: localhost
            Referer: http://localhost/links.asp
            User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
            Accept-Encoding: gzip, deflate
            該請(qǐng)求具有請(qǐng)求行,其中包括方法 (GET)、資源路徑 (/articles/news/today.asp) 和 HTTP 版本 (HTTP/1.1)。由于該請(qǐng)求沒有正文,故所有請(qǐng)求行后面的內(nèi)容都是頭的一部分。緊接著頭之后是一個(gè)空行,表示頭已結(jié)束。
            響應(yīng)頭示例
            Web 服務(wù)器可以通過多種方式響應(yīng)前一個(gè)請(qǐng)求。假設(shè)文件是可以訪問的,并且用戶具有查看該文件的權(quán)限,則響應(yīng)類似于:
            HTTP/1.1 200 OK
            Server: Microsoft-IIS/5.0
            Date: Thu, 13 Jul 2000 05:46:53 GMT
            Content-Length: 2291
            Content-Type: text/html
            Set-Cookie: ASPSESSIONIDQQGGGNCG=LKLDFFKCINFLDMFHCBCBMFLJ; path=/
            Cache-control: private
            ...
            響應(yīng)的第一行稱為狀態(tài)行。它包含響應(yīng)所用的 HTTP 版本、狀態(tài)編碼 (200) 和原因短語。示例中包含一個(gè)頭,其中具有五個(gè)字段,接著是一個(gè)空行(回車和換行符),然后是響應(yīng)正文的頭兩行。
            有關(guān)HTTP頭完整、詳細(xì)的說明,請(qǐng)參見http://www.w3.org/Protocols/的HTTP規(guī)范。
             
            附錄:HTTP協(xié)議狀態(tài)碼的含義
              
            狀態(tài)代碼 狀態(tài)信息 含義
            100 Continue 初始的請(qǐng)求已經(jīng)接受,客戶應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求的其余部分。(HTTP 1.1新)
            101 Switching Protocols 服務(wù)器將遵從客戶的請(qǐng)求轉(zhuǎn)換到另外一種協(xié)議(HTTP 1.1新
            200 OK 一切正常,對(duì)GET和POST請(qǐng)求的應(yīng)答文檔跟在后面。
            201 Created 服務(wù)器已經(jīng)創(chuàng)建了文檔,Location頭給出了它的URL。
            202 Accepted 已經(jīng)接受請(qǐng)求,但處理尚未完成。
            203 Non-Authoritative Information 文檔已經(jīng)正常地返回,但一些應(yīng)答頭可能不正確,因?yàn)槭褂玫氖俏臋n的拷貝(HTTP 1.1新)。
            204 No Content 沒有新文檔,瀏覽器應(yīng)該繼續(xù)顯示原來的文檔。
            205 Reset Content 沒有新的內(nèi)容,但瀏覽器應(yīng)該重置它所顯示的內(nèi)容。用來強(qiáng)制瀏覽器清除表單輸入內(nèi)容(HTTP 1.1新)。
            206 Partial Content 客戶發(fā)送了一個(gè)帶有Range頭的GET請(qǐng)求,服務(wù)器完成了它(HTTP 1.1新)。
            300 Multiple Choices 客戶請(qǐng)求的文檔可以在多個(gè)位置找到,這些位置已經(jīng)在返回的文檔內(nèi)列出。如果服務(wù)器要提出優(yōu)先選擇,則應(yīng)該在Location應(yīng)答頭指明。
            301 Moved Permanently 客戶請(qǐng)求的文檔在其他地方,新的URL在Location頭中給出,瀏覽器應(yīng)該自動(dòng)地訪問新的URL。
            302 Found 類似于301,但新的URL應(yīng)該被視為臨時(shí)性的替代,而不是永久性的。注意,在HTTP1.0中對(duì)應(yīng)的狀態(tài)信息是“Moved Temporatily”,出現(xiàn)該狀態(tài)代碼時(shí),瀏覽器能夠自動(dòng)訪問新的URL,因此它是一個(gè)很有用的狀態(tài)代碼。注意這個(gè)狀態(tài)代碼有時(shí)候可以和301替換使 用。例如,如果瀏覽器錯(cuò)誤地請(qǐng)求http://host/~user(缺少了后面的斜杠),有的服務(wù)器返回301,有的則返回302。嚴(yán)格地說,我們只能假定只有當(dāng)原來的請(qǐng)求是GET時(shí)瀏覽器才會(huì)自動(dòng)重定向。請(qǐng)參見307。
            303 See Other 類似于301/302,不同之處在于,如果原來的請(qǐng)求是POST,Location頭指定的重定向目標(biāo)文檔應(yīng)該通過GET提?。℉TTP 1.1新)。
            304 Not Modified 客戶端有緩沖的文檔并發(fā)出了一個(gè)條件性的請(qǐng)求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務(wù)器告訴客戶,原來緩沖的文檔還可以繼續(xù)使用。
            305 Use Proxy 客戶請(qǐng)求的文檔應(yīng)該通過Location頭所指明的代理服務(wù)器提?。℉TTP 1.1新)。
            307 Temporary Redirect 和302(Found)相同。許多瀏覽器會(huì)錯(cuò)誤地響應(yīng)302應(yīng)答進(jìn)行重定向,即使原來的請(qǐng)求是POST,即使它實(shí)際上只能在POST請(qǐng)求的應(yīng)答是303時(shí) 才能重定向。由于這個(gè)原因,HTTP 1.1新增了307,以便更加清除地區(qū)分幾個(gè)狀態(tài)代碼:當(dāng)出現(xiàn)303應(yīng)答時(shí),瀏覽器可以跟隨重定向的GET和POST請(qǐng)求;如果是307應(yīng)答,則瀏覽器只 能跟隨對(duì)GET請(qǐng)求的重定向。(HTTP 1.1新)
            400 Bad Request 請(qǐng)求出現(xiàn)語法錯(cuò)誤。
            401 Unauthorized 客戶試圖未經(jīng)授權(quán)訪問受密碼保護(hù)的頁面。應(yīng)答中會(huì)包含一個(gè)WWW-Authenticate頭,瀏覽器據(jù)此顯示用戶名字/密碼對(duì)話框,然后在填寫合適的Authorization頭后再次發(fā)出請(qǐng)求。
            403 Forbidden 資源不可用。服務(wù)器理解客戶的請(qǐng)求,但拒絕處理它。通常由于服務(wù)器上文件或目錄的權(quán)限設(shè)置導(dǎo)致。
            404 Not Found 無法找到指定位置的資源。這也是一個(gè)常用的應(yīng)答,
            405 Method Not Allowed 請(qǐng)求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)對(duì)指定的資源不適用。(HTTP 1.1新)
            406 Not Acceptable 指定的資源已經(jīng)找到,但它的MIME類型和客戶在Accpet頭中所指定的不兼容(HTTP 1.1新)。
            407 Proxy Authentication Required 類似于401,表示客戶必須先經(jīng)過代理服務(wù)器的授權(quán)。(HTTP 1.1新)
            408 Request Timeout 在服務(wù)器許可的等待時(shí)間內(nèi),客戶一直沒有發(fā)出任何請(qǐng)求。客戶可以在以后重復(fù)同一請(qǐng)求。(HTTP 1.1新)
            409 Conflict 通常和PUT請(qǐng)求有關(guān)。由于請(qǐng)求和資源的當(dāng)前狀態(tài)相沖突,因此請(qǐng)求不能成功。(HTTP 1.1新)
            410 Gone 所請(qǐng)求的文檔已經(jīng)不再可用,而且服務(wù)器不知道應(yīng)該重定向到哪一個(gè)地址。它和404的不同在于,返回407表示文檔永久地離開了指定的位置,而404表示由于未知的原因文檔不可用。(HTTP 1.1新)
            411 Length Required 服務(wù)器不能處理請(qǐng)求,除非客戶發(fā)送一個(gè)Content-Length頭。(HTTP 1.1新)
            412 Precondition Failed 請(qǐng)求頭中指定的一些前提條件失?。℉TTP 1.1新)。
            413 Request Entity Too Large 目標(biāo)文檔的大小超過服務(wù)器當(dāng)前愿意處理的大小。如果服務(wù)器認(rèn)為自己能夠稍后再處理該請(qǐng)求,則應(yīng)該提供一個(gè)Retry-After頭(HTTP 1.1新)。
            414 Request URI Too Long URI太長(zhǎng)(HTTP 1.1新)。
            416 Requested Range Not Satisfiable 服務(wù)器不能滿足客戶在請(qǐng)求中指定的Range頭。(HTTP 1.1新)
            500 Internal Server Error 服務(wù)器遇到了意料不到的情況,不能完成客戶的請(qǐng)求。
            501 Not Implemented 服務(wù)器不支持實(shí)現(xiàn)請(qǐng)求所需要的功能。例如,客戶發(fā)出了一個(gè)服務(wù)器不支持的PUT請(qǐng)求。
            502 Bad Gateway 服務(wù)器作為網(wǎng)關(guān)或者代理時(shí),為了完成請(qǐng)求訪問下一個(gè)服務(wù)器,但該服務(wù)器返回了非法的應(yīng)答。
            503 Service Unavailable 服務(wù)器由于維護(hù)或者負(fù)載過重未能應(yīng)答。
            504 Gateway Timeout 由作為代理或網(wǎng)關(guān)的服務(wù)器使用,表示不能及時(shí)地從遠(yuǎn)程服務(wù)器獲得應(yīng)答。(HTTP 1.1新)
            505 HTTP Version Not Supported 服務(wù)器不支持請(qǐng)求中所指明的HTTP版本
            posted on 2010-11-19 09:48 放屁阿狗 閱讀(586) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            中文字幕无码久久久| 无码人妻少妇久久中文字幕| 久久亚洲2019中文字幕| 国产综合久久久久| 中文字幕久久久久人妻| 人妻无码αv中文字幕久久琪琪布| 国产999精品久久久久久| 久久国产精品99精品国产| 欧美一区二区三区久久综| 欧洲成人午夜精品无码区久久| 久久天天躁夜夜躁狠狠躁2022| 一本色综合久久| 中文字幕无码久久人妻| 久久99精品久久久大学生| 亚洲国产日韩综合久久精品| 久久久久久久免费视频| 麻豆av久久av盛宴av| 久久精品国产亚洲AV忘忧草18| 久久天天躁狠狠躁夜夜2020一| 狠狠色婷婷久久综合频道日韩| 精品国产青草久久久久福利| 伊人久久大香线蕉av不变影院| 无遮挡粉嫩小泬久久久久久久| 99国产精品久久| 国产高清国内精品福利99久久| 久久精品国产国产精品四凭| 久久国产高清一区二区三区| 亚洲欧美精品一区久久中文字幕| 久久亚洲中文字幕精品一区| 人妻丰满AV无码久久不卡| 国产精品久久久久…| 国产精品青草久久久久福利99| 久久精品国产亚洲精品| 色妞色综合久久夜夜| 99久久免费国产精品热| 26uuu久久五月天| 深夜久久AAAAA级毛片免费看| 99久久精品免费看国产一区二区三区 | 精品国产青草久久久久福利| 日韩精品久久久久久久电影蜜臀| 久久99久久99小草精品免视看|