国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python:Tornado 第三章:HTML5 WebSocket概念及應用:第一節:WebSoc

mo0n1andin / 1520人閱讀

摘要:上一篇文章第二章實戰演練開發網站第九節防止跨站攻擊下一篇文章第三章概念及應用第二節服務端編程的異步特性使得其非常適合服務器的高并發處理,客戶端與服務器的持久連接應用框架就是高并發的典型應用。因為是的標準協議,所以不受企業防火墻的攔截。

上一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第九節:防止跨站攻擊
下一篇文章:Python:Tornado 第三章:HTML5 WebSocket概念及應用:第二節:服務端編程

Tornado的異步特性使得其非常適合服務器的高并發處理,客戶端與服務器的持久連接應用框架就是高并發的典型應用。而WebSocket正是在HTTP客戶端與服務器之間建立持久連接的HTML5標準技術。本章將講解WebSocket技術在Tornado框架中的應用。
WebSocket protocol是HTML5定義的一種新的標準協議(RFC6455),它實現了瀏覽器與服務器的雙全工通信(full-duplex)。

1、WebSocket的應用場景

傳統的HTTP和HTML技術使用客戶端主動向服務器發送請求并獲取回復。但是隨著即時通訊需求的增多,這樣的通信模式有時并不能滿足應用的需求。

WebSocket與普通的Socket通訊類似,它打破了原來HTTP的Request和Response一對一的通信模型,同時打破了服務器只能被動地接受客戶端請求的應用場景。也許讀者聽說過Ajax、Long poll等基于傳統HTTP的動態客戶端技術,但這些技術無不采用輪詢技術,耗費了大量的網絡帶寬和計算資源。

而WebSocket正是為了應對這樣的場景而制定的HTML5標準,相對于普通的Socket通信,WebSocket又在應用層定義了基本的交互流程,使得Tornado這樣的服務器框架和JavaScript客戶端可以構建出標準的WebSocket模塊。

總結WebSocket的特點如下:

WebSocket適合服務端主動推送的場景。

相對于Ajax和Long poll等技術,WebSocket通信模型更高效。

WebSocket仍然與HTTP完成Internet通信。

因為是HTML5的標準協議,所以不受企業防火墻的攔截。

2、WebSocket的通信原理

WebSocket的通信原理是在客戶端與服務器之間建立TCP持久鏈接,從而使得當服務器有消息需要推送給客戶端時能夠進行即時通信。

雖然WebSocket不是HTTP,但由于在Internet上HTML本事是由HTTP封裝并進行傳輸的,所以WebSocket仍然需要與HTTP進行協作。IETF在RFC6455中定義了基于HTTP鏈路建立WebSocket信道的標準流程。

客戶端通過發送如下HTTP Request告訴服務器需要建立一個WebSocket長鏈接信道:

GET /stock_info/?encoding=text HTTP/1.1
Host:echo.websocket.org
Origin:http://websocket.org
Cookie:__token=ubcxx13
Connection:Upgrade
Sec-WebSocket-Key:uRovscZjNol/umbTt5uKmw==
Upgrade:websocket
Sec-WebSocket-Version:13

讀者可以發現其仍然是一個HTTP Request包,并對其中的內容非常熟悉。

HTTP請求方式:GET

請求地址:/stock_info

HTTP版本號:1.1

服務器主機域名:echo.websocket.org

Cookie信息:__token=ubcxx13

但是在HTTP Header中出現了4個特色的字段,他們是:

Connection:Upgrade
Sec-WebSocket-Key:uRovscZjNol/umbTt5uKmw==
Upgrade:websocket
Sec-WebSocket-Version:13

這就是WebSocket建立鏈路的核心,它告訴Web服務器:客戶端希望建立一個WebSocket鏈接,客戶端使用的WebSocket版本時13,密鑰是uRovscZjNol/umbTt5uKmw==。

服務器在收到該Request后,如果同意建立WebSocket鏈接則返回類似如下的Response:

