HTTP協(xié)議規(guī)范化實訓_第1頁
HTTP協(xié)議規(guī)范化實訓_第2頁
HTTP協(xié)議規(guī)范化實訓_第3頁
HTTP協(xié)議規(guī)范化實訓_第4頁
HTTP協(xié)議規(guī)范化實訓_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、實訓十八http協(xié)議規(guī)范化實訓一、實訓目的1、了解http協(xié)議相關(guān)內(nèi)容;2、掌握iittp協(xié)議規(guī)范化的配置方法。二、應用環(huán)境http協(xié)議規(guī)范化是指根據(jù)http協(xié)議本身的一些協(xié)議特性及在正常訪問網(wǎng)站時,協(xié)議交 互的過程中產(chǎn)生的一些配置參數(shù),對這些特性和參數(shù)進行保護和過濾,保護正常準確的信息 能夠完成交互,并對非法的超出規(guī)定的不合法信息加以過濾和阻止。三、實訓設(shè)備1、waf設(shè)備1臺2、pc機2臺3、雙絞線(直通)2根四. 實訓拓撲apc機1/24waf/24透明部署模式pc機2/24五、實訓要求1、按照拓撲連接網(wǎng)絡(luò)2、按照拓撲中的i

2、p地址配置設(shè)備ip六、實訓步驟第一步:在pc機2上部署要進行網(wǎng)絡(luò)爬蟲的網(wǎng)站,并在木地訪問正常,在pc機2上打開瀏 覽器輸入 http:/127. 0. 0. 1/q(ae>5«* “口呀 aft人艮幀q團©內(nèi)2011-03-22bft 人艮jrjrq飛il軟件無也mt2011 03-22c人"jr201103-22 da 人&mvo三方文付企業(yè)戍r介入氛5!*城20110>22e人 milg 分 <r«201?»utubel«2011022 fa 人 swo¥»xk文聲謖20h03-22

3、g人艮顧q電子翻加e20110>22q(sj1a紐濟雯員舍q費金便用hibfit?201103-22dlttftttwt201103-22桶晰公眾網(wǎng)2011 03-22q安tax車他社人電氏臺 (時6內(nèi)咅星利 012011-022asb»g安ant車法電人電m臺低俗內(nèi)saw2011-03-22q(ev»)oltsm«tt»pkh>l«拆辻龍妞臧無彥矗2011-03-22ungnrddigolchma comowwt2011-03-222011 03-22蜩床緒9名利長費產(chǎn)2007-04-122007-04-112007-04.11&

4、#171;£s1州大x: a仗不舷孕m0704-11m0704-11頤公開堂討200s-10-01第二步:在pc機1上打開瀏覽器輸入https:/192.16& 1.2/登錄waf設(shè)備,將保護網(wǎng)站添 加到waf站點管理中,左側(cè)功能樹進入站點->站點管理,點擊新建按鈕d«zii添加宇母開頭字母數(shù)字和下劃線組咸,長度為1到14點分+遊制整數(shù),形如:1到65535之(db披數(shù)每個站點的多個域名間侵用半角逗號分踽,形如:每行為一個站點的所有母名,魯入多個恢名以15號分隔如:,取消輸入web服務(wù)器ip地址和端口,點擊確泄,將網(wǎng)站加入waf保護中站

5、點官理旨斬建迭擇服弄名稱服奔類2s主機地址主機謂口第略篥 站點域名h作jservedhttp192.1681.3803陽価1全迭鬥梆所送注意:此步驟中策略集選擇“無”第三步:在pc機1上打開瀏覽器輸入http:/192.168.l3訪問網(wǎng)站,能夠正常訪問3 i 19246t13會e 訊goopp <aiasuavtfldmu4>»cinetutawttov* ”20071?©b絡(luò)確拿入2007-112003homsanmex: 位不崛 wsa20071-11oemaw vt »a 人 rbag£d疑內(nèi)201m3-22» 人 rbr2

6、0114342 c人 rbkdazhohrabka*20114>» d人cmhnsflfilt 9)介入京im20,1322第四步:在pc機1上打開瀏覽器輸入https:/192.168.l2登錄waf,進入防護-web攻擊 防護-請求限制,點擊新建策略名稱為qq満求限制宙 «»第略描謎門頁i1 習策略xi天閉t測產(chǎn)格i 中攣 責松t新建完成點擊修改請求限制序號笫fig名稱關(guān)閉請束限制檢 1刻2 產(chǎn)格請求除制3 中等請求限制4 克松請求限制策路描謎服務(wù)俸止請求限制檢測功能,用于調(diào)說、排除網(wǎng)絡(luò) 問題。根廁站資漁和用戶訪問情丸,oesili求顒制 根擔網(wǎng)站資源和

7、用戶訪問情;兄,sse請求阻制 一 根據(jù)網(wǎng)站資源和用戶訪問情;兄戢舌請求柬制 一操作5 qq每頁顯示10 軋當前第1/1頁可以看到該項目的許多參數(shù)配置項li , h前輸入框中默認的參數(shù)數(shù)值大小為http協(xié)議規(guī)范 的一個標準值,超過或者小于某些參數(shù)值得時候waf會識別為不正確或者不正常的http數(shù) 據(jù),就會把這種不符合要求的數(shù)據(jù)包丟棄91求限制名稱:qqfii*:327684096包廷請求中的各個報頭旦不包廷請柚body祁分推薦值:32768 (32k)直飼懐數(shù)最大個教:64最多 cookiet:40所吉的cookiebj以後包含在-cookie:生部中(tt*)name«value.

8、以分號編開cookie名最大長度:64彌:64cookieffift 大長度:4096單個cookieft最大長除推薦:4096色廷垂磚苻率。推祜4096 定義url中直磚苻率的最大長廈ourlr大長度: 董謁m苻率最大長曲4096禁止的內(nèi)苔矣型:謂迭繹內(nèi)杏矣型(optionsget,!put 'delete<一>post headj j j jtractconnect已送擇內(nèi)咨矣23|text/htmltext/plam application/xhtmkxml 'image/grf image/jpegv2返回第五步:根據(jù)上面的參數(shù)值我們做一下實驗,這里比較容易

9、做而又顯示比較直觀的是url 最大長度、允許的method.禁止的內(nèi)容類型。我們先做第一個,url最大長度意思就是你在瀏覽器里面輸入的字符串的長度,下面更改的 小一些,更改為10,點擊確定url最大長度:10包括査詢亨苻串。o: 4096添加除送中站點取満進入整體防護策略集-新建策略集qq_zt,在此策略集屮應用qq這個請求限制策略webfft護簞扈cc防枳笨嵐盜鉅防:蟲防護笨爼 掃砂護藁爼 話束隈捌苯聽q<l.zt |防陽快詢bg名稱1£述是否加入第路集關(guān)閉請術(shù)原制檢測停止謂求限刮也劇功能,用于調(diào)試、挎除網(wǎng)絡(luò)問抱» ©產(chǎn)格謁求眼制根闕站資源和用戶訪耐情紀,

10、e中等謂求備制根據(jù)網(wǎng)站吏涌和用戶訪問情況,o竟松清宋原制根ib網(wǎng)站惹障和用戶訪間佰況,qqe |du返回進入站點-站點管理-修改,應用整體策略集qq_zt到站點點分+邊整形如:1到65535之間的整數(shù)毎個站點的多個蟻名間便用半角逗號分烯形 如:,毎行為一個站點吊所育域名,魯入多個無名, 以逗號分躍如:此時我們在瀏覽器里輸入hllp:/192. 168.1.3/訪問網(wǎng)站,會出現(xiàn)“請求包數(shù)據(jù)不符合要求! ” 的提示1用1 |http:/192.168.13請求包數(shù)據(jù)不符合要求!通過我們輸入的url可以得出,輸入的字符超過了 10個,waf就認為這是不正常的數(shù)據(jù), 就阻止掉了

11、。允許的method:請迭擇method已迭擇method同樣我們做允許的method實驗,上面我們已經(jīng)把策略引用到保護了,本次我們直接進入 -web攻擊防護-請求限制-qq策略中修改該策略的參數(shù)即可,從卜圖看到右側(cè)的框中是默 認被選屮的http方法ophons put delete trace connect現(xiàn)在我們在右側(cè)的框中只保留post,點擊保存,之前更改的url最大長度需要還原默認值32768 (32k)cookieff最大長度: 允許的method:請末豪大長度:url最大長度:大長度: 大個數(shù):11 多 cookiemt:cookie名h大長歟此時我們在瀏覽器中輸入http:/1

12、92. 16&1.3訪問web服務(wù)器(此方法訪問網(wǎng)站是屬于 http方法中的get方法),因只允許了 post所以訪問被阻止http:/192.168.13403您所請求的網(wǎng)址(url)無法獲取下面我們做禁止的內(nèi)容類型實驗在第一個實驗屮我們已經(jīng)把策略引用到保護了,本次我們直接進入-web攻擊防護-請求限 制-qq策略中修改該策略的參數(shù)即可,修改前先將第二個實驗中更改的內(nèi)容改冋,再修改 禁止的內(nèi)容類型為text/html,如下圖所示允許的method:loptionsdelete trace connect purge請迭擇method請迭擇內(nèi)咨類型post get heada已迭擇me

13、thod已迭擇內(nèi)谷類型text/html車止的內(nèi)苔類型:application/msword !message/rfc822 multipart/alternative application/x-www-form-l multipart/form-data此時我們在瀏覽器中輸入http:/192. 168. 1. 3/index. php訪問web服務(wù)器的首頁,因策略 屮我們禁止了 text/html類型內(nèi)容的訪問,所以此處訪問會被阻止http:/192.168.13403您所請求的網(wǎng)址(url)無法獲取第六步:通過以上三個實驗說明,有效利用和控制http協(xié)議中的相關(guān)字段和參數(shù)能夠有效 的阻

14、止攻擊保障正常合法的瀏覽同行,而普通的服務(wù)器或者防火墻是無法實現(xiàn)這一點的,只 有通過專業(yè)的web安全設(shè)備waf才可以做到。七、注意事項和排錯1、需要將保護網(wǎng)站添加到waf保護中,才能夠保護生效。2、防護不能生效時檢查配置參數(shù),并重新應用該策略。3、在實驗過程屮注意及時清空瀏覽器緩存以免產(chǎn)生影響。八、配置序列無九、共同思考結(jié)合知識背景思考http的不足?十、課后練習嘗試上述實驗屮的其他參數(shù)進行實驗操作?十一、知識背景http(hypertext transfer protocol)又稱為超文本傳輸協(xié)議,是互聯(lián)網(wǎng)上應用最為廣泛 的一種網(wǎng)絡(luò)協(xié)議。所有的www文件都必須遵守這個標準。設(shè)計http最初的

15、目的是為了 提供一種發(fā)布和接收html頁面的方法。簡介1960年美國人ted nelson構(gòu)思了一種通過計算機處理文本信息的方法,并稱之為超文 本(hypertext),這成為了 http超文本傳輸協(xié)議標準架構(gòu)的發(fā)展根基。ted nelson組 織協(xié) 調(diào)萬維網(wǎng)協(xié)會(world wide web consortium) 0 internet 工作小組(intcmct engineering task force)共同合作研究,最終發(fā)布了一系列的rfc,其屮最著名的就是rfc2616。rfc 2616 定義了 http協(xié)議的我們今天普遍使用的一個版本http l.loted nelson對http

16、技術(shù)的發(fā)展貢獻頗大,被公認為“http之父覽1966年,ted nelson 創(chuàng)立了專注于電腦外圍設(shè)備、電腦包等產(chǎn)品線的http公司。技術(shù)架構(gòu)http是一個客戶端和服務(wù)器端請求和應答的標準(tcp)??蛻舳耸墙K端用戶,服務(wù) 器端是網(wǎng)站。通過使用web瀏覽器、網(wǎng)絡(luò)爬蟲或者其它的工具,客戶端發(fā)起一個到服務(wù)器 上指定端口(默認端口為80)的http請求。(我們稱這個客戶端)叫用戶代理(user agent)o 應答的服務(wù)器上存儲著(一些)資源,比如html文件和圖像。(我們稱)這個應答服務(wù)器 為源服務(wù)器(origin server)o在用戶代理和源服務(wù)器中間可能存在多個屮間層,比如代理, 網(wǎng)關(guān),或者

17、隧道(tunnels)o盡管tcp/ip協(xié)議是互聯(lián)網(wǎng)上最流行的應用,http協(xié)議并沒有 規(guī)定必須使用它和(基于)它支持的層。事實上,http可以在任何其他互聯(lián)網(wǎng)協(xié)議上, 或者在其他網(wǎng)絡(luò)上實現(xiàn)。http只假定(其下層協(xié)議提供)可靠的傳輸,任何能夠提供這種 保證的協(xié)議都可以被其使用。通常,由http客戶端發(fā)起一個請求,建立一個到服務(wù)器指定端口(默認是80端口) 的tcp連接。http服務(wù)器則在那個端口監(jiān)聽客戶端發(fā)送過來的請求。一旦收到請求,服 務(wù)器(向客戶端)發(fā)回一個狀態(tài)行,比如“http/1200 oku,和(響應的)消息,消息的 消息體可能是請求的文件、錯誤消息、或者其它一些信息。http使用

18、tcp而不是udp的原因在于(打開)一個網(wǎng)頁必須傳送很多數(shù)據(jù),而tcp 協(xié)議提供傳輸控制,按順序組織數(shù)據(jù),和錯誤糾正。通過http或者https協(xié)議請求的資源由統(tǒng)一資源標示符(uniform resource identifiers) (或者,更準確一些,urls)來標識。協(xié)議功能http是超文本傳輸協(xié)議,是客戶端瀏覽器或其他程序與web服務(wù)器之間的應用層通 信協(xié)議。在internet ±的web服務(wù)器上存放的都是超文本信息,客戶機需要通過http協(xié)議 傳輸所要訪問的超文本信息。http包含 命令和傳輸信息,不僅可用于web訪問,也可以 用于其他因特網(wǎng)/內(nèi)聯(lián)網(wǎng)應用系統(tǒng)之i'可

19、的通信,從而實現(xiàn)各類應用資源超媒體訪問的集成。當我們想瀏覽一個網(wǎng)站的時候,只要在瀏覽器的地址欄里輸入網(wǎng)站的地址就可以了,例 如www. * .com,但是在瀏覽器的地址欄里面出現(xiàn)的卻是:http:/www. *,你知道為什 么會多出一個“http”嗎?我們在瀏覽器的地址欄里輸入的網(wǎng)站地址叫做url (uniform resource locator,統(tǒng)一資 源定位符)。就像每家每戶都有一個門牌地址一樣,每個網(wǎng)頁也都有一個internet地址。當你 在瀏覽器的地址框中輸入一個url或是單擊一個超級鏈接時,url就確定了要瀏覽的地址。 瀏覽器通過超文本傳輸協(xié)議(http),將web服務(wù)器上站點的網(wǎng)

20、頁 代碼提取出來,并翻譯成 漂亮的網(wǎng)頁。因此,在我們認識http之前,有必要先弄清楚url的組成,例如: http:/www.*.com /china/index.htmo 它的含義如下:l http:/:代表超文本轉(zhuǎn)移協(xié)議,通知*.com服務(wù)器顯示web頁,通常不用輸入;2. www:代表一個web (萬維網(wǎng))服務(wù)器;3*和也com/:這是裝有網(wǎng)頁的服務(wù)器的域名,或站點服務(wù)器的名稱;4. china/:為該服務(wù)器上的子目錄,就好像我們的文件夾;5. index.htm: index.htm是文件夾中的一個html文件(網(wǎng)頁)。我們知道internet的基本協(xié)議是tcp/ip協(xié)議,然而在tcp

21、/ip模型最上層的是應用層 (application layer),它包含所有高層的協(xié)議。高層協(xié)議有:文件傳輸協(xié)議ftp、電子郵件 傳輸協(xié)議smtp、域名系統(tǒng)服務(wù)dns、網(wǎng)絡(luò)新聞傳輸協(xié)議nntp和http協(xié)議等。http協(xié)議(hypeftext transfer protocol,超文本傳輸協(xié)議)是用于從www服務(wù)器傳 輸超文本到本地瀏覽器的傳輸協(xié)議。它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少。它不僅保 證計算機正確快速地傳輸超文本文檔,還確定傳輸文檔屮的哪一部分,以及哪部分內(nèi)容首 先顯示(如文本先于圖形)等。這就是你為什么在瀏覽器中看到的網(wǎng)頁地址都是以hup:/開頭 的原因。自www誕生以來,一

22、個多姿多彩的資訊和虛擬的世界便出現(xiàn)在我們眼前,可是我們 怎么能夠更加容易地找到我們需要的資訊呢?當決定使用超文本作為www文檔的標準 格式后,于是在1990年,科學家們立即制定了能夠快速查找這些超文本文檔的協(xié)議,即 http協(xié)議。經(jīng)過幾年的使用與發(fā)展,得到不斷的完善和擴展,目前在www中使用的是 http/1.0的第六版。協(xié)議基礎(chǔ)http (hypertext transport protocol)是超文本傳輸協(xié)議的縮寫,它用于傳送www 方式的數(shù)據(jù),關(guān)于http協(xié)議的詳細內(nèi)容請參考rfc2616o http協(xié)議采用了請求/響 應模 型??蛻舳讼蚍?wù)器發(fā)送一個請求,請求頭包含請求的方法、url

23、、協(xié)議版本、以及包含請 求修飾符、客戶信息和內(nèi)容的類似于mime的消息結(jié)構(gòu)。服務(wù)器以一個狀態(tài)行作為響應, 響應的內(nèi)容包括消息協(xié)議的版本,成功或者錯誤編碼加上包含服務(wù)器信息、實體元信息以及 可能的實體內(nèi)容。通常http消息包扌舌客戶機向服務(wù)器的請求消息和服務(wù)器向客戶機的響應消息。這兩種 類型的消息由一個起始行,一個或者多個頭域,一個指示頭域結(jié)束的空行和可選的消息體 組成。http的頭域包括通用頭,請求頭,響應頭和實體頭四個部分。每個頭域由一個域 名,冒號(:)和域值三部分組成。域名是大小寫無關(guān)的,域值前可以添加任何數(shù)量的空格 符,頭域可以被擴展為多行,在每行開始處,使用至少一個空格或制表符。w/

24、oddws 2000 ad dem訶kqyzqs rea/m = prosewarecomdesktop win2k pro wie >5.0http:#unixsrv1/appa/start.htmunix web server mit keberosv5 gssapirunning spnego token handler code6 extinct irfo via gss api7. gieck access to resotiices imsed on usef id.http結(jié)構(gòu)通用頭域通用頭域包含請求和響應消息都支持的頭域,通用頭域包含cache-controk conne

25、ctionx date、pragmas transfer-encodings upgrade> via。對通用頭域的擴展要求通訊雙方都支持 此擴展,如果存在不支持的通用頭域,一般將會作為實體頭域處理。下而簡單介紹兒個在 upnp消息中使用的通用頭域:1 .cache-control 頭域cache-control指定請求和響應遵循的緩存機制。在請求消息或響應消息中設(shè)置 cache-control并不會修改另一個消息處理過程中的緩存處理過程。請求時的緩存指令包括 no-cacheno-store> max-agemax-stalemin-fresh> only-if- cach

26、ed» 響應消息中的指令包 js public、private、no-cache、no-store、no-transform、must- revalidate、proxy-re validate、max 各個消息中的指令含義如下:public指示響應可被任何緩存區(qū)緩存。private指示對于單個用戶的整個或部分響應消息,不能被共享緩存處理。這允許服務(wù) 器僅僅描述當用戶的部分響應消息,此響應消息對于其他用戶的請求無效。no-cache指示請求或響應消息不能緩存no-store用于防止重要的信息被無意的發(fā)布。在請求消息中發(fā)送將使得請求和響應消息 都不使用緩存。max-age指示客戶機可以

27、接收生存期不大于指定時間(以秒為單位)的響應。min-fresh指示客戶機i j以接收響應時間小于當前時間加上指定時間的響應。max-stale指示客戶機可以接收超岀超時期間的響應消息。如果指定maxstale消息的值, 那么客戶機可以接收超出超時期指定值之內(nèi)的響應消息。http keep-alivekeep-alive功能使客戶端到服務(wù)器端的連接持續(xù)有效,當出現(xiàn)對服務(wù)器的后繼請求時, keep-alive功能避免了建立或者重新建立連接。市場 上的大部分web服務(wù)器,包k iplanet. iis和apache,都支持http keep-aliveo對于提供靜態(tài)內(nèi)容的網(wǎng)站來說,這個功能通常很

28、有用。但是,對于負擔較重的網(wǎng)站來說,這里存在另外一個問題:雖然為客戶保留打開的連 接有一定的好處,但它同樣影響了性能,因為在處理暫停期間,本來可以釋放的資源仍i口被 占用。當web服務(wù)器和應用服務(wù)器在同一臺機器上運行時,keep- alive功能對資源利用的 影響尤其突出。keepalivetime值控制tcp/ip嘗試驗證空閑連接是否完好的頻率。如果這段時間內(nèi)沒 有活動,則會發(fā)送保持活動信號。如果網(wǎng)絡(luò)工作正常,而且接收方是活動的,它就會響應。 如果需要対丟失接收方敏感,換句話說,需要更快地發(fā)現(xiàn)丟失了接收方,請考慮減小這個 值。如果長期不活動的空閑連接出現(xiàn)次數(shù)較多,而丟失接收方的情況出現(xiàn)較少,

29、您可能會要 提 高該值以減少開銷。缺省情況下,如果空閑連接7200000毫秒(2小時)內(nèi)沒有活動, windows就發(fā)送保持活動的消息。通常,1800000毫秒是首選值,從而一半的已關(guān)閉連接 會在30分鐘內(nèi)被檢測到。keepalivelnterval值定義了如果未從接收方收到保持活動消息 的響應,tcp/ip重復發(fā)送保持活動信號的頻率。當連續(xù)發(fā)送保持活動信號、但未收到響應 的次數(shù)超出tcpmaxdataretransmissions的值時,會放棄該連接。如果期望較長的響應時間, 您可能需要提高該值以減少開銷。如果需要減少花在驗證接收方是否已丟失上的時間,請考 慮減小該值或tcpmaxdatar

30、etransmissions值。缺省情況下,在未收到響應而重新發(fā)送保持 活動的消息之前,windows會等待1000毫秒(1秒)。keepalivetime根據(jù)你的需要設(shè) 置就行,比如10分鐘,注意要轉(zhuǎn)換成ms。xxx代表這個間隔值得大小。2. date頭域date頭域表示消息發(fā)送的時間,時間的描述格式由rfc822定義。例如,date:mon,31 dec200104:25:57gmto date描述的時間表示世界標準時,換算成木地時間,需 要知道用戶所在的時區(qū)。3. pragma 頭域pragma頭域用來包含實現(xiàn)特定的指令,最常用的是pragma:no-cacheo在http/1.1協(xié)議

31、屮,它的含義和cache-control:no-cache相同。請求消息請求消息的第一行為下面的格式:methodsprequest-urisphttp-versioncrlfmethod 表 示對于 request-uri 完成的方法, 這個字段是大小寫敏感的,包括 options> get、head、post、put、delete> traceo 方法get和head應該被所有的通用web服務(wù)器支持,其他所有方法的實現(xiàn)是可選的。 get方法取回由request-uri標識的信息。head方法也是取回由request-uri標識的信息, 只是可以在響應時,不返回消息體。post方

32、法可以請求服務(wù)器接收包含在請求中的實體信 息,可以用于提交表單,向新聞組、bbs、郵件群組和數(shù)據(jù)庫發(fā)送消息。sp表示空格。request-uri遵循uri格式,在此字段為星號(*)時,說明請求并不用 于某個特定的資源地址,而是用于服務(wù)器本身。httpversion表示支持的http版本,例 如為http/l.lo crlf表示換行回車符。請求頭域允許客戶端向服務(wù)器傳遞關(guān)于請求或者 關(guān)于客戶機的附加信息。請求頭域可能包含下列字段accept、accept-charset > accept-encoding> accept-language authorization> from

33、host、ifmodi行edsince、ifmatch、 if-none-match >if- range、if-range> if-unmodified-since、max-forwards、proxy-authorization、 range> referer user-agento對請求頭域的擴展要求通訊雙方都支持,如果存在不支持的 請求頭域,一般將會作為實體頭域處理。典型的請求消息:host: download.*.deaccept: */*pragma: no-cachecache-contro上 no-cacheuser-agent: mozilla/4.04en

34、(win95;i;nav)range: bytes=554554-上例第一行表示http客戶端(可能是瀏覽器、下載程序)通過get方法獲得指定url 下的文件。棕色的部分表示請求頭域的信息,綠色的部分表示通用頭部分。1. host頭域host頭域指定請求資源的intenet主機和端口號,必須表示請求url的原始服務(wù)器或網(wǎng)關(guān) 的位置。http/1.1請求必須包含主機頭域,否則系統(tǒng)會以40()狀態(tài)碼返回。2. referer 頭域referer頭域允許客戶端指定請求uri的源資源地址,這可以允許服務(wù)器生成回退鏈表, 可用來登陸、優(yōu)化cache等。他也允許廢除的或錯誤的連接由于維護的冃的被追蹤。如果

35、 請求的uri沒有自己的uri地址,referer不能被發(fā)送。如果指定的是部分uri地址,則此地址應該是一個相對地址。3. range 頭域range頭域可以請求實體的一個或者多個子范圍。例如,表示頭500個字節(jié):bytes=0-499表示第二個500字節(jié):bytes=500-999表示最后500個字節(jié):bytes=-500表示500字節(jié)以后的范圍:bytes二500-笫一個和最后一個字節(jié):bytes=0-0,-1同時指定幾個范圍:bytes=500-600,601 -999但是服務(wù)器可以忽略此請求頭,如果無條件get包含range請求頭,響應會以狀態(tài)碼 206 (partialcontent

36、)返回而不是以 200 (0k)。4. user-agent 頭域user-agent頭域的內(nèi)容包含發(fā)出請求的用戶信息。響應消息響應消息的第一行為下面的格式:http-versionspstatus-codespreason-phrasecrlfhttp-version表示支持的http版本,例如為http/1.1。status- code是一個三個數(shù)字 的結(jié)果代碼。reason-phrase給status-code提供一個簡單的文木描述。status-code主要用于 機器自動識別,reason-phrase主要用于幫助用戶理解。status-code的第一個數(shù)字定義響應 的類別,后兩個數(shù)字

37、沒有分類的作用。第一個數(shù)字可能取5個不同的值:lxx:信息響應類,表示接收到請求并且繼續(xù)處理2xx:處理成功響應類,表示動作被成功接收、理解和接受3xx:重定向響應類,為了完成指定的動作,必須接受進一步處理4xx:客戶端錯誤,客戶請求包含語法錯誤或者是不能正確執(zhí)行5xx:服務(wù)端錯誤,服務(wù)器不能正確執(zhí)行一個正確的請求響應頭域允許服務(wù)器傳遞不能放在狀態(tài)行的附加信息,這些域主要描述服務(wù)器的信息和 request-uri 進一步的信息。響應頭域包含 age、location> proxy-authenticaten publicx retry- after server vary> war

38、ningwww-authenticateo對響應頭域的擴展要求通訊雙方都支 持,如果存在不支持的響應頭域,一般將會作為實體頭域處理。典型的響應消息:http/1.02000kdate:mon,31dec20()l()4:25:57gmtserver: apache/1.3.14(unix)content-type: text/htmllast-modified:tue, 17apr200106:46:28gmtetag: na030f020ac7c01:1 e9f'content-length:39725426content-range:bytes55:*/40279980上例第一行表

39、示http服務(wù)端響應一個get方法。棕色的部分表示響應頭域的信息, 綠色的部分表示通用頭部分,紅色的部分表示實體頭域的信息。1 .location 響應頭location響應頭用于重定向接收者到一個新uri地址。2.server響應頭server響應頭包含處理請求的原始服務(wù)器的軟件信息。此域能包含多個產(chǎn)品標識和注釋, 產(chǎn)品標識一般按照重要性排序。http-運作方式http協(xié)議是基于請求/響應范式的。一個客戶機與服務(wù)器建立連接后,發(fā)送一個請求給 服務(wù)器,請求方式的格式為,統(tǒng)一資源標識符、協(xié)議版本號,后邊是mime信息包括請求 修飾符、客戶機信息和可能的內(nèi)容。服務(wù)器接到請求后,給予相應的響應信息,

40、其格式為一 個狀態(tài)行包插信息的協(xié)議版本號、一個成功或錯誤的代碼,后邊是mime信息包括服務(wù)器 信息、實體信息和可能的內(nèi)容。許多http通訊是由一個用戶代理初始化的并且包括一個申請在源服務(wù)器上資源的請 求。最簡單的情況可能是在用戶代理(ua)和源服務(wù)器(0)之間通過一個單獨的連接來完成。當一個或多個中介出現(xiàn)在請求/響應鏈中時,情況就變得復雜一些。中介由三種:代理 (proxy)網(wǎng)關(guān)(gateway)和通道(tunnel)。一個代理根據(jù)uri的絕對格式來接受請求,重寫 全部或部分消息,通過uri的標識把已格式化過的請求發(fā)送到服務(wù)器。網(wǎng)關(guān)是一個接收代 理,作為一些其它服務(wù)器的上層,并且如果必須的話,

41、可以把請求翻譯給下層的服務(wù)器協(xié)議。 一個通道作為不改變消息的兩個連接之i'可的中繼點。當通訊需要通過一個中介(例如:防火 墻等)或者是中介不能識別消息的內(nèi)容時,通道經(jīng)常被使用。http運作方式實體請求消息和響應消息都可以包含實體信息,實體信息一般白實體頭域和實體組成。實體 頭域包含關(guān)于實體的原信息,實體頭包括allow、content-base、content-encoding、 content-language、content-length、 content-location、content-md5、content-range、 content-type etag、expires&g

42、t; last-modified> extension-header。extension-header 允許客戶 端定義新的實體頭,但是這些域可能無法被接受方識別。實體可以是一個經(jīng)過編碼的字節(jié) 流,它的編碼方式由content-encoding或content-type定義,它的長度rh content- length或 content-range 定義。1 .content-type 實體頭content-type實體頭用于向接收方指示實體的介質(zhì)類型,指定head方法送到接收方的 實體介質(zhì)類型,或get方法發(fā)送的請求介質(zhì)類型2.content-range 實體頭content-rang

43、e實體頭用于指定整個實體屮的一部分的插入位置,他也指示了整個實體 的長度。在服務(wù)器向客戶返冋一個部分響應,它必須描述響應覆蓋的范圍和整個實體長度。 一般格式:con tent-range:bytes-unitspfirst-byte-pos-last-byte-pos/entity-legth例如,傳送頭500個字節(jié)次字段的形式:content- range:byteso-499/1234果一個http 消息包含此節(jié)(例如,對范韋i請求的響應或?qū)σ幌盗蟹秈韋i的重殼請求),contentrange表 示傳送的范圍,content-length表示實際傳送的字節(jié)數(shù)。3.last-modified

44、 實體頭last-modified實體頭指定服務(wù)器上保存內(nèi)容的最后修訂時間。例如,傳送頭500個字節(jié)次字段的形式:content- range:byteso-499/1234如果一個hup 消息包含此節(jié)(例如,對范圍請求的響應或?qū)σ幌盗蟹秶闹丿B請求),content- range表 示傳送的范圍,content-length表示實際傳送的字節(jié)數(shù)。請求方法http/1協(xié)議中共定義了八種方法(有時也叫“動作”)來表明request-uri指定的資源的不 同操作方式:options返回服務(wù)器針對特定資源所支持的http請求方法。也可以利用向web服務(wù)器發(fā)送 *的請求來測試服務(wù)器的功能性。head向

