版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、HTTP 協(xié)議基礎(chǔ),1、HTTP與WEB服務(wù),HTTP應(yīng)用層協(xié)議是Web的核心。 HTTP協(xié)議運(yùn)行在客戶程序和服務(wù)器程序中。不同端系統(tǒng)上的客戶程序和服務(wù)器程序通過交換HTTP消息彼此交流。 HTTP定義Web客戶(即瀏覽器)如何從web服務(wù)器請(qǐng)求Web頁面,以及服務(wù)器如何把Web頁面?zhèn)魉徒o客戶。,Web頁面(web page,也稱為文檔)由多個(gè)對(duì)象構(gòu)成。對(duì)象(object)僅僅是可由單個(gè)URL尋址的文件,例如HTML文件、JPG圖像、GIF圖像、JAVA小應(yīng)用程序、語音片段等。 例如,如果一個(gè)Web頁面包含HTML文本和5個(gè)JPEG圖像,那么它由6個(gè)對(duì)象構(gòu)成,即基本H1ML文件加5個(gè)圖像。,瀏
2、覽器是web的用戶代理,它顯示所請(qǐng)求的Web頁面,并提供大量的導(dǎo)航與配置特性。Web瀏覽器還實(shí)現(xiàn)HTTP的客戶端 Web服務(wù)器存放可由URL尋址的Web對(duì)象,web服務(wù)器還實(shí)現(xiàn)HTTP的服務(wù)器端。,、Http工作流程,HTTP客戶端啟動(dòng)TCP連接(創(chuàng)建插口) 到服務(wù)器, 端口 80。一旦建立連接,瀏覽器進(jìn)程和服務(wù)器進(jìn)程就可以通過各自的套接字來訪問。 http 報(bào)文(應(yīng)用層協(xié)議報(bào)文) 在瀏覽器 (http client) 和Web服務(wù)器(http server)之間進(jìn)行交換。 客戶端套接字??蛻敉约旱奶捉幼职l(fā)送HTTP請(qǐng)求消息,也從自己的套接字接收HTTP響應(yīng)消息。,服務(wù)器從自己的套接字接收H
3、TTP請(qǐng)求消息,也往自己的套接字發(fā)送HTTP響應(yīng)消息。 關(guān)閉TCP 連接 注意:在向客戶發(fā)送所請(qǐng)求文件的同時(shí),服務(wù)器并沒有存儲(chǔ)關(guān)于該客戶的任何狀態(tài)信息。即便某個(gè)客戶在幾秒鐘內(nèi)再次請(qǐng)求同一個(gè)對(duì)象,服務(wù)器也不會(huì)響應(yīng)說:自己剛剛給它發(fā)送了這個(gè)對(duì)象。 所以http 是 “無狀態(tài)(stateless)”的服務(wù),不保留任何訪問過的請(qǐng)求信息,當(dāng)用戶請(qǐng)求一個(gè)Web頁面(譬如說點(diǎn)擊某個(gè)超鏈接)時(shí),瀏覽器把請(qǐng)求該頁面中各個(gè)對(duì)象的HTTP請(qǐng)求消息發(fā)送給服務(wù)器。服務(wù)器收到請(qǐng)求后,以運(yùn)送含有這些對(duì)象HTTP響應(yīng)消息作為響應(yīng)。,、HTTP連接的類型,非持久連接和持久連接HTTP既可以使用非持久連接(nonpersiste
4、nt connection),也可以使用持久連接(persistent connection)。HTTP/1.0使用非持久連接,HTTP/1.1默認(rèn)使用持久連接。,.1 非持久連接,非持久連接情況下從服務(wù)器到客戶傳送一個(gè)Web頁面的步驟。假設(shè)該貝面由1個(gè)基本HTML文件和10個(gè)JPEG圖像構(gòu)成,而且所有這些對(duì)象都存放在同一臺(tái)服務(wù)器主機(jī)中。 再假設(shè)該基本HTML文件的URL為:,下面是具體步騾:1.HTTP客戶初始化一個(gè)與服務(wù)器主機(jī)中的HTTP服務(wù)器的TCP連接。HTTP服務(wù)器使用默認(rèn)端口號(hào)80監(jiān)聽來自HTTP客戶的連接建立請(qǐng)求。2.HTTP客戶經(jīng)由與TCP連接相關(guān)聯(lián)的本地套接字發(fā)出個(gè)HTTP請(qǐng)
5、求消息。這個(gè)消息中包含路徑名/somepath/index.html。,3.HTTP服務(wù)器經(jīng)由與TCP連接相關(guān)聯(lián)的本地套接字接收這個(gè)請(qǐng)求消息,再從服務(wù)器主機(jī)的內(nèi)存或硬盤中取出對(duì)象/somepath/index.html,經(jīng)由同一個(gè)套接字發(fā)出包含該對(duì)象的響應(yīng)消息。 4.HTTP服務(wù)器告知TCP關(guān)閉這個(gè)TCP連接(不過TCP要到客戶收到剛才這個(gè)響應(yīng)消息之后才會(huì)真正終止這個(gè)連接)。,5.HTTP客戶經(jīng)由同一個(gè)套接字接收這個(gè)響應(yīng)消息。TCP連接隨后終止。該消息標(biāo)明所封裝的對(duì)象是一個(gè)HTML文件??蛻魪闹腥〕鲞@個(gè)文件,加以分析后發(fā)現(xiàn)其中有10個(gè)JPEG對(duì)象的引用。6.給每一個(gè)引用到的JPEG對(duì)象重復(fù)步騾
6、1-4。,.2持久連接,持久連接情況下,服務(wù)器在發(fā)出響應(yīng)后讓TCP連接繼續(xù)打開著。同一對(duì)客戶/服務(wù)器之間的后續(xù)請(qǐng)求和響應(yīng)可以通過這個(gè)連接發(fā)送。 通常,HTTP服務(wù)器在某個(gè)連接閑置一段特定時(shí)間后關(guān)閉它,而這段時(shí)間通常是可以配置的。 持久連接分為不帶流水線(without pipelining)和帶流水線(with pipelining)兩個(gè)版本。如果是不帶流水線的版本,那么客戶只在收到前一個(gè)請(qǐng)求的響應(yīng)后才發(fā)出新的請(qǐng)求。,HTTP/1.1的默認(rèn)模式使用帶流水線的持久連接。這種情況下,HTTP客戶每碰到一個(gè)引用就立即發(fā)出一個(gè)請(qǐng)求,因而HTTP客戶可以一個(gè)接一個(gè)緊挨著發(fā)出各個(gè)引用對(duì)象的請(qǐng)求。服務(wù)器收到
7、這些請(qǐng)求后,也可以一個(gè)接一個(gè)緊挨著發(fā)出各個(gè)對(duì)象。,3.3 流水線和非流水線方式,流水線方式指沒有收到上一個(gè)請(qǐng)求的對(duì)象就發(fā)送新的對(duì)象的請(qǐng)求 非流水線方式指必須要等到上一個(gè)請(qǐng)求的對(duì)象到達(dá)之后再發(fā)送新的對(duì)象的請(qǐng)求,4、HTTP消息格式,HTTP規(guī)范1.0RPcl945和HTTP1.1 RFC 2616定義了HTTP消息的格式。HTTP消息分為請(qǐng)求消息和響應(yīng)稍息兩類。,4.1 HTTP請(qǐng)求消息,下面是一個(gè)典型的HTTP請(qǐng)求消息:GET /somedir/page.html HTTP/1.1Host:Connection:closeUser-agent:Mozilla/4.0Accept-languag
8、e:zh-cn(額外的回車符和換行符),首先,這個(gè)消息是用普通的ASCII文本書寫的。 其次,這個(gè)消息共有5行(每行以一個(gè)回車符和一個(gè)換行符結(jié)束),最后一行后面還有額外的一個(gè)回車特和換行符。 請(qǐng)求行有3個(gè)寧段:方法字段、URL字段、HTTP版本宇段。,方法字段有若干個(gè)值可供選擇,包括GET、POST和HEAD。HTTP請(qǐng)求消息絕大多數(shù)使用GET方法, 頭部行Host:定存放所請(qǐng)求對(duì)象的主機(jī)。 請(qǐng)求消息中包含頭部Connection:close是在告知服務(wù)器本瀏覽器不想使用持久連接;服務(wù)器發(fā)出所請(qǐng)求的對(duì)象后應(yīng)關(guān)閉連接。,User-agent頭部行指定用戶代理,也就是產(chǎn)生當(dāng)前請(qǐng)求的瀏覽器的類型。本
9、例的用戶代理是Mozilla/4.0,它是Nelscape瀏覽器的一個(gè)版本。,HTTP請(qǐng)求標(biāo)準(zhǔn)格式 Request,請(qǐng)求報(bào)文的類型是由它所采用的方法決定的。,附屬體不在GET方法中使用,而是在POST方法中使用。 POST方法適用于需由用戶填寫表單的場(chǎng)合,如往google搜索引擎中填入待搜索的詞。用戶提交表單后, HEAD方法與GET方法類似,兩者的差別只是服務(wù)器在對(duì)HEAD方法的響應(yīng)消息中去掉了所請(qǐng)求的對(duì)象,其他內(nèi)容則與對(duì)GET方法的響應(yīng)消息一樣。HEAD方法通常用于HTTP服務(wù)器軟件開發(fā)人員進(jìn)行調(diào)試。,4.2 HTTP響應(yīng)消息,下面是一個(gè)典型的HTTP響應(yīng)消息:HTTP/1.1 200 0
10、KConnectlon:closeDate: Thu, 13 Oct 2005 03:17:33 GMTServer: Apache/2.0.54 (Unix)LastNodified:Mon,22 Jun 1998 09;23;24 GMTContentLength:682lContentType:text/html(數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù)),HTTP響應(yīng)標(biāo)準(zhǔn)格式 Response,版 本,狀態(tài)碼,短 語,首部字段名,首部行,:,值,首部字段名,值,:,實(shí)體主體 (有些響應(yīng)報(bào)文不用),狀態(tài)行,空格,回車換行,:,CRLF,CRLF,CRLF,CRLF,響應(yīng)報(bào)文的開始行是狀態(tài)行。 狀態(tài)行
11、包括三項(xiàng)內(nèi)容,即 HTTP 的版本,狀態(tài)碼,以及解釋狀態(tài)碼的簡單短語。,5 HTTP常用狀態(tài)碼,1xx 表示通知信息的,如請(qǐng)求收到了或正在進(jìn)行處理。 2xx 表示成功,如接受或知道了。 3xx 表示重定向,表示要完成請(qǐng)求還必須采取進(jìn)一步的行動(dòng)。 4xx 表示客戶的差錯(cuò),如請(qǐng)求中有錯(cuò)誤的語法或不能完成。 5xx 表示服務(wù)器的差錯(cuò),如服務(wù)器失效無法完成請(qǐng)求。,200 0K;請(qǐng)求成功,所請(qǐng)求信息在響應(yīng)消息中返回。301 Moved Permanently:所請(qǐng)求的對(duì)象己永久性遷移;新的URL在本響應(yīng)消息的Location:頭部指出??蛻糗浖?huì)自動(dòng)請(qǐng)求這個(gè)新的URL。400 Bad Request;表
12、示服務(wù)器無法理解相應(yīng)請(qǐng)求的普通錯(cuò)誤的狀態(tài)碼,404 Not Found:服務(wù)器上不存在所請(qǐng)求的文檔。HTTP Version Not Support:服務(wù)器不支持所請(qǐng)求的HTTP協(xié)議版本。,Cookies: 保存 “狀態(tài)”,服務(wù)器產(chǎn)生一個(gè) # , 服務(wù)器認(rèn)識(shí)這個(gè) #, 以備不時(shí)之需: 認(rèn)證 記憶用戶的前序訪問, 先前的選擇 服務(wù)器在響應(yīng)報(bào)文中發(fā)送 “cookie” 給客戶端 Set-cookie: 1678453 客戶端可以在后繼的請(qǐng)求中發(fā)送“cookie” cookie: 1678453,client,server,普通 http 請(qǐng)求報(bào)文,普通 http響應(yīng)報(bào)文+ Set-cookie:
13、#,cookie- 特定的,cookie- 特定的,Conditional GET: 客戶端緩存機(jī)制,目的: 如果客戶端緩存了最新的請(qǐng)求對(duì)象,則服務(wù)器不必重復(fù)發(fā)送 客戶端: 在http請(qǐng)求報(bào)文中聲明所緩存拷貝的生成日期 If-modified-since: 服務(wù)器: 如果客戶端緩存的拷貝是最新的,則在響應(yīng)報(bào)文中不發(fā)請(qǐng)求的對(duì)象: HTTP/1.0 304 Not Modified,client,server,http請(qǐng)求報(bào)文 If-modified-since: ,對(duì)象未經(jīng)修改,http請(qǐng)求報(bào)文 If-modified-since: ,http響應(yīng)報(bào)文 HTTP/1.1 200 OK ,對(duì)象已 經(jīng)修改,用telnet測(cè)試 http (客戶端操作),1. 用Telnet 連接測(cè)試用的服務(wù)器:,打開 TCP 連接到 port 80 (默認(rèn)的ht
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- oa管理規(guī)范制度
- 傳柒病宣傳培訓(xùn)制度
- 公司培訓(xùn)講師制度
- 教職工應(yīng)急培訓(xùn)制度
- 復(fù)工復(fù)產(chǎn)培訓(xùn)教育制度
- 醫(yī)院培訓(xùn)管理工作制度
- 專家培訓(xùn)費(fèi)制度
- 2025紅河發(fā)展集團(tuán)有限公司第二次社會(huì)公開集中招聘工作人員(15人)筆試參考題庫附帶答案詳解(3卷)
- 2025福建福州水務(wù)供應(yīng)鏈管理有限公司副總經(jīng)理(職業(yè)經(jīng)理人)選聘1人筆試參考題庫附帶答案詳解(3卷)
- 2025福建省港航勘察設(shè)計(jì)院有限公司工作人員招聘筆試歷年參考題庫附帶答案詳解
- 2025年司法協(xié)理員年度考核表
- 風(fēng)電項(xiàng)目質(zhì)量管理
- 福建省福州市福清市2024-2025學(xué)年二年級(jí)上學(xué)期期末考試語文試卷
- 2025年CAR-NK細(xì)胞治療臨床前數(shù)據(jù)
- 非煤地下礦山員工培訓(xùn)
- 保安法律法規(guī)及業(yè)務(wù)能力培訓(xùn)
- 班團(tuán)活動(dòng)設(shè)計(jì)
- GB/T 6109.1-2025漆包圓繞組線第1部分:一般規(guī)定
- 前縱隔占位患者的麻醉管理要點(diǎn)(PASF 2025年)
- 企業(yè)財(cái)務(wù)會(huì)計(jì)制度完整模板
- 銷售崗位個(gè)人簡歷模板下載合集
評(píng)論
0/150
提交評(píng)論