HTTP/1.1 101 WebSocket Protocol Handshake
Date:Fri,10 Feb 2012 17:38:18 GMT
Connection:Upgrade
Server:Kaazing Gateway
Upgrade:WebSocket
Access-Control-Allow-Origin:http://websocket.org
Access-Contril-Allow-Credentials:true
Sec-WebSocket-Accept:rLHCKw/SKs09GAH/ZSFhBATDKrU=
Access-Control-Allow-Headers:content-type

這依舊是一個標準的HTTP Response,其中與WebSocket相關的Header信息是:

Connection:Upgrade
Upgrade:WebSocket
Sec-WebSocket-Accept:rLHCKw/SKs09GAH/ZSFhBATDKrU=

前面的兩條數據告訴客戶端:服務器已經將本連接轉換為WebSocket鏈接。而Sec-WebSocket-Accept是將客服端發送的Sec-WebSocket-Key加密后產生的數據,以讓客服端確認服務器能夠正常工作。

至此,在客戶端與服務器之間已經建立了一個TCP持久鏈接,雙發已經可以隨時向對方發送消息。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44772.html

相關文章

  • PythonTornado 三章HTML5 WebSocket念及應用第三節:客戶端編程

    摘要:上一篇文章第三章概念及應用第二節服務端編程下一篇文章第四章網站部署第一節調試模式由于是的標準之一,所以主流瀏覽器的客戶端編程語音已經支持的客戶端編程。此事件發生在收到了來自服務器的消息時。此事件發生在通信過程中有任何錯誤時。 上一篇文章:Python:Tornado 第三章:HTML5 WebSocket概念及應用:第二節:服務端編程下一篇文章:Python:Tornado 第四章:T...

    miguel.jiang 評論0 收藏0
  • PythonTornado 三章HTML5 WebSocket念及應用:第二節:服務端編程

    摘要:上一篇文章第三章概念及應用第一節概念下一篇文章第三章概念及應用第三節客戶端編程定義了類用于處理鏈接的請求,應用開發者應該繼承該類并實現其中的函數。通常,這是服務器端編程的核心函數,通過解析收到的消息做出相應的處理。 上一篇文章:Python:Tornado 第三章:HTML5 WebSocket概念及應用:第一節:WebSocket概念下一篇文章: Python:Tornado 第三章...

    xfee 評論0 收藏0
  • PythonTornado 第四章:Tornado網站部署:一節:調試模式

    摘要:上一篇文章第三章概念及應用第三節客戶端編程下一篇文章第四章網站部署第二節靜態文件之前著重講解的編程知識點,所有之前的例子都使用最簡單的啟動方式運行。 上一篇文章:Python:Tornado 第三章:HTML5 WebSocket概念及應用:第三節:客戶端編程下一篇文章:Python:Tornado 第四章:Tornado網站部署:第二節:靜態文件 之前著重講解Tornado的編程知...

    desdik 評論0 收藏0
  • PythonTornado 第二章:實戰演練:開發Tornado網站:第九節:防止跨站攻擊

    摘要:上一篇文章第二章實戰演練開發網站第八節用戶身份認證下一篇文章第三章概念及應用第一節概念跨站請求偽造,或是一種對網站的惡意利用。其中是存在漏洞的網站,而是存在攻擊行為的惡意網站。 上一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第八節:用戶身份認證下一篇文章:Python:Tornado 第三章:HTML5 WebSocket概念及應用:第一節:Web...

    Zoom 評論0 收藏0
  • PythonTornado 開篇

    摘要:作為網站的基礎框架,于年月日發布,目前已經獲得了很多社區的支持,并且在一系列不同的場景種得到應用。使用該框架,開發者能夠快速開發出即安全又強大的用戶身份認證機制,例如機制用戶身份認證防止跨站攻擊等等。 下一篇文章:Python:Tornado 第一章:異步及協程基礎:第一節:同步與異步I/O Tornado是一個可擴展的非阻塞Web服務器以及相關工具的總稱。Tornado每秒可以處理...

    Anshiii 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<