45、服務(wù)器索要與get請求相一致的響應,只不過響應體將不會被返回。這一方法可 以在不必傳輸整個響應內(nèi)容的情況下,就可以獲収包含在響應消息頭中的元信息。get向特定的資源發(fā)出請求。注意:get方法不應當被用于產(chǎn)生“副作用”的操作屮,例 如在web application 其川一個原因是get可能會被網(wǎng)絡(luò)蜘蛛等隨意訪問。參 見安全方法post向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請 求體中o post請求可能會導致新的資源的創(chuàng)建和/或已有資源的修改。put向指定資源位置上傳其最新內(nèi)容。delete請求服務(wù)器刪除request-uri所標識的資源。trace回顯服務(wù)器收

46、到的請求,主要用于測試或診斷。connecthttp/1.1協(xié)議中預留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。方法名稱是區(qū)分大小寫的。當某個請求所針對的資源不支持對應的請求方法的時候,服務(wù)器 應當返回狀態(tài)碼405 (method not allowed);當服務(wù)器不認識或者不支持對應的請求方法的 時候,應當返回狀態(tài)碼501 (not implemented)ohttp服務(wù)器至少應該實現(xiàn)get和head方法,其他方法都是可選的。當然,所有的方法 支持的實現(xiàn)都應當符合下述的方法各自的語義定義。此外,除了上述方法,特定的http 服務(wù)器還能夠擴展自定義的方法。協(xié)議結(jié)構(gòu)http報文由從客戶機到服務(wù)器的請

