Can you summarize the following document?
        
  WebSocket是一種與HTTP不同的協議。兩者都位於OSI模型的應用層,並且都依賴於傳輸層的TCP協議。 雖然它們不同,但是RFC 6455中規定:codice_1(WebSocket通過HTTP埠80和443進行工作,並支援HTTP代理和中介),從而使其與HTTP協議相容。 為了實現相容性,WebSocket握手使用HTTP Upgrade頭從HTTP協議更改為WebSocket協議。  WebSocket協議支援Web瀏覽器(或其他客戶端應用程式)與Web伺服器之間的互動,具有較低的開銷,便於實現客戶端與伺服器的實時資料傳輸。 伺服器可以通過標準化的方式來實現,而無需客戶端首先請求內容,並允許訊息在保持連線開啟的同時來回傳遞。通過這種方式,可以在客戶端和伺服器之間進行雙向持續對話。 通訊通過TCP埠80或443完成,這在防火牆阻止非Web網路連線的環境下是有益的。另外,Comet之類的技術以非標準化的方式實現了類似的雙向通訊。  大多數瀏覽器都支援該協議,包括Google Chrome、Firefox、Safari、Microsoft Edge、Internet Explorer和Opera。  與HTTP不同,WebSocket提供全雙工通訊。此外,WebSocket還可以在TCP之上實現訊息流。TCP單獨處理位元組流,沒有固有的訊息概念。 在WebSocket之前,使用Comet可以實現全雙工通訊。但是Comet存在TCP握手和HTTP頭的開銷,因此對於小訊息來說效率很低。WebSocket協議旨在解決這些問題。  WebSocket協議規範將codice_2(WebSocket)和codice_3(WebSocket Secure)定義為兩個新的統一資源識別符號(URI)方案,分別對應明文和加密連線。除了方案名稱和片段ID(不支援codice_4)之外,其餘的URI元件都被定義為此URI的通用語法。  使用瀏覽器開發人員工具,開發人員可以檢查WebSocket握手以及WebSocket框架。

  WebSocket最初在HTML5規範中被引用為TCPConnection,作為基於TCP的套接字API的佔位符。2008年6月,進行了一系列討論,最終形成了稱為WebSocket的協議。  “WebSocket”這個名字是Ian Hickson和Michael Carter之後在 #whatwg IRC聊天室創造的,隨後由Ian Hickson撰寫並列入HTML5規範,並在Michael Carter的Cometdaily部落格上宣佈。 2009年12月,Google Chrome 4是第一個提供標準支援的瀏覽器,預設情況下啟用了WebSocket。WebSocket協議的開發隨後於2010年2月從W3C和WHATWG小組轉移到IETF,並在Ian Hickson的指導下進行了兩次修訂。  該協議被多個瀏覽器預設支援並啟用後,RFC於2011年12月在Ian Fette下完成。

  早期,很多網站為了實現推送技術,所用的技術都是輪詢。輪詢是指由瀏覽器每隔一段時間(如每秒)向伺服器發出HTTP請求,然後伺服器返回最新的資料給客戶端。這種傳統的模式帶來很明顯的缺點,即瀏覽器需要不斷的向伺服器發出請求,然而HTTP請求與回覆可能會包含較長的頭部,其中真正有效的資料可能只是很小的一部分,所以這樣會消耗很多頻寬資源。  比較新的輪詢技術是Comet。這種技術雖然可以實現雙向通訊,但仍然需要反覆發出請求。而且在Comet中普遍採用的HTTP長連線也會消耗伺服器資源。  在這種情況下,HTML5定義了WebSocket協議,能更好的節省伺服器資源和頻寬,並且能夠更實時地進行通訊。  Websocket使用codice_2或codice_3的統一資源標誌符(URI)。其中codice_3表示使用了TLS的Websocket。如: Websocket與HTTP和HTTPS使用相同的TCP埠,可以繞過大多數防火牆的限制。預設情況下,Websocket協議使用80埠;執行在TLS之上時,預設使用443埠。

  WebSocket 是獨立的、建立在TCP上的協議。  Websocket 通過 HTTP/1.1 協議的101狀態碼進行握手。  為了建立Websocket連線,需要通過瀏覽器發出請求,之後伺服器進行迴應,這個過程通常稱為“握手”(Handshaking)。

  一個典型的Websocket握手請求如下:  客戶端請求: 伺服器迴應:

  WebSocket協議的安全版本在Firefox 6、Safari 6、Google Chrome 14、Opera 12.10和Internet Explorer 10中實現。詳細的協議測試套件報告列出了這些瀏覽器與特定協議方面的一致性。  Opera 11和Safari 5中實現了較舊的,不太安全的協議版本,以及iOS 4.2中的Safari移動版本。OS7中的BlackBerry Browser實現了WebSockets。由於存在漏洞,它在Firefox 4和5以及Opera 11中被禁用。  所有最新的瀏覽器支援最新規範(RFC 6455)的WebSocket協議。一個詳細的測試報告列出了這些瀏覽器支援的Websocket版本。 基於Gecko 6–10版本的瀏覽器的WebSocket物件為“mozwebsocket”,需要新增額外的程式碼。

  在伺服器方面,網上都有不同對websocket支援的伺服器:
WebSocket是一種網路傳輸協議,可在單個TCP連線上進行全雙工通訊,位於OSI模型的應用層。WebSocket協議在2011年由IETF標準化為RFC 6455,後由RFC 7936補充規範。中的WebSocket API由W3C標準化。