<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
    數(shù)據(jù)加載中……

    Java網(wǎng)絡(luò)編程從入門到精通(20):HTTP協(xié)議簡介

    本文為原創(chuàng),如需轉(zhuǎn)載,請注明作者和出處,謝謝!


    上一篇:Java網(wǎng)絡(luò)編程從入門到精通(19):套接字(Socket)的異常

    一、
    什么是HTTP協(xié)議

    HTTP協(xié)議是一種應(yīng)用層協(xié)議,HTTP是HyperText Transfer Protocol(超文本傳輸協(xié)議)的英文縮寫。HTTP可以通過傳輸層的TCP協(xié)議在客戶端和服務(wù)器之間傳輸數(shù)據(jù)。HTTP協(xié)議主要用于Web瀏覽器和Web服務(wù)器之間的數(shù)據(jù)交換。我們在使用IE或Firefox瀏覽網(wǎng)頁或下載Web資源時,通過在地址欄中輸入http://host:port/path,開頭的4個字母http就相當(dāng)于通知瀏覽器使用HTTP協(xié)議來和host所確定的服務(wù)器進(jìn)行通訊。

    HTTP協(xié)議誕生于上世紀(jì)90年代初;第一個被廣泛使用的版本是HTTP0.9。這個最初的版本非常簡陋,它只向服務(wù)器發(fā)送一個非常簡單的請求,而服務(wù)器也會返回一個很簡單的響應(yīng)以及相應(yīng)的HTML文本。在隨后的HTTP1.0中,增加了很多在HTTP0.9中沒有的特性,如增加了資源重定位,大量的狀態(tài)響應(yīng)碼等。在最新的HTTP1.1中,對HTTP1.0做了更進(jìn)一步的改進(jìn),除了增加了一些請求方法外,最大的改進(jìn)就是可以使HTTP保持連接狀態(tài)。這對于一些頻繁傳輸數(shù)據(jù)的應(yīng)用是非常有益的。由于HTTP協(xié)議已經(jīng)達(dá)到了它的目標(biāo),因此,負(fù)責(zé)制定規(guī)范的W3C已經(jīng)停止了對HTTP的改進(jìn)(和HTTP相關(guān)的協(xié)議或擴(kuò)展并未停止),所以,HTTP1.1將是HTTP協(xié)議的最后一個版本。

    無論你是從事網(wǎng)絡(luò)程序開發(fā),還是Web開發(fā),或是網(wǎng)站的維護(hù)人員;都必須對HTTP協(xié)議有一個比較深入的了解。因此,HTTP協(xié)議不僅是Internet上應(yīng)用最為廣泛的協(xié)議,也是應(yīng)用協(xié)議家族中比較簡單的一種入門級協(xié)議;而且所有的Web服務(wù)器無一例外地都支持HTTP協(xié)議。這也充分地說明,對于那些開發(fā)網(wǎng)絡(luò)程序,尤其是開發(fā)各種類型的Web服務(wù)器的開發(fā)人員,透徹地掌握HTTP協(xié)議將對你所開發(fā)的基于HTTP協(xié)議的系統(tǒng)產(chǎn)生直接的影響。

    由于本文的目的并不是講解HTTP協(xié)議,因此,只討論了HTTP協(xié)議的主要部分,如果讀者對HTTP協(xié)議感性趣,并想深入了解HTTP協(xié)議,請查看RFC2616或通過www.w3c.org來了解HTTP協(xié)議的詳情。

    二、HTTP的工作方式

    HTTP協(xié)議采用了請求/響應(yīng)的工作方式。基于HTTP1.0協(xié)議的客戶端在每次向服務(wù)器發(fā)出請求后,服務(wù)器就會向客戶端返回響應(yīng)消息(包括請求是否正確以及所請求的數(shù)據(jù)),在確認(rèn)客戶端已經(jīng)收到響應(yīng)消息后,服務(wù)端就會關(guān)閉網(wǎng)絡(luò)連接(其實是關(guān)閉TCP連接)。在這個數(shù)據(jù)傳輸過程中,并不保存任何歷史信息和狀態(tài)信息,因此,HTTP協(xié)議也被認(rèn)為是無狀態(tài)的協(xié)議,圖1描繪了HTTP1.0協(xié)議的通訊過程。

     

    圖1  HTTP1.0協(xié)議的通訊過程

    HTTP1.0協(xié)議中,當(dāng)Web瀏覽器發(fā)出請求時,就意味著一個請求/響應(yīng)會話已經(jīng)開始。在請求、響應(yīng)結(jié)束后,服務(wù)器就會立刻關(guān)閉這個連接。這種會話方式雖然簡便,但它會帶來另外一個問題。如果客戶端瀏覽器訪問的某個HTML或其他類型的Web頁中包含有其他的Web資源,如JavaScript文件、圖像文件、CSS文件等;當(dāng)瀏覽器每遇到這樣一個Web資源,就會建立一個HTTP會話。如果這樣的資源很多的話,就會加重服務(wù)器的負(fù)擔(dān),同時也會影響客戶端瀏覽器加載HTMLWeb資源的效率。

    在對上述的缺陷進(jìn)行改進(jìn)和完善后,HTTP1.1協(xié)議進(jìn)入了我們的視線。HTTP1.1和HTTP1.0相比較而言,最大的區(qū)別就是增加了持久連接支持。當(dāng)客戶端使用HTTP1.1協(xié)議連接到服務(wù)器后,服務(wù)器就將關(guān)閉客戶端連接的主動權(quán)交還給客戶端;也就是說,在客戶端向服務(wù)器發(fā)送一個請求并接收以一個響應(yīng)后,只要不調(diào)用Socket類的close方法關(guān)閉網(wǎng)絡(luò)連接,就可以繼續(xù)向服務(wù)器發(fā)送HTTP請求。當(dāng)HTML中含有其他的Web資源時,瀏覽器就可以使用同一個網(wǎng)絡(luò)連接向下載這些資源,這樣就可以大大減輕服務(wù)器的壓力。圖2演示了這一過程。

     

    圖2  HTTP1.1協(xié)議的通訊過程

    HTTP1.1除了支持持久連接外,還將HTTP1.0的請求方法從原來的三個(GET、POST和HEAD)擴(kuò)展到了八個(OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE和CONNECT)。而且還增加了很多請求和響應(yīng)字段,如上述的持久連接的字段Connection。這個字段有兩個值,Close和Keep-Alive。如果使用Connection:Close,則關(guān)閉HTTP1.1的持久連接的功能,要打開HTTP1.1的持久連接的功能,必須使用Connection:Keep-Alive,或者不加Connection字段(因為HTTP1.1在默認(rèn)情況下就是持久連接的)。除了這些,還提供了身份認(rèn)證、狀態(tài)管理和緩存(Cache)等相關(guān)的請求頭和響應(yīng)頭。

    下一篇:
    Java網(wǎng)絡(luò)編程從入門到精通(21):HTTP消息的格式





    Android開發(fā)完全講義(第2版)(本書版權(quán)已輸出到臺灣)

    http://product.dangdang.com/product.aspx?product_id=22741502



    Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


    新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

    posted on 2009-06-07 09:38 銀河使者 閱讀(4616) 評論(2)  編輯  收藏 所屬分類: java 原創(chuàng) 、網(wǎng)絡(luò)編程

    評論

    # re: Java網(wǎng)絡(luò)編程從入門到精通(20):HTTP協(xié)議簡介  回復(fù)  更多評論   

    都到20了還講基礎(chǔ)
    http://xiaoshuo.bobamboo.org/
    2009-06-07 09:52 | 網(wǎng)絡(luò)小說

    # re: Java網(wǎng)絡(luò)編程從入門到精通(20):HTTP協(xié)議簡介  回復(fù)  更多評論   

    還有很多個20呢,哈哈,一點點來
    2009-06-07 09:56 | 銀河使者
    主站蜘蛛池模板: 亚洲国产综合久久天堂| 野花视频在线官网免费1| 国产亚洲一区二区三区在线不卡 | 免费看污成人午夜网站| a级片免费在线观看| 免费看又黄又爽又猛的视频软件| 亚洲伊人精品综合在合线| 亚洲国产第一站精品蜜芽| 亚洲精品WWW久久久久久| 永久免费av无码网站大全| 日韩免费一区二区三区在线 | 亚洲综合国产一区二区三区| 国产真人无遮挡作爱免费视频 | 亚洲AV日韩精品久久久久久久| 亚洲成a人片在线播放| 成人永久福利免费观看| 大地资源二在线观看免费高清| 永久在线观看www免费视频| 成人A片产无码免费视频在线观看| 日韩a毛片免费观看| 美女羞羞免费视频网站| 亚洲AV无码AV日韩AV网站| 亚洲色偷偷色噜噜狠狠99网| 亚洲制服丝袜在线播放| 亚洲美女激情视频| 精品日韩亚洲AV无码一区二区三区| 亚洲国产成人高清在线观看| 亚洲自偷自偷图片| 国产亚洲婷婷香蕉久久精品 | 免费看黄网站在线看| 日韩a毛片免费观看| www免费黄色网| 51午夜精品免费视频| 最近中文字幕免费大全| a视频免费在线观看| 无码国产精品一区二区免费16| 无码人妻精品中文字幕免费| 91香蕉国产线在线观看免费| 四虎在线最新永久免费| 美女裸身网站免费看免费网站| 无人在线观看免费高清视频|