47、求和從服務(wù)器到客戶機的響應構(gòu)成。請求報文格式 如下:請求行一通用信息頭一請求頭一實體頭一報文主體請求行以方法字段開始,后面分別是url字段和http協(xié)議版本字段,并以crlf 結(jié)尾。sp是分隔符。除了在最后的crlf序列中cf和lf是必需的之外,其他都可以 不要。有關(guān)通用信息頭,請求頭和實體頭方面的具體內(nèi)容可以參照相關(guān)文件。應答報文格式如下:狀態(tài)行一通用信息頭一響應頭一實體頭一報文主體狀態(tài)碼元由3位數(shù)字組成,表示請求是否被理解或被滿足。原因分析是對原文的狀態(tài)碼 作簡短的描述,狀態(tài)碼用來支持自動操作,而原因分析用來供用戶使用。客戶機無需用來檢 查或顯示語法。有關(guān)通用信息頭,響應頭和實體頭方面的具

48、體內(nèi)容可以參照相關(guān)文件。工作原理既然我們明白了 url的構(gòu)成,那么http是怎么工作呢?我們接下來就要討論這個問 題。一次http操作稱為一個事務(wù),其工作過程可分為四步:首先客戶機與服務(wù)器需要建立連接。只耍單擊某個超級鏈接,http的工作就開始了。 建立連接后,客戶機發(fā)送一個請求給服務(wù)器,請求方式的格式為:統(tǒng)一資源標識符(url)、 協(xié)議版本號,后邊是mime信息包括請求修飾符、客戶機信息和可能的內(nèi)容。服務(wù)器接到請求后,給予相應的響應信息,其格式為一個狀態(tài)行,包括信息的協(xié)議版本 號、一個成功或錯誤的代碼,后邊是mime信息包括服務(wù)器信息、實體信息和可能的內(nèi)容??蛻舳私邮辗?wù)器所返回的信息通過瀏

