




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
http協(xié)議和web本質(zhì)掌握WEB本質(zhì)必須了解的瀏覽器和服務(wù)器到底是如何打交道的?服務(wù)器又是如何處理的?瀏覽器又是如何將網(wǎng)頁顯示給用戶的呢?......何為http協(xié)議(HypertextTransferProtocol,超文本傳輸協(xié)議)所謂協(xié)議,就是指雙方遵循的規(guī)范。http協(xié)議,就是瀏覽器和服務(wù)器之間進(jìn)行“溝通”的一種規(guī)范。我們在看空間,刷微博...都是在使用http協(xié)議,當(dāng)然,遠(yuǎn)遠(yuǎn)不止這些應(yīng)用。http是屬于“應(yīng)用層的協(xié)議”,而且是基于TCP/IP協(xié)議的。這個不難理解,如果你上大學(xué)時候?qū)W過“計(jì)算機(jī)網(wǎng)絡(luò)”的課程,就一定知道OSI七層參考協(xié)議。如果你接觸過socket網(wǎng)絡(luò)編程,就應(yīng)該明白TCP和UDP這兩種使用廣泛的通信協(xié)議(建立連接、三次握手等等)。既然TCP/UDP是廣泛使用的網(wǎng)絡(luò)通信協(xié)議,那為啥有多出個http協(xié)議來呢?
UDP協(xié)議具有不可靠性和不安全性,顯然這很難滿足web應(yīng)用的需要。而TCP協(xié)議是基于連接和三次握手的,雖然具有可靠性,但人具有一定的缺陷。但試想一下,普通的C/S架構(gòu)軟件,頂多上千個Client同時連接,而B/S架構(gòu)的網(wǎng)站,十萬人同時在線也是很平常的事兒。如果十萬個客戶端和服務(wù)器一直保持連接狀態(tài),那服務(wù)器如何滿足承載呢?這就衍生出了http協(xié)議?;赥CP的可靠性連接。通俗點(diǎn)說,就是在請求之后,服務(wù)器端立即關(guān)閉連接、釋放資源。這樣既保證了資源可用,也吸取了TCP的可靠性的優(yōu)點(diǎn)。
正因?yàn)檫@點(diǎn),所以大家通常說http協(xié)議是“無狀態(tài)”的,也就是“服務(wù)器不知道你客戶端干了啥”,其實(shí)很大程度上是基于性能考慮的。學(xué)習(xí)http協(xié)議,主要需要了解http的請求和響應(yīng)(當(dāng)然,還有g(shù)et、post等請求方式,狀態(tài)碼、URI、MIME等HTTP簡介WEB瀏覽器與WEB服務(wù)器之間的一問一答的交互過程必須遵循一定的規(guī)則,這個規(guī)則就是HTTP協(xié)議。它是TCP/IP協(xié)議的一個應(yīng)用層協(xié)議,用于定義WEB瀏覽器與WEB服務(wù)器之間交換數(shù)據(jù)的過程及數(shù)據(jù)本身的格式。HTTP協(xié)議的版本(HTTP/1.0、HTTP/1.1)HTTP協(xié)議是學(xué)習(xí)WEB開發(fā)的基石,不深入了解HTTP協(xié)議,就不能說掌握了WEB開發(fā),更無法管理和維護(hù)一些復(fù)雜的WEB站點(diǎn)。HTTP1.0的基本運(yùn)行方式基于HTTP協(xié)議的客戶/服務(wù)器模式的信息交換過程,如圖所示,它分四個過程,建立連接、發(fā)送請求信息、發(fā)送響應(yīng)信息、關(guān)閉連接。瀏覽器與WEB服務(wù)器的連接過程是短暫的,每次連接只處理一個請求和響應(yīng)。對每一個頁面的訪問,瀏覽器與WEB服務(wù)器都要建立一次單獨(dú)的連接。瀏覽器到WEB服務(wù)器之間的所有通訊都是完全獨(dú)立分開的請求和響應(yīng)。無狀態(tài)瀏覽器訪問多圖網(wǎng)頁在一個HTML頁面中如果包含<img>標(biāo)記的話,當(dāng)瀏覽器解析到這些標(biāo)記時,還會向服務(wù)器請求訪問標(biāo)記中指定的文件,即再次建立連接并發(fā)出HTTP請求。如果HTML頁面中有一個超級鏈接: <ahref=””>兄弟連云課堂</a>,當(dāng)點(diǎn)擊這個鏈接時,也會觸發(fā)瀏覽器與Web服務(wù)器開始一次新的HTTP通信。HTTP1.1與HTTP1.0的比較HTTP1.1的特點(diǎn)在一個TCP連接上可以傳送多個HTTP請求和響應(yīng)。多個請求和響應(yīng)過程可以重疊增加了更多的請求頭和響應(yīng)頭,比如Host、If-Unmodified-Since請求頭等HTTP請求消息舉例:GET/books/demo.phpHTTP/1.1Accept:*/*Accept-Language:en-usConnection:Keep-AliveHost:localhostReferer:User-Agent:Mozilla/4.0Accept-Encoding:gzip,deflate
請求行一個空行多個消息頭請求行用于描述客戶端的請求方式、請求的資源名稱,以及使用的HTTP協(xié)議版本號消息頭用于描述客戶端請求哪臺主機(jī),以及客戶端的一些環(huán)境信息等客戶端連上服務(wù)器后,向服務(wù)器請求某個web資源,稱之為客戶端向服務(wù)器發(fā)送了一個HTTP請求。一個完整的HTTP請求包括如下內(nèi)容:一個請求行、若干消息頭、以及請求正文,其中的一些消息頭和正文都是可選的,消息頭和正文內(nèi)容之間要用空行隔開。HTTP響應(yīng)消息舉例:HTTP/1.1200OKServer:Apache/2.2Date:Thu,13Jul200005:46:53GMTContent-Length:2291Content-Type:text/htmlCache-control:private<HTML><BODY>……狀態(tài)行一個空行多個消息頭實(shí)體內(nèi)容狀態(tài)行用于描述服務(wù)器對請求的處理結(jié)果。消息頭用于描述服務(wù)器的基本信息,以及數(shù)據(jù)的描述,服務(wù)器通過這些數(shù)據(jù)的描述信息,可以通知客戶端如何處理等一會兒它回送的數(shù)據(jù)。代表服務(wù)器向客戶端回送的數(shù)據(jù)一個HTTP響應(yīng)代表服務(wù)器向客戶端回送的數(shù)據(jù)。一個完整的HTTP響應(yīng)包括如下內(nèi)容:一個狀態(tài)行、若干消息頭、以及響應(yīng)正文,其中的一些消息頭和正文都是可選的,消息頭和正文內(nèi)容之間要用空行隔開。HTTP消息頭(請求和響應(yīng)共性)使用消息頭,可以實(shí)現(xiàn)HTTP客戶機(jī)與服務(wù)器之間的條件請求和應(yīng)答,消息頭相當(dāng)于服務(wù)器和瀏覽器之間的一些暗號指令。每個消息頭包含一個頭字段名稱,然后依次是冒號、空格、值、回車和換行符
如:Accept-Encoding:gzip,deflate消息頭字段名是不區(qū)分大小寫的,但習(xí)慣上講每個單詞的第一個字母大寫。整個消息頭部分中的各行消息頭可按任何順序排列。消息頭又可分為通用信息頭、請求頭、響應(yīng)頭、實(shí)體頭等四類許多請求頭字段都允許客戶端在值部分指定多個可接受的選項(xiàng),多個選項(xiàng)之間以逗號分隔。有些頭字段可以出現(xiàn)多次,例如,響應(yīng)消息中可以包含有多個”Warning”頭字段。HTTP請求的細(xì)節(jié)——請求行請求行格式:請求方式資源路徑HTTP版本號<CRLF>舉例:GET/temp.phpHTTP/1.1請求方式:GET、POST、HEAD、OPTIONS、DELETE、TRACE、PUT用戶如沒有設(shè)置,默認(rèn)情況下瀏覽器向服務(wù)器發(fā)送的都是get請求,例如在瀏覽器直接輸?shù)刂吩L問,點(diǎn)超鏈接訪問等都是get,用戶如想把請求方式改為post,可通過更改表單的提交方式實(shí)現(xiàn)。不管POST或GET,都用于向服務(wù)器請求某個WEB資源,這兩種方式的區(qū)別主要表現(xiàn)在數(shù)據(jù)傳遞上。GET方式如請求方式為GET方式,則可以在請求的URL地址后以?的形式帶上交給服務(wù)器的數(shù)據(jù),多個數(shù)據(jù)之間以&進(jìn)行分隔,例如:GET/mail/1.html?name=abc&password=xyzHTTP/1.1GET方式的特點(diǎn):在URL地址后附帶的參數(shù)是有限制的,其數(shù)據(jù)容量通常不能超過1K。POST方式如請求方式為POST方式,則可以在請求的正文內(nèi)容中向服務(wù)器發(fā)送數(shù)據(jù),Post方式的特點(diǎn):傳送的數(shù)據(jù)量無限制。HTTP響應(yīng)的細(xì)節(jié)——狀態(tài)行狀態(tài)行
格式:HTTP版本號狀態(tài)碼原因敘述<CRLF>
舉例:HTTP/1.1200OK狀態(tài)碼用于表示服務(wù)器對請求的各種不同處理結(jié)果和狀態(tài),它是一個三位的十進(jìn)制數(shù)。響應(yīng)狀態(tài)碼分為5類,使用最高位為1到5來進(jìn)行分類如下所示:狀態(tài)碼含義100~199表示成功接收請求,要求客戶端繼續(xù)提交下一次請求才能完成整個處理過程200~299表示成功接收請求并已完成整個處理過程300~399為完成請求,客戶需進(jìn)一步細(xì)化請求。例如,請求的資源已經(jīng)移動一個新地址400~499客戶端的請求有錯誤500~599服務(wù)器端出現(xiàn)錯誤HTTP響應(yīng)的細(xì)節(jié)——常用狀態(tài)碼200(正常)表示一切正常,返回的是正常請求結(jié)果302/307(臨時重定向)指出被請求的文檔已被臨時移動到別處,此文檔的新的URL在Location響應(yīng)頭中給出。304(未修改)表示客戶機(jī)緩存的版本是最新的,客戶機(jī)可以繼續(xù)使用它,無需到服務(wù)器請求。404(找不到)服務(wù)器上不存在客戶機(jī)所請求的資源。500(服務(wù)器內(nèi)部錯誤)服務(wù)器端的程序發(fā)生錯誤HTTP請求的細(xì)節(jié)——請求頭1請求頭字段用于客戶端在請求消息中向服務(wù)器傳遞附加信息,主要包括客戶端可以接受的數(shù)據(jù)類型(MIME類型)、壓縮方法、語言以及發(fā)出請求的超鏈接所屬頁面的URL地址等信息。常用請求頭:Accept:瀏覽器可接受的MIME類型Accept-Charset:瀏覽器通過這個頭告訴服務(wù)器,它支持哪種字符集Accept-Encoding:瀏覽器能夠進(jìn)行解碼的數(shù)據(jù)編碼方式,比如gzipAccept-Language:瀏覽器所希望的語言種類,當(dāng)服務(wù)器能夠提供一種以上的語言版本時要用到。可以在瀏覽器中進(jìn)行設(shè)置。Host:初始URL中的主機(jī)和端口Referer:包含一個URL,用戶從該URL代表的頁面出發(fā)訪問當(dāng)前請求的頁面Content-tType:內(nèi)容類型HTTP請求的細(xì)節(jié)——請求頭2If-Modified-Since:Wed,02Feb201112:04:56GMT利用這個頭與服務(wù)器的文件進(jìn)行比對,如果一致,則從緩存中直接讀取文件。User-Agent:瀏覽器類型.Content-Length:表示請求消息正文的長度Connection:表示是否需要持久連接。如果服務(wù)器看到這里的值為“Keep-Alive”,或者看到請求使用的是HTTP1.1(HTTP1.1默認(rèn)進(jìn)行持久連接Cookie:這是最重要的請求頭信息之一Date:Date:Mon,22Aug201301:55:39GMT請求時間GMTHTTP響應(yīng)細(xì)節(jié)——常用響應(yīng)頭1響應(yīng)頭字段用于向客戶端傳遞附加信息常用響應(yīng)頭Location:指示新的資源的位置Server:apache指示服務(wù)器的類型Content-Encoding:gzip服務(wù)器發(fā)送的數(shù)據(jù)采用的編碼類型Content-Length:80告訴瀏覽器正文的長度Content-Language:zh-cn服務(wù)發(fā)送的文本的語言Content-Type:text/html;charset=utf-8服務(wù)器發(fā)送的內(nèi)容的MIME類型Last-Modified:Tue,11Jul201318:23:51GMT文件的最后修改時間Refresh:指示客戶端刷新頻率。單位是秒HTTP響應(yīng)細(xì)節(jié)——常用響應(yīng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商圈會員管理辦法
- 商戶積分管理辦法
- 商鋪考核管理辦法
- 器械管路管理辦法
- 團(tuán)員青年管理辦法
- 園區(qū)廠房管理辦法
- 園區(qū)綠化管理辦法
- 國企票據(jù)管理辦法
- 國別風(fēng)險(xiǎn)管理辦法
- 國學(xué)生餐管理辦法
- 供水維修安全管理制度
- 船舶管理二三管輪11規(guī)則總題庫(含答案) (一)
- 員工試崗7天協(xié)議書
- DB65∕T 3767-2015 汽車用液化天然氣(LNG)氣瓶定期檢驗(yàn)與評定
- 光伏發(fā)電站生產(chǎn)安全事故危險(xiǎn)評估報(bào)告、應(yīng)急資源調(diào)查報(bào)告編制
- 2025-2030中國軟木行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報(bào)告
- DB36T-黑水虻昆蟲集約化養(yǎng)殖技術(shù)規(guī)程
- 化工工藝設(shè)備安裝及管道安裝 施工方案
- 新進(jìn)人員醫(yī)保知識培訓(xùn)
- 2025年銀行業(yè)金融機(jī)構(gòu)反假貨幣測評試指導(dǎo)題庫(含答案)
- 文化和旅游局聘用合同模板
評論
0/150
提交評論