HTTP解決方案
開發人(rén)員(yuán)是技術(shù)的先驅。在越來(lái)越多的開發人(rén)員(yuán)開始構建Web應用程序時,對Web浏覽器的需求也增加了。這時,性能變成了問(wèn)題。這種問(wèn)題不僅由于Web浏覽器應用程序,還(hái)與浏覽器運行的機(jī)器有關。它們實實在在地推動網絡技術(shù)和Web應用程序的發展,但(dàn)是也遇到了一個重大(dà)的絆腳石:HTTP 。
HTTP是一種協議(yì)。在設計(jì)之初,客戶端可(kě)以使用該協議(yì)請(qǐng)求獲得(de)數據并接受響應。但(dàn)是,一些Web應用程序開始要求信息從(cóng)服務器發送到客戶端,所以,我們需要主動進入客戶端。主動進入客戶端需要非标準的、複雜的解決方案。考慮到不同的Web浏覽器支持的特性不同,你(nǐ)可(kě)以想象,要同時支持這麽多種情況,問(wèn)題必然比較複雜。(後文會涉及其中一些問(wèn)題。)
當今流行的Twitter和Facebook采用了一些解決方案,這些解決方案可(kě)以用來(lái)演示實時網絡技術(shù)帶來(lái)體(tǐ)驗的好處和需求。在這種需求的推動下,實時網絡技術(shù)得(de)到了極大(dà)的改進,可(kě)用性大(dà)大(dà)增強。
在Web浏覽器中使用基于HTTP的解決方案的其他(tā)問(wèn)題
爲雙向通信使用多重連接以及跨浏覽器實現并不是基于HTTP的解決方案中僅存的原因。同時,浏覽器也限制了從(cóng)網頁發出的HTTP請(qǐng)求的到達地址和可(kě)以建立的連接數。
在網頁中運行的JavaScript能夠向服務器發送請(qǐng)求。這個請(qǐng)求長期以來(lái)限制在同一域内 。例如(rú),如(rú)果網頁是www.szymweb.com/index.html,那麽JavaScript可(kě)能隻能往www.szymweb.com發送資源請(qǐng)求,或在JavaScript中操作(zuò)document.domain,而不可(kě)能向example.com的子域名(如(rú)sub.szymweb.com)發送請(qǐng)求。出于安全的考慮,所有的浏覽器提供商都(dōu)施加了這個限制,它阻止了那些請(qǐng)求其他(tā)域的合法使用場景。這使得(de)需要那些請(qǐng)求的情況不得(de)不進行跨源的資源共享(Cross-Origin Resource Sharing,CORS) 。CORS有較好的浏覽器支持 ,但(dàn)是它們顯然是比較老式的浏覽器中的考慮因素。
連接數的限制可(kě)能是針對每個域名的(如(rú)www.szymweb.com)。在早先的浏覽器中,這意味着同一個域中可(kě)能隻可(kě)以有兩個連接。對于基于HTTP的解決方案,這意味着若使用HTTP長輪詢或HTTP流,隻能有一個Web應用程序網頁或網站(zhàn)處于打開狀态;如(rú)果試圖打開第二個頁面,則連接會失敗。這個問(wèn)題的解決方法是使用很多的子域名,并讓這些子域名映射到同一個服務器。在現代浏覽器中仍然有連接限制,但(dàn)是可(kě)允許的連接數會更加合理(lǐ) 。
本站(zhàn)文章(zhāng)爲深圳網站(zhàn)建設·源美網絡原創策劃,如(rú)有版權糾紛或者違規問(wèn)題,請(qǐng)聯系我們删除,謝謝!
售後保障
承諾任何問(wèn)題1小時内解決數據備份
更安全、更高效、更穩定價格公道精準
項目經理(lǐ)精準報價不弄虛作(zuò)假合作(zuò)無風(fēng)險
重合同講信譽,無效全額退款