49、覽器顯示在用戶的顯示屏上,然后客戶機與服務(wù) 器斷開連接。如果在以上過程中的某一步出現(xiàn)錯誤,那么產(chǎn)生錯誤的信息將返回到客戶端,由顯示屏 輸出。對于用戶來說,這些過程是由http自己完成的,用戶只要用鼠標點擊,等待信息顯 示就可以了。許多http通訊是由一個用戶代理初始化的并且包插一個申請在源服務(wù)器上資源的請 求。最簡單的情況可能是在用戶代理和服務(wù)器z間通過一個單獨的連接來完成。在internet 上,http通訊通常發(fā)生在tcp/ip連接之上。缺省端口是tcp80,但其它的端口也是可用 的。但這并不預示著http協(xié)議在internet或英它網(wǎng)絡(luò)的其它協(xié)議之上才能完成。http只 預示著一個可靠的

50、傳輸。這個過程就好像我們打電話訂貨一樣,我們可以打電話給商家,告訴他我們需要什么規(guī) 格的商品,然后商家再告訴我們什么商品有貨,什么商品缺貨。這些,我們是通過電話線用 電話聯(lián)系(http是通過tcp/ip),當然我們也可以通過傳真,只要商家那邊也有傳真。以上簡要介紹了 http協(xié)議的宏觀運作方式,下面介紹一下http協(xié)議的內(nèi)部操作過程。在www中,“客戶”與“服務(wù)器"是一個相對的概念,只存在于一個特定的連接期間, 即在某個連 接中的客戶在另一個連接中可能作為服務(wù)器?;趆ttp協(xié)議的客戶/服務(wù)器模 式的信息交換過程,它分四個過程:建立連接、發(fā)送請求信息、發(fā)送響應信息、關(guān)閉連接。 這就好

