




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、嵌入式LINUX應(yīng)用編程 - HTTP杭州哲嘉學(xué)院杭州哲嘉學(xué)院2HTTPHTTP協(xié)議協(xié)議 URL URL是什么?是什么? URL 我們在瀏覽器的地址欄里輸入的網(wǎng)站地址叫做URL(Uniform Resource Locator,統(tǒng)一資源定位符)。例如:http:/ HTTP HTTP的運(yùn)作機(jī)制的運(yùn)作機(jī)制 基于HTTP協(xié)議的客戶/服務(wù)器模式的信息交換過程,如圖所示,它分四個(gè)過程,建立連接、發(fā)送請求信息、發(fā)送響應(yīng)信息、關(guān)閉連接。 4HTTPHTTP協(xié)議協(xié)議 HTTP HTTP請求方法請求方法 HTTP請求由三部分組成,分別是:請求行、消息報(bào)頭、請求正文。5HTTPHTTP協(xié)議協(xié)議 HTTP HTT
2、P請求方法請求方法請求方法(所有方法全為大寫)有多種,各個(gè)方法的解釋如下: GET 請求獲取Request-URI所標(biāo)識的資源 POST 在Request-URI所標(biāo)識的資源后附加新的數(shù)據(jù) HEAD 請求獲取由Request-URI所標(biāo)識的資源的響應(yīng)消息報(bào)頭 PUT 請求服務(wù)器存儲(chǔ)一個(gè)資源,并用Request-URI作為其標(biāo)識 DELETE 請求服務(wù)器刪除Request-URI所標(biāo)識的資源 TRACE 請求服務(wù)器回送收到的請求信息,主要用于測試或診斷 CONNECT 保留將來使用 OPTIONS 請求查詢服務(wù)器的性能,或者查詢與資源相關(guān)的選項(xiàng)和需求 請求行請求行HTTPHTTP協(xié)議協(xié)議 HTT
3、P HTTP應(yīng)答應(yīng)答HTTP應(yīng)答格式應(yīng)答格式HTTP應(yīng)答由格式與請求格式基本相同,由以下部分組成: 狀態(tài)行+消息報(bào)頭+正文6HTTP/1.1 200 OKDate: Mon,31 Dec 2013 04:25:57 GMTServer: Apache/1.3.14(Unix)Content-type: text/htmlContent-Length: 3876.狀態(tài)行響應(yīng)消息報(bào)頭消息正文7HTTPHTTP協(xié)議協(xié)議 HTTP HTTP應(yīng)答的含義應(yīng)答的含義 狀態(tài)行的格式狀態(tài)行的格式狀態(tài)行=HTTP版本號空格狀態(tài)碼空格原因敘述 狀態(tài)碼狀態(tài)碼狀態(tài)碼表示響應(yīng)類型 1xx :信息響應(yīng)類,表示接收到請求并且
4、繼續(xù)處理 2xx :處理成功響應(yīng)類,表示動(dòng)作被成功接收、理解和接受 3xx :重定向響應(yīng)類,為了完成指定的動(dòng)作,必須接受進(jìn)一步處理 4xx :客戶端錯(cuò)誤,客戶請求包含語法錯(cuò)誤或者是不能正確執(zhí)行 5xx :服務(wù)端錯(cuò)誤,服務(wù)器不能正確執(zhí)行一個(gè)正確的請求 HTTPHTTP協(xié)議協(xié)議 - - 常見狀態(tài)碼常見狀態(tài)碼常見狀態(tài)碼及描述常見狀態(tài)碼及描述200 OK /客戶端請求成功400 Bad Request /客戶端請求有語法錯(cuò)誤,不能被服務(wù)器所理解401 Unauthorized /請求未經(jīng)授權(quán),這個(gè)狀態(tài)代碼必須和WWW-Authenticate報(bào)頭域一起使用 403 Forbidden /服務(wù)器收到請求
5、,但是拒絕提供服務(wù)404 Not Found /請求資源不存在,eg:輸入了錯(cuò)誤的URL500 Internal Server Error /服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤503 Server Unavailable /服務(wù)器當(dāng)前不能處理客戶端的請求,一段時(shí)間后可能恢復(fù)正常89HTTPHTTP協(xié)議協(xié)議 HTTP HTTP協(xié)議報(bào)頭協(xié)議報(bào)頭HTTP消息由客戶端到服務(wù)器的請求和服務(wù)器到客戶端的響應(yīng)組成。請求消息和響應(yīng)消息都是由下面格式組成開始行開始行+消息報(bào)頭(可選)消息報(bào)頭(可選)+空行(只有空行(只有CRLF的行)的行)+ 消息正文(可選)消息正文(可選)。HTTP消息報(bào)頭包括普通報(bào)頭、請求報(bào)頭、響應(yīng)
6、報(bào)頭、實(shí)體報(bào)頭。每一個(gè)報(bào)頭域都是由下面格式組成報(bào)頭名字報(bào)頭名字:空格空格報(bào)頭值報(bào)頭值消息報(bào)頭域的名字是大小寫無關(guān)的。10HTTPHTTP協(xié)議協(xié)議 普通報(bào)頭普通報(bào)頭在普通報(bào)頭中,有少數(shù)報(bào)頭域用于所有的請求和響應(yīng)消息,但并不用于被傳輸?shù)膶?shí)體,只用于傳輸?shù)南?。如:Cache-Control 用于指定緩存指令,緩存指令是單向的(響應(yīng)中出現(xiàn)的緩存指令在請求中未必會(huì)出現(xiàn)),且是獨(dú)立的(一個(gè)消息的緩存指令不會(huì)影響另一個(gè)消息處理的緩存機(jī)制),HTTP1.0使用的類似的報(bào)頭域?yàn)镻ragma。請求時(shí)的緩存指令包括:no-cache(用于指示請求或響應(yīng)消息不能緩存)、no-store、max-age、max-st
7、ale、min-fresh、only-if-cached;響應(yīng)時(shí)的緩存指令包括:public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age、s-maxage.如:為了指示IE瀏覽器(客戶端)不要緩存頁面,服務(wù)器端的JSP程序可以編寫如下:response.sehHeader(Cache-Control,no-cache);/response.setHeader(Pragma,no-cache);作用相當(dāng)于上述代碼,通常兩者/合用這句代碼將在發(fā)送的響應(yīng)消息中設(shè)置普通報(bào)頭域:Cache
8、-Control:no-cacheDate普通報(bào)頭域表示消息產(chǎn)生的日期和時(shí)間Connection普通報(bào)頭域允許發(fā)送指定連接的選項(xiàng)。例如指定連接是連續(xù),或者指定“close”選項(xiàng),通知服務(wù)器,在響應(yīng)完成后,關(guān)閉連接11HTTPHTTP協(xié)議協(xié)議 請求報(bào)頭請求報(bào)頭 請求報(bào)頭允許客戶端向服務(wù)器端傳遞請求的附加信息以及客戶端自請求報(bào)頭允許客戶端向服務(wù)器端傳遞請求的附加信息以及客戶端自身的信息。身的信息。AcceptAccept請求報(bào)頭域用于指定客戶端接受哪些類型的信息。eg:Accept:image/gif,表明客戶端希望接受GIF圖象格式的資源;Accept:text/html,表明客戶端希望接受ht
9、ml文本。Accept-CharsetAccept-Charset請求報(bào)頭域用于指定客戶端接受的字符集。如:Accept-Charset:iso-8859-1,gb2312.如果在請求消息中沒有設(shè)置這個(gè)域,缺省是任何字符集都可以接受。Accept-EncodingAccept-Encoding請求報(bào)頭域類似于Accept,但是它是用于指定可接受的內(nèi)容編碼。如:Accept-Encoding:gzip.deflate.如果請求消息中沒有設(shè)置這個(gè)域服務(wù)器假定客戶端對各種內(nèi)容編碼都可以接受。Accept-LanguageAccept-Language請求報(bào)頭域類似于Accept,但是它是用于指定一種
10、自然語言。如:Accept-Language:zh-cn.如果請求消息中沒有設(shè)置這個(gè)報(bào)頭域,服務(wù)器假定客戶端對各種語言都可以接受。12HTTPHTTP協(xié)議協(xié)議 請求報(bào)頭請求報(bào)頭AuthorizationAuthorization請求報(bào)頭域主要用于證明客戶端有權(quán)查看某個(gè)資源。當(dāng)瀏覽器訪問一個(gè)頁面時(shí),如果收到服務(wù)器的響應(yīng)代碼為401(未授權(quán)),可以發(fā)送一個(gè)包含Authorization請求報(bào)頭域的請求,要求服務(wù)器對其進(jìn)行驗(yàn)證。Host(發(fā)送請求時(shí),該報(bào)頭域是必需的)Host請求報(bào)頭域主要用于指定被請求資源的Internet主機(jī)和端口號,它通常從HTTP URL中提取出來的,eg:我們在瀏覽器中輸入
11、:http:/:8080/index.html瀏覽器發(fā)送的請求消息中,就會(huì)包含Host請求報(bào)頭域,如下:Host:此處使用缺省端口號80,若指定了端口號,如8080,則變成:Host::8080User-Agent我們上網(wǎng)登陸論壇的時(shí)候,往往會(huì)看到一些歡迎信息,其中列出了你的操作系統(tǒng)的名稱和版本,你所使用的瀏覽器的名稱和版本,這往往讓很多人感到很神奇,實(shí)際上,服務(wù)器應(yīng)用程序就是從User-Agent這個(gè)請求報(bào)頭域中獲取到這些信息。User-Agent請求報(bào)頭域允許客戶端將它的操作系統(tǒng)、瀏覽器和其它屬性告訴服務(wù)器。不過,這個(gè)報(bào)頭域不是必需的,如果我們自己編寫一個(gè)瀏覽器,不使用User-Agent
12、請求報(bào)頭域,那么服務(wù)器端就無法得知我們的信息了。13HTTPHTTP協(xié)議協(xié)議 響應(yīng)報(bào)頭響應(yīng)報(bào)頭 響應(yīng)報(bào)頭允許服務(wù)器傳遞不能放在狀態(tài)行中的附加響應(yīng)信息,以及響應(yīng)報(bào)頭允許服務(wù)器傳遞不能放在狀態(tài)行中的附加響應(yīng)信息,以及關(guān)于服務(wù)器的信息和對關(guān)于服務(wù)器的信息和對Request-URI所標(biāo)識的資源進(jìn)行下一步訪問的所標(biāo)識的資源進(jìn)行下一步訪問的信息。信息。LocationLocation響應(yīng)報(bào)頭域用于重定向接受者到一個(gè)新的位置。Location響應(yīng)報(bào)頭域常用在更換域名的時(shí)候。ServerServer響應(yīng)報(bào)頭域包含了服務(wù)器用來處理請求的軟件信息。與User-Agent請求報(bào)頭域是相對應(yīng)的。下面是Server響應(yīng)
13、報(bào)頭域的一個(gè)例子:Server:Apache-Coyote/1.1WWW-AuthenticateWWW-Authenticate響應(yīng)報(bào)頭域必須被包含在401(未授權(quán)的)響應(yīng)消息中,客戶端收到401響應(yīng)消息時(shí)候,并發(fā)送Authorization報(bào)頭域請求服務(wù)器對其進(jìn)行驗(yàn)證時(shí),服務(wù)端響應(yīng)報(bào)頭就包含該報(bào)頭域。eg:WWW-Authenticate: Basic realm=Basic Auth Test! /可以看出服務(wù)器對請求資源采用的是基本驗(yàn)證機(jī)制。 14HTTPHTTP協(xié)議協(xié)議 實(shí)體報(bào)頭實(shí)體報(bào)頭請求和響應(yīng)消息都可以傳送一個(gè)實(shí)體。實(shí)體報(bào)頭定義了關(guān)于實(shí)體正文(如有無實(shí)體正文)和請求所標(biāo)識的資源的
14、元信息。常用的實(shí)體報(bào)頭如下:Content-Encoding - ontent-Encoding實(shí)體報(bào)頭域被用作媒體類型的修飾符,它的值指示了已經(jīng)被應(yīng)用到實(shí)體正文的附加內(nèi)容的編碼,因而要獲得Content-Type報(bào)頭域中所引用的媒體類型,必須采用相應(yīng)的解碼機(jī)制。Content-Encoding這樣用于記錄文檔的壓縮方法,如:Content-Encoding:gzipContent-Language - Content-Language實(shí)體報(bào)頭域描述了資源所用的自然語言。沒有設(shè)置該域則認(rèn)為實(shí)體內(nèi)容將提供給所有的語言閱讀者。Content-Length - Content-Length實(shí)體報(bào)頭域
15、用于指明實(shí)體正文的長度,以字節(jié)方式存儲(chǔ)的十進(jìn)制數(shù)字來表示。Content-Type - Content-Type實(shí)體報(bào)頭域用語指明發(fā)送給接收者的實(shí)體正文的媒體類型。如:Content-Type:text/html;charset=ISO-8859-1Content-Type:text/html;charset=GB2312Last-Modified - Last-Modified實(shí)體報(bào)頭域用于指示資源的最后修改日期和時(shí)間Expires - Expires實(shí)體報(bào)頭域給出響應(yīng)過期的日期和時(shí)間。Range-15HTTPHTTP協(xié)議協(xié)議 HTTP HTTP協(xié)議中的認(rèn)證協(xié)議中的認(rèn)證在服務(wù)器需要認(rèn)證后才能訪問的WEB服務(wù)端,用戶在訪問URL時(shí),服務(wù)器會(huì)返回類似如下信息要求客戶端進(jìn)行認(rèn)證:HTTP/1.1 401 N/AServer: RouterConnection: closeWWW-Authenticate: Basic realm=TP-LINK Wireless Router WR340GContent-Type: text/html客戶端在接下的請求中,需要按類似下面格式進(jìn)行發(fā)送:GET / HTTP/1.1Accept:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年公共政策分析專業(yè)實(shí)務(wù)考試試題及答案
- 2025年高級財(cái)務(wù)管理課程考試試卷及答案
- 一起學(xué)新人培訓(xùn)
- 消化內(nèi)科護(hù)理團(tuán)隊(duì)建設(shè)與管理
- 制定年度培訓(xùn)規(guī)劃
- 2025年工程管理考試試題及答案抽樣
- 2025年干部培訓(xùn)考試試題及答案反饋
- 培訓(xùn)學(xué)校員工拓展活動(dòng)
- 腫瘤科成人癌性疼痛護(hù)理
- 診斷學(xué)病歷書寫規(guī)范與要點(diǎn)解析
- 參股投資合作協(xié)議書
- 2025年廣東省深圳市南山區(qū)多校聯(lián)考中考英語二模試卷
- 2025至2030中國物理氣相沉積(PVD)設(shè)備行業(yè)行情監(jiān)測與發(fā)展動(dòng)向追蹤報(bào)告
- 智能化設(shè)備與造價(jià)咨詢合同
- 工程造價(jià)審計(jì)服務(wù)投標(biāo)方案(技術(shù)方案)
- 安全生產(chǎn)檢查咨詢服務(wù)投標(biāo)方案(技術(shù)方案)
- 2025綠色建筑檢驗(yàn)機(jī)構(gòu)能力驗(yàn)證要求
- 全省工會(huì)系統(tǒng)經(jīng)審業(yè)務(wù)技能大賽含答案
- 工程利潤分紅協(xié)議書
- 2025年上海市安全員C3證(專職安全員-綜合類)考試題庫
- 基本公共衛(wèi)生服務(wù)2025版培訓(xùn)
評論
0/150
提交評論