摘要:請求優先級把消息分解為很多獨立的幀之后,就可以通過優化這些幀的交錯和傳輸順序,進一步提升性能,為了做到這一點,每個流都可以攜帶有的優先值。服務器可以根據流的優先級,控制資源的分配,而在響應數據準備好之后,優先將最高優先級的幀發送給瀏覽器。
HTTP2.0
HTTP2.0的目的就是通過支持請求與響應的多路復用來減少延遲、通過壓縮HTTP首部字段將協議開銷降至最低,同時增加對請求優先級和服務器端推送的支持,HTTP2.0不會改動HTTP的語義、HTTP方法、狀態碼、URI和首部字段等這些核心概念,但是HTTP2.0修改了數據傳輸的方式和數據格式化的方式。
二進制分幀層在傳輸層和應用層之間新增了二進制分幀層,它位于應用層之內,處于應用層可見的高層HTTP API之下的一個新機制,HTTP的語義不受影響,只是在傳輸期間對數據的編碼方式做出修改,HTTP1.x以換行符作為純文本的分隔符,而HTTP2.0將所有傳輸的信息分割為更小的消息和幀,并對它們采用二進制格式的編碼。
HTTP2.0中的新概念:
流,已建立連接上的雙向字節流;
消息,與邏輯消息對應的完整的一系列數據幀,比如請求、響應等;
幀,HTTP2.0通信的最小單位,每個幀的首部含有流標識符。
所有的HTTP2.0的通信都是在一個TCP連接上完成,這個TCP連接可以承載任意數量的雙向數據流,相應的,每個數據流以消息的形式發送,而消息由一個或多個幀組成,這些幀可以亂序發送,然后再根據每個幀首部的流標識符重新組裝。由于所有的幀都采用二進制編碼,所以首部字段都會被壓縮。
在HTTP1.x中,如果客戶端想發送多個并行的請求以改進性能,就必須使用多個TCP連接,HTTP2.0實現了多路復用,客戶端和服務器可以把HTTP消息分解為互不依賴的幀,然后亂序發送,最后在另一端把它們重新組裝起來。這樣就可以只使用一個TCP連接即可并行發送多個請求和響應。
請求優先級把HTTP消息分解為很多獨立的幀之后,就可以通過優化這些幀的交錯和傳輸順序,進一步提升性能,為了做到這一點,每個流都可以攜帶有31bites的優先值。服務器可以根據流的優先級,控制資源的分配,而在響應數據準備好之后,優先將最高優先級的幀發送給瀏覽器。
服務器推送在HTTP2.0,服務器可以額外的向瀏覽器推送資源,當瀏覽器請求資源A時,而服務器知道它很可能也需要資源B,服務器可以在瀏覽器發送請求前,主動將資源推送給客戶端。這個功能可以幫助客戶端將資源B放進緩存。
首部壓縮HTTP1.x的每一次通信都會攜帶一組首部,用于描述傳輸的資源及其屬性,這通常會增加500-800字節的開銷,為了減少這些開銷提升性能:
HTTP2.0會使用首部表來跟蹤和存儲之前發送的鍵值對,對于相同的數據,不再通過每次請求和響應發送;
首部表在HTTP2.0連接持續期內始終存在,由服務器和瀏覽器漸進的更新;
每個新的首部字段要么被追加到當前首部表的末尾,要么替換首部表之前的值;
在上面的例子中,第二次發送請求只需要發送變化了的字段,從而顯著的減少了每個請求的開銷。
web安全常見的前端安全問題包括以下幾點:
XSS攻擊
iframe帶來的風險
CSRF攻擊
網絡劫持攻擊
XSS攻擊XSS是跨站腳本攻擊的簡稱,這類安全問題的本質原因在于:瀏覽器錯誤的將攻擊者提供的用戶輸入數據當做JavaScript腳本給執行了。
1:用戶輸入框輸入的數據不經過處理直接展示在頁面上,該攻擊手段最簡單的防御方法就是將前端輸入的數據都進行轉義,比如將"<"、">"轉義為"<",">"實體字符,這樣輸入數據里面的就不會被瀏覽器當做腳本執行了。但是在Jquery中,append()在添加元素的時候,會使用eval將參數里面的