51、像上面的例子,我們電話訂貨的全過程。其實簡單說就是任何服務(wù)器除了包括html文件以外,還有一個http駐留程序,用 于響應用戶請求。你的瀏覽器是http客戶,向服務(wù)器發(fā)送請求,當瀏覽器屮輸入了一個開 始文件或點擊了一個超級鏈接時,瀏覽器就向服務(wù)器發(fā)送了 http請求,此請求被送往由 ip地址指定的url。駐留程序接收到請求,在進行必要的操作后回送所要求的文件。在這 一過程中,在網(wǎng)絡(luò)上發(fā)送和接收的數(shù)據(jù)已經(jīng)彼分成一個或多個數(shù)據(jù)包(packet),每個數(shù)據(jù) 包包括:要傳送的數(shù)據(jù);控制信息,即告訴網(wǎng)絡(luò)怎樣處理數(shù)據(jù)包。tcp/ip決定了每個數(shù)據(jù) 包的格式。如果事先不告訴你,你可能不會知道信息被分成用于傳

52、輸和再重新組合起來的 許多小塊。也就是說商家除了擁有商品之外,它也有一個職員在接聽你的電話,當你打電話的吋候, 你的聲音轉(zhuǎn)換成各種復雜的數(shù)據(jù),通過電話線傳輸?shù)綄Ψ降碾娫挋C,對方的電話機又把各 種復雜的數(shù)據(jù)轉(zhuǎn)換成聲音,使得對方商家的職員能夠明白你的請求。這個過程你不需要明 白聲音是怎么轉(zhuǎn)換成復雜的數(shù)據(jù)的。狀態(tài)消息1xx:信息消息:描述:100 continue服務(wù)器僅接收到部分請求,但是一旦服務(wù)器并沒有拒絕該請求,客戶端 應該繼續(xù)發(fā)送其余的請求。101switchingprotocols服務(wù)器轉(zhuǎn)換協(xié)議:服務(wù)器將遵從客戶的請求轉(zhuǎn)換到另外一種協(xié)議。2xx:成功消息:描述:200 ok請求成功(其后是

53、對get和post請求的應答文檔。)201 created請求被創(chuàng)建完成,同時新的資源被創(chuàng)建。202 accepted供處理的請求已被接受,但是處理未完成。203 non-authoritativeinformation文檔已經(jīng)正常地返回,但一些應答頭可能不正確,因為使用的是文 檔的拷貝。204 no content沒有新文檔。瀏覽器應該繼續(xù)顯示原來的文檔。如杲用戶定期地刷 新頁面,而servlet可以確定用戶文檔足夠新,這個狀態(tài)代碼是很有 用的。205 reset content沒有新文檔。但瀏覽器應該重置它所顯示的內(nèi)容。用來強制瀏覽器 清除表單輸入內(nèi)容。206 partial conten

54、t客戶發(fā)送了一個帶有range頭的get請求,服務(wù)器完成了它。3xx:重定向消息:描述:300 multiple多重選擇。鏈接列表。用戶可以選擇某鏈接到達目的地。最多允許五個地址。choices301movedpermanently所請求的頁面已經(jīng)轉(zhuǎn)移至新的urlo302 found所請求的頁面已經(jīng)臨時轉(zhuǎn)移至新的url303 see other所請求的頁面可在別的url下被找到。304notmodified未按預期修改文檔??蛻舳擞芯彌_的文檔并發(fā)出了一個條件性的請求(一般 是提供if-modified-since頭表示客戶只想比指定日期更新的文檔)。服務(wù)器 告訴客戶,原來緩沖的文檔還可以繼續(xù)使

55、用。305 use proxy客戶請求的文檔應該通過location頭所指明的代理服務(wù)器提取。306 unused此代碼被用于前一版本。目前己不再使用,但是代碼依然被保留。307 temporaryredirect被請求的頁面已經(jīng)臨時移至新的urk4xx:客戶端錯誤消息:描述:400 bad request服務(wù)器未能理解請求。401 unauthorized被請求的頁面需要用戶名和密碼。401.1登錄失敗。401.2服務(wù)器配置導致登錄失敗。401.3由于acl對資源的限制而未獲得授權(quán)。401.4篩選器授權(quán)失敗。401.5isapi/cgi應用程序授權(quán)失敗。401.7訪問被web服務(wù)器上的url授權(quán)策略拒絕。這個錯誤代碼為 iis 6.0所專用。402 payment required此代碼尚無法使用。403 forbidden對被請求頁面的訪問被禁止。403.1執(zhí)行訪問被禁止。403.2讀訪問被禁止。403.3寫訪問被禁止。403.4要求sslo403.5要求 ssl 128o403.6ip地址被拒絕。403.7要求客戶端證書。403.8站點

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論