Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 美国一级免费毛片,韩剧2023年最新电视剧在线观看 ,亚洲影院adc

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          CSS 實現風吹動樹葉的動畫

          題,要實現樹葉在風中搖擺的動畫,首先準備主體:樹葉

          這里準備了兩張矢量的高清版 SVG 各式的不同種類的樹葉。

          首先我們使用 img 標簽來在網頁中顯示樹葉,然后給它一個名為 leaf 的類,好給它附加樣式。

          <img class="leaf" src="/blog/virtual_safari_leaf.svg" alt="Leaf" />

          接下來就是編寫 CSS 動畫代碼,這里利用了 tranform 屬性中的兩個變換,skew 將元素在二維平面上傾斜角度進行拉伸,rotate 以中心為坐標軸進行旋轉。

          .leaf {
          transform: scale(0.8);
          animation: leftRuffle 3s infinite alternate;
          }
          @keyframes leftRuffle {
          50% {
          transform: scale(0.8) skew(5deg) rotate(-5deg);
          }
          100% {
          transform: scale(0.8) skew(0) rotate(0);
          }
          }

          我們先讓第一個樹葉動起來

          第二個樹葉我們將它左右翻轉下,利用 scaleX(-1),然后同理

          .leaf {
          transform: scale(0.7) scaleX(-1);
          animation: rightRuffle 3s infinite alternate;
          }
          @keyframes rightRuffle {
          0% {
          transform: scale(0.7) scalex(-1) skew(0) rotate(0);
          }
          50% {
          transform: scale(0.7) scalex(-1) skew(5deg) rotate(-5deg);
          }
          100% {
          transform: scale(0.7) scalex(-1) skew(0) rotate(0);
          }
          }

          動是動起來了,可單獨看是否覺得有點奇怪。

          我們給它增加一個場景:

          通常這種大樹葉的綠植要么生長在熱帶雨林,要么被我們放在室內當做風景或者背景。


          原文鏈接:https://juejin.cn/post/7320426329164496935

          .比較http 0.9和http 1.0

          1. http0.9只是一個簡單的協議,只有一個GET方法,沒有首部,目標用來獲取HTML。
          2. HTTP1.0協議大量內容:首部,響應碼,重定向,錯誤,條件請求,內容編碼等。

          http0.9流程:

          客戶端,構建請求,通過DNS查詢IP地址,三次握手建立TCP連接,客戶端發起請求,服務器響應,四次揮手,斷開TCP連接。(與服務器只有一個來回)

          http1.0流程:

          客戶端,構建請求,通過DNS查詢IP地址,三次握手建立TCP連接,客戶端發起請求,服務器響應,四次揮手,斷開TCP連接。(與服務器有兩個來回)

          因為不足缺陷,就有了http1.1。

          2.關于http1.1及http2

          http1.1中瀏覽器再也不用為每個請求重新發起TCP連接了,增加內容有:緩存相關首部的擴展,OPTIONS方法,Upgrade首部,Range請求,壓縮和傳輸編碼,管道化等。但還是滿足不了現在的web發展需求,so,就有了http.2版本。

          http2解決了(管道化特性可以讓客戶端一次發送所有的請求,但是有些問題阻礙了管道化的發展,即使某個請求花了很長時間,那么隊頭阻塞會影響其他請求。)http中的隊頭阻塞問題。

          使用http2會比http1.1在使用TCP時,用戶體驗的感知多數延遲的效果有了量化的改善,以及提升了TCP連接的利用率(并行的實現機制不依賴與服務器建立多個連接)

          所以需要學習http2,了解更過的內容來掌握計算機網絡。

          對于http2,你可以來運行一個http2的服務器,獲取并安裝一個http2的web服務器,下載并安裝一張TLS證書,讓瀏覽器和服務器通過http2來連接。(從數字證書認證機構申請一張證書)。

          了解http2的協議,先讓我們了解一下web頁面的請求,就是用戶在瀏覽器中呈現的效果,發生了些什么呢?

          資源獲取的步驟:

          把待請求URL放入隊列,判斷URL是否已在請求隊列,否的話就結束,是的話就判斷請求域名是否DNS緩存中,沒有的話就解析域名,有的話就到指定域名的TCP連接是否開啟,沒有的話就開啟TCP連接,進行HTTPS請求,初始化并完成TLS協議握手,向頁面對應的URL發送請求。

          接收響應以及頁面渲染步驟:

          接收請求,判斷是否HTML頁面,是就解析HTML,對頁面引用資源排優先級,添加引用資源到請求隊列。(如果頁面上的關鍵資源已經接收到,就開始渲染頁面),判斷是否有還要繼續接收資源,繼續解析渲染,直到結束。

          3.HTTP的幾種請求方法用途

          第一種GET方法:發送一個請求來獲取服務器上的某一些資源。

          第二種POST方法:向URL指定的資源提交數據或附加新的數據。

          第三種PUT方法:跟POST方法一樣,可以向服務器提交數據,但是它們之間也所有不同,PUT指定了資源在服務器的位置,而POST沒有哦。

          第四種HEAD方法:指請求頁面的首部。

          第五種DELETE方法:刪除服務器上的某資源。

          第六種OPTIONS方法:它用于獲取當前URL所支持的方法,如果請求成功,在Allow的頭包含類似GET,POST等的信息。

          第七種TARCE方法:用于激發一個遠程的,應用層的請求消息回路。

          第八種CONNECT方法:把請求連接轉換到TCP/TP通道。

          4.從瀏覽器地址欄輸入url到顯示頁面的步驟

          簡單說說,瀏覽器根據請求的url交給dns域名解析,查找真正的ip地址,向服務器發起請求;服務器交給后臺處理后,返回數據,瀏覽器會接收到文件數據,比如,html,js,css,圖像等;然后瀏覽器會對加載到的資源進行語法解析,建立相應的內部數據結構;載入解析到的資源文件,渲染頁面,完成顯示頁面效果。

          不夠清楚明白碼?

          那就再次詳細一下,咳咳,從瀏覽器接收url,開始進行網絡請求線程,發出一個完整的HTTP請求,從服務器端接收請求到對應的后臺接收到請求,然后是后臺和前臺的http交互;其中的緩存問題(http的緩存),瀏覽器接收到http數據包后的解析流程,css的可視化格式模型,js引擎解析過程等;其他呈現頁面效果。

          :這里就需要你對瀏覽器內核的理解:其中主要的渲染引擎和JS引擎,這里了解一下你對瀏覽器內核的理解。

          1. 渲染引擎,是負責取得網頁的內容,整理信息,以及計算網頁的顯示方式,然后輸出到顯示器上。
          2. JS引擎是用于解析和執行javascript來實現網頁的動態效果。

          瀏覽器的內核的不同對于網頁的語法解釋會有不同,所以渲染的效果也不相同。其實最開始渲染引擎和JS引擎是沒有區分明確的,不過后來JS引擎越來越獨立,so,內核就傾向于渲染引擎。

          對于資源請求/獲取,資源響應/頁面渲染,會給網絡帶寬和設備資源帶來壓力,這個時候就會考慮到web的性能優化。

          5.web的性能優化

          其中里面的性能關鍵:

          什么是數據包 數據包(IP數據包),指封裝在固定結構的一系列字節,它定義了數據包的長度,傳輸的細節,以及其他與TCP相關的信息。

          延遲:指IP數據包從一個網絡端點到另一個網絡端點所花費的時間。(所花費時間在于往返時延,是延遲的時間的兩倍)

          帶寬:只要帶寬沒有飽和,兩個網絡端點的連接會一次處理盡可能多的數據量(所以帶寬可能會成為性能的瓶頸)

          建立連接時間:在客戶端和服務器之間建立連接往返數據(三次握手)

          TCP三次握手過程:客戶端向服務器發起一個SYN包,服務器端返回對應的SYN的ACK響應以及新的SYN包,然后客戶端返回對應的ACK。(在客戶端和服務器之間建立正常的TCP網絡連接時,客戶端首先發出一個SYN消息,服務器使用SYN+ACK應答表示接收了這個消息,最后客戶端再以ACK消息響應。)

          SYN是同步序列編號,是TCP/IP建立連接時使用的握手信息。ACK是確認字符,在數據通信中,接收站發給發送站的一種傳輸類控制字符。表示發來的數據已確認接收無誤。在TCP/IP協議中,如果接收方成功的接收到數據,那么會回復一個ACK數據。通過ACK信號有自己固定的格式,長度大小,由接收方回復給發送方。

          詳解三次握手

          第一次握手,建立連接時,客戶端發送SYN包到服務器,并進入SYN_SENT狀態,等待服務器確認,其中SYN就是同步序列編號。

          第二次握手,服務器收到SYN包,必須確認客戶的SYN,同時自己也發送一個SYN包,即是SYN+ACK包,此時服務器進入SYN_RECV狀態。

          第三次握手,客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK,此包發送完畢,客戶端和服務器進入ESTABLISHED(TCP連接成功)狀態,完成三次握手。

          完成三次握手,客戶端與服務器開始傳送數據。

          TLS協商時間(TLS會造成額外的往返傳輸)

          1. 客戶端發起https連接,需要進行傳輸層安全協議協商
          2. TLS用來取代安全套接層SSL

          除了網絡,還有頁面內容本身或服務器性能,如首字節時間TTFB,內容下載時間,開始渲染時間,文檔加載完成的時間等。

          那么什么是TTFB,它是指客戶端從開始定位到web頁面,直接收到主體頁面響應的第一字節所耗費的時間。它是測量:從瀏覽器發起請求至收到其第一字節之間的耗時。

          內容下載時間是等同于被請求資源的最后字節到達時間。

          開始渲染時間,從客戶看到空白頁面的時長。

          5.1web性能優化技術(減少客戶端網絡延遲和優化頁面渲染性能來提升web性能)

          優化技術:

          • DNS查詢優化
          • 客戶端緩存
          • 優化TCP連接
          • 避免重定向
          • 網絡邊緣的緩存
          • 條件緩存
          • 壓縮和代碼極簡化
          • 圖片優化

          6. http1.1

          • 改進持久連接和CDN域名的分片機制
          • 不成熟的http管道化
          • 提供虛擬主機支持
          • 對動態生成的內容完美支持
          • 引入cookie以及安全機制

          對于http1的問題,迎來了http2。其中http1的問題:

          隊頭阻塞,大多數情況下,瀏覽器會希望同時獲取許多資源,但http1未提供機制來同時請求這些資源,如果僅是使用一個連接,需要發起請求,等待響應,然后才能發起下一個請求。

          在http1中要給特性為管道化,可以允許一次發送一組請求,但是需要按照發送順序依次接收響應。所以在請求應答過程中,如發生什么情況,剩下的工作都會被阻塞,這就是“隊頭阻塞”(阻塞在那次請求應答發生錯誤),阻礙網絡傳輸和web頁面的渲染,指導失去響應。

          低效的TCP利用,TCP協議作為最可靠的協議之一,其核心是擁塞窗口。

          擁塞窗口,是衛星通信在因特網中防止通信擁塞的一種措施,它是在發端采用了一種“擁塞避免”算法和“慢速啟動”算法相結合的機制。“擁塞窗口”就是“擁塞避免”的窗口,它是一個裝在發送端的可滑動窗口,窗口的大小是不超過接收端確認通知的窗口。

          擁塞窗口指在接收方確認數據包之前,發送方可以發送的TCP包的數據。(如擁塞窗口指定為1的情況,那么發送方就發出1個數據包之后,只有接收方確認了那個發出的數據包,才能發送下一個)

          擁塞控制能防止過多的數據注入到網絡中,用于避免網絡過載,TCP中可以通過慢啟動探索當前連接對應擁塞窗口的合適大小。即發送者發送數據的時候并非一開始注入大量數據到網絡中,而是發送一個數據包進行測試,當得到確認回復后,額外發送一個未確認包。

          這意味著得到一個確認回復,可以發送兩個數據包,得到兩個確認回復,可以發送四個數據包,以幾何形式增長很快到達協議規定的擁塞窗口大?。òl包數上限),這時候連接進入擁塞避免階段,這種機制需要往返幾次才能得知最佳擁塞窗口大小,但往返幾次所需的時間成本不可忽略。

          • 擁塞窗口的大小取決于網絡的擁塞程度,并且動態地在變化。發送方讓自己的發送窗口等于擁塞窗口。如果再考慮到接收方的接收能力,那么發送窗口還可能小于擁塞窗口。
          • 發送方控制擁塞窗口的原則是:只要網絡沒有出現擁塞,擁塞窗口就再增大一些,以便把更多的分組發送出去。但只要網絡出現擁塞,擁塞窗口就減少一些,以減少注入到網絡中的分組數。

          tcp中的慢啟動概念,是用來探索當前連接對應擁塞窗口的合適大小。用來弄清楚新連接當前的網絡情況?!奥賳印笔窃谶B接建立后,每收到一個來自收端的確認,就控制窗口增加一個段值大小,當窗口值達到“慢速啟動”的限值后,慢速啟動便停止工作,避免了網絡發生擁塞。

          TCP傳輸控制協議的設計思路是,對假設情況很保守情況下,能夠公平對待同一網絡的不同流量的應用,它的避免擁塞機制被設計城即使在最差的網絡情況下也可以起作用。

          臃腫的消息首部,HTTP/1.1能壓縮請求內容,但是消息首部卻不能壓縮。它可能占據請求的絕大部分(也可能是全部)也是比較常見了。(在這里如果能壓縮請求首部,把請求變得更小,就能夠緩解帶寬壓力了,降低系統的總負載)

          受限的優先級設置,即如果瀏覽器針對指定域名開啟多個socket請求,若web頁面某些資源會比另外一些資源重要,會加重資源的排隊效應,會延遲請求其他的資源,優先級高的資源先獲取,優先級低的資源會在資源高的資源處理完成,(在處理過程中,瀏覽器不會發起新的資源請求)等待高的完成后再發起請求,(這就會讓總的頁面下載時間延長)。

          在請求優先級高的資源的時間區間內瀏覽器并不會發起優先級較低的新請求

          小結:HTTP1.1慢啟動影響資源首次加載速度,TCP建立連接后,會開始請求傳輸,開始比較慢,然后不斷加快,為了防止出現網絡擁堵,會讓頁面的首次渲染時間變長。開始多個tcp,如出現網絡下降,無法識別資源的優先級,會出現靜態問題。

          7.如何進行網站性能優化

          1. 內容方面,減少Http請求(合并文件,css精靈,inline Image),減少DNS查詢(DNS緩存,將資源分布到合適的數量的主機名),減少DOM元素的數量。
          2. Cookie方面,可以減少Cookie的大小。
          3. css方面,將樣式表放到頁面頂部;不使用css表達式;使用<link>不使用@import;可將css從外部引入;壓縮css。
          4. JavaScript方面,將腳本放到頁面底部;將JavaScript從外部引入;壓縮JavaScript,刪除不需要的腳本,減少DOM的訪問。
          5. 圖片方面,可優化css精靈,不要在HTML中拉伸圖片,優化圖片(壓縮)。

          8.http狀態碼以及含義

          1. 對于1xx的狀態碼,為信息狀態碼,100 為繼續,表示確認,成功返回具體參數信息。
          2. 對于2xx的狀態碼,200 表示正常返回信息,201表示請求成功并且服務器創建了新的資源,202表示服務器已接受請求,但尚未處理。
          3. 對于3xx,重定向,301表示,請求的網頁已永久移動到新位置,302表示,臨時性重定向,303表示臨時性重定向,且總是使用 GET 請求新的 URI。304表示,自從上次請求后,請求的網頁未修改過。
          4. 對于4xx,客戶端錯誤,404,服務器無法理解請求的格式,客戶端不應當嘗試再次使用相同的內容發起請求,401,請求未授權,403,禁止訪問,404,找不到如何與 URI 相匹配的資源。
          5. 對于5xx,服務器錯誤,500,最常見的服務器端錯誤,503,服務器端暫時無法處理請求,可能是過載或維護。

          9.http-數據壓縮

          數據壓縮,在瀏覽器中發送請求時會帶著Content-Encoding: gzip,里面時瀏覽器支持的壓縮格式列表,有多種如,gzip,deflate,br等。這樣服務器就可以從中選擇一個壓縮算法,放進Content-Encoding響應頭里,再把原數據壓縮后發給瀏覽器。

          10.http-分塊傳輸

          分塊傳輸,就是將傳輸的文件分解成多個小塊,然后分發給瀏覽器,瀏覽器收到后再重新組裝復原。

          每個分開包含兩個部分,分塊長度和分塊數據(長度頭和數據塊),長度頭以CRLF結尾的一行明文,數據塊緊跟在長度頭后面,也是用CRLF結尾,最后用一個長度為0的塊表示結束。

          在響應報文里用頭字段Transfer-Encoding:chunked表示報文里的body部分不是一次性發送過來的,而是分成了許多塊逐個發送的。

          在Transfer-Encoding:chunked和Content-Length中,這兩個字段是互斥的。

          一個響應報文的傳輸長度要么已知,要么長度未知(chunked)。

          Content-Length: 299

          11.http-范圍請求

          斷點續傳

          要實現該功能需要制定下載的實體范圍,這種制定范圍發送請求叫做范圍請求。

          Accept-Ranges:服務器使用http響應頭Accept-Ranges標識自身支持范圍請求,字段的具體值用于定義范圍請求的單位。

          語法



          Accept-Ranges: bytes,范圍請求的單位是 bytes (字節)
          Accept-Ranges: none,不支持任何范圍請求單位

          范圍請求時用于不需要全部數據,只需要其中的部分請求時,可以使用范圍請求,允許客戶端在請求頭里使用專用字段來表示只獲取文件的一部分。

          Range的格式,請求頭Range是HTTP范圍請求的專用字段,格式是“bytes=x-y”,以字節為單位的數據范圍。

          1. “0-”表示從文檔起點開始到文檔結束的整個文件。
          2. “100-”表示從第100個字節開始到文檔末尾。
          3. “-10”表示從文檔末尾倒數的第10個字節開始。

          示例:

          執行范圍時會使用頭部字段 Range 來指定資源 byte 的范圍。
          Range格式:
          5001-10000字節
          Range : byte = 5001-10000
          5000之后的
          Range : byte = 5001-
          0-3000字節,5001-10000字節
          Range : byte=-3000,5001-10000
          

          上圖表示服務器收到Range字段后,檢測范圍合法性,范圍越界,就會返回狀態碼416,如你的文件只有1000個字節,但請求范圍在20000-3000,就會導致這個狀態碼的出現。

          如果成功讀取文件,范圍正確,返回狀態碼“206”。服務器要添加一個響應頭字段Content-Range,告訴片段的實際偏移量和資源的總大小。

          最后是發送數據,直接把片段用TCP發給客戶端,一個范圍請求就算是處理完了。

          格式是“bytes x-y/length”,與Range頭區別在沒有“=”

          Content-Range: bytes 0-4395719/4395720

          12.http-多段數據

          多端數據,就是在Range頭里使用多個“x-y",一次性獲取多個片段數據。使用一種特殊的MIME類型:“multipart/byteranges”,用來表示響應報文包含了多個范圍時使用。多種范圍請求 響應會在頭部 Content-Type 表明 multipart-byteranges。

          多段數據圖:分隔標記boundary來區分不同的分段

          13.說一說cookies,sessionStorage 和 localStorage 的區別?

          • cookie是網站用來標識用戶身份而存儲在用戶本地終端上的數據
          • cookie數據始終在同源的http請求中攜帶,即使是不需要的情況,so,會在瀏覽器和服務器間來回傳遞
          • sessionStorage和localStorage不會自動把數據發送給服務器,僅僅在本地保存

          存儲的大小

          cookie的數據大小不能超過4k;sessionStorage和localStorage雖然也有存儲大小的限制,但比cookie大得多,可以達到5M或者更大。

          有限期時間

          1. localStorage存儲持久數據,瀏覽器關閉后數據不會丟失,除了主動刪除數據
          2. sessionStorage數據在當前瀏覽器窗口關閉后自動刪除
          3. 設置得cookie過期時間之前都有效,就算窗口或者是瀏覽器關閉

          14.為什么說利用多個域名來存儲網站資源會更有效?

          因為CDN緩存更方便;突破瀏覽器并發限制;節約cookie帶寬;節約主域名得連接數,優化頁面響應速度;防止不必要得安全性問題。

          15.http2.0的內容

          http2是超文本傳輸協議的第二版,相比http1協議的文本傳輸格式,http2是以二進制的格式進行數據傳輸的,具有更小的傳輸體積以及負載。

          http2.0分層,分幀層(http2多路復用能力的核心部分),數據或http層(包含傳統上被認為是 HTTP 及其關聯數據的部分)。

          HTTP2.0:

          • 多路復用機制,引入了二進制的分幀層機制來實現多路復用。(分幀層是基于幀的二進制協議。這方便了機器解析。請求和響應交織在一起。)
          • 可以設置請求的優先級(客戶端的分幀層對分割塊標上請求的優先級)。
          • 頭部壓縮 請求頭壓縮,增加傳輸效率。

          HTTP/2較HTTP/1.1優化亮點

          • 多路復用的流
          • 頭部壓縮
          • 資源優先級和依賴設置
          • 服務器推送
          • 流量控制
          • 重置消息

          多路復用的實現:

          在單個域名下仍可以建立一個TCP管道,使用一個TCP長連接,下載整個資源頁面,只需要一次慢啟動,并且避免了靜態,瀏覽器發起請求,分幀層會對每個請求進行分割,將同一個請求的分割塊打上相同的id編號,然后通過協議棧將所有的分割體發送給服務器,然后通過服務器的分幀層根據id編號進行請求組裝,服務器的分幀層將回應數據分割按同一個回應體進行ID分割回應給客戶端,客戶端拼裝回應。

          對于http2中的幀(frame),http1不是基于幀(frame)的,是文本分隔的。

          GET/HTTP/1.1 <crlf>

          這樣,對于http1的請求或者是響應可能有的問題:

          1. 一次只能處理一個請求或者是響應,完成之前是不能停止解析的。
          2. 無法預判解析需要多少內層。

          HTTP/1 的請求和響應報文,是由起始行、首部和正文組成,換行符分隔;HTTP/2是將請求和響應數據分割成更小的幀,采用二進制編碼,易于解析的。

          參考圖片:

          幀結構總結 所有的幀都包含一個9 byte的幀頭 + 可邊長的正文不同。根據幀的類型不同,正文部分的結構也不一樣。

          幀頭:

          16.http2-幕后

          http2作為一個二進制協議,擁有包含輕量型,安全和快速在內的所有優勢,保留了原始的http協議語義,對于http2更改了在系統之間傳輸數據的方式。

          二進制分幀層(binary framing layer),所有通信都在單個TCP連接上執行,該連接在整個對話期間一直處于打開狀態,主要是二進制協議將通信分解為幀的方式,這些幀交織在客戶端與服務器之間的雙向邏輯流中。

          HTTP/2 連接的拓撲結構(展示了一個用于建立多個流的連接)

          在流 1 中,發送了一條請求消息,并返回了相應的響應消息。

          HTTP/2 幀結構

          前9個字節對于每個幀是一致的。解析時只需要讀取這些字節,就可以準確地知道在整個幀中期望的字節數。

          幀首部字段表格:

          名稱長度描述length3字節表示幀負載的長度type1字節當前幀類型Flags1字節具體幀類型的標識R1位保留位,不要設置,否則會帶來嚴重后果Stream Identifier31位每個流的唯一IDFrame Payload長度可變真實的幀內容,長度是在length字段中設置的

          備注:流Id是用來標識幀所屬的流。流看作在連接上的一系列幀,它們構成了單獨的 HTTP 請求和響應。

          對于http1 的請求和響應都分成消息首部和消息體兩部分;http2 從上面一張圖可以知道,http2的請求和響應分成HEADERS 幀和 DATA 幀。

          比較一下:

          http2的一個重要特性是基于流的流量控制。提供了客戶端調整傳輸速度的能力。其中WINDOW_UPDATE 幀用來指示流量控制信息。

          有了多路復用,客戶端可以一次發出多有資源的請求,不用像http1那樣,發出對新對象請求之前,需要等待前一個響應完成。所以瀏覽器失去了在Http1中的默認資源請求優先級策略。

          17.瀏覽器生成http請求消息

          http的頭字段

          頭字段類型含義Date表示請求和響應生成的日期Pragma表示數據是否允許緩存的通信選項Cache-Control控制緩存的相關信息Connection設置發送響應之后TCP連接是否繼續保持的通信選項Transfer-Encoding表示消息主體的編碼格式Via記錄途中經過的代理和網關Authorization身份認證數據From請求發送者的郵件地址Referer當通過點擊超級鏈接進入下一個頁面時,在這里會記錄下上一個頁面的URIUser-Agent客戶端軟件的名稱和版本號等相關信息Accept客戶端可支持的數據類型,以MIME類型來表示Accept-Charset客戶端可支持的字符集Accept-Language客戶端可支持的語言Host接收請求的服務器ip地址和端口號Range當需要只獲取部分數據而不是全部數據時,可通過這個字段指定要獲取的數據范圍Location表示信息的準確位置Server服務器程序的名稱和版本號等相關信息Allow表示指定的URI支持Content-Encoding當消息體經過壓縮等編碼處理時,表示其編碼格式Content-Length表示消息體的長度Content-Type表示消息體的數據類型,以MIME規格定義的數據類型來表示Expires表示消息體的有效期Last-Modified數據的最后更新日期Content-Language表示消息體的語言Content-Location表示消息體在服務器上的位置Content-Range當僅請求部分數據時,表示消息體包含的數據范圍

          HTTP消息示例:

          1. HTTP,超文本傳送協議。
          2. 協議,通信操作的規則定義稱為協議。
          3. URI,統一資源標識符。
          4. 1 條請求消息中只能寫 1 個 URI。如果需要獲取多個文件,必須 對每個文件單獨發送 1 條請求。

          IP 的基本思路

          Ip地址的表示方法

          IP地址的結構-子網掩碼表示網絡號與主機號之間的邊界。

          解析器的調用方法

          DNS服務器的基本工作

          DNS 服務器之間的查詢操作

          數據通過類似管道的結構來流動

          18.了解網絡基礎知識

          • 物理層
          • 數據鏈路層
          • 網絡層
          • 傳輸層
          • 會話層
          • 表示層
          • 應用層

          . 前端需要注意哪些SEO

          • 合理的 title description keywords :搜索對著三項的權重逐個減?, title值強調重點即可,重要關鍵詞出現不要超過2次,?且要靠前,不同?? title 要有所不 同; description 把??內容?度概括,?度合適,不可過分堆砌關鍵詞,不同??description 有所不同; keywords 列舉出重要關鍵詞即可
          • 語義化的 HTML 代碼,符合W3C規范:語義化代碼讓搜索引擎容易理解??
          • 重要內容 HTML 代碼放在最前:搜索引擎抓取 HTML 順序是從上到下,有的搜索引擎對抓 取?度有限制,保證重要內容?定會被抓取
          • 重要內容不要? js 輸出:爬?不會執?js獲取內容
          • 少? iframe :搜索引擎不會抓取 iframe 中的內容
          • ?裝飾性圖?必須加 alt
          • 提??站速度:?站速度是搜索引擎排序的?個重要指標

          2. img的 title 和 alt 有什么區別

          通常當?標滑動到元素上的時候顯示

          alt 是 的特有屬性,是圖?內容的等價描述,?于圖??法加載時顯示、讀屏器 閱讀圖???商釄D??可訪問性,除了純裝飾圖?外都必須設置有意義的值,搜索引擎會 重點分析。

          3. HTTP的?種請求?法?途

          • GET ?法

          發送?個請求來取得服務器上的某?資源

          • POST ?法

          URL 指定的資源提交數據或附加新的數據

          • PUT ?法

          POST ?法很像,也是想服務器提交數據。但是,它們之間有不同。 PUT 指定了資 源在服務器上的位置,? POST 沒有

          • HEAD ?法

          只請求??的?部

          • DELETE ?法

          刪除服務器上的某資源

          • OPTIONS ?法

          它?于獲取當前 URL 所?持的?法。如果請求成功,會有?個 Allow 的頭包含類 似 “GET,POST” 這樣的信息

          • TRACE ?法

          TRACE ?法被?于激發?個遠程的,應?層的請求消息回路

          • CONNECT ?法

          把請求連接轉換到透明的 TCP/IP 通道

          4. 從瀏覽器地址欄輸?url到顯示??的步驟

          基礎版本 瀏覽器根據請求的 URL 交給 DNS 域名解析,找到真實 IP ,向服務器發起請求; 服務器交給后臺處理完成后返回數據,瀏覽器接收?件( HTML、JS、CSS 、圖象等); 瀏覽器對加載到的資源( HTML、JS、CSS 等)進?語法解析,建?相應的內部數據結構 (如 HTML DOM ); 載?解析到的資源?件,渲染??,完成。

          詳細版

          1. 在瀏覽器地址欄輸?URL

          2. 瀏覽器查看緩存,如果請求資源在緩存中并且新鮮,跳轉到轉碼步驟

          • 如果資源未緩存,發起新請求
          • 如果已緩存,檢驗是否?夠新鮮,?夠新鮮直接提供給客戶端,否則與服務器進?驗 證。
          • 檢驗新鮮通常有兩個HTTP頭進?控制 Expires Cache-Control : HTTP1.0提供Expires,值為?個絕對時間表示緩存新鮮?期 HTTP1.1增加了Cache-Control: max-age=,值為以秒為單位的最?新鮮時間

          3. 瀏覽器解析URL獲取協議,主機,端?,path

          4. 瀏覽器組裝?個HTTP(GET)請求報?

          5. 瀏覽器獲取主機ip地址,過程如下:

          • 瀏覽器緩存
          • 本機緩存
          • hosts?件
          • 路由器緩存
          • ISP DNS緩存
          • DNS遞歸查詢(可能存在負載均衡導致每次IP不?樣)

          6. 打開?個socket與?標IP地址,端?建?TCP鏈接,三次握?如下:

          • 客戶端發送?個TCP的SYN=1,Seq=X的包到服務器端?
          • 服務器發回SYN=1, ACK=X+1, Seq=Y的響應包
          • 客戶端發送ACK=Y+1, Seq=Z

          7. TCP鏈接建?后發送HTTP請求

          8. 服務器接受請求并解析,將請求轉發到服務程序,如虛擬主機使?HTTP Host頭部判斷請 求的服務程序

          9. 服務器檢查HTTP請求頭是否包含緩存驗證信息如果驗證緩存新鮮,返回304等對應狀態碼 10. 處理程序讀取完整請求并準備HTTP響應,可能需要查詢數據庫等操作

          11. 服務器將響應報?通過TCP連接發送回瀏覽器

          12. 瀏覽器接收HTTP響應,然后根據情況選擇關閉TCP連接或者保留重?,關閉TCP連接的四 次握?如下: 1. 主動?發送Fin=1, Ack=Z, Seq= X報? 2. 被動?發送ACK=X+1, Seq=Z報? 3. 被動?發送Fin=1, ACK=X, Seq=Y報? 4. 主動?發送ACK=Y, Seq=X報?

          13. 瀏覽器檢查響應狀態嗎:是否為1XX,3XX, 4XX, 5XX,這些情況處理與2XX不同

          14. 如果資源可緩存,進?緩存

          15. 對響應進?解碼(例如gzip壓縮)

          16. 根據資源類型決定如何處理(假設資源為HTML?檔)

          17. 解析HTML?檔,構件DOM樹,下載資源,構造CSSOM樹,執?js腳本,這些操作沒有嚴 格的先后順序,以下分別解釋

          18. 構建DOM樹: 1. Tokenizing:根據HTML規范將字符流解析為標記 2. Lexing:詞法分析將標記轉換為對象并定義屬性和規則 3. DOM construction:根據HTML標記關系將對象組成DOM樹

          19. 解析過程中遇到圖?、樣式表、js?件,啟動下載

          20. 構建CSSOM樹:

          5 如何進??站性能優化

          content ??

          • 減少 HTTP 請求:合并?件、 CSS 精靈、 inline Image
          • 減少 DNS 查詢: DNS 緩存、將資源分布到恰當數量的主機名
          • 減少 DOM 元素數量

          Server ??

          • 使? CDN
          • 配置 ETag
          • 對組件使? Gzip 壓縮

          Cookie ??

          • 減? cookie ??

          css ??

          • 將樣式表放到??頂部
          • 不使? CSS 表達式
          • 使?link 不使? @import

          Javascript ??

          • 將腳本放到??底部
          • javascript css 從外部引?
          • 壓縮 javascript css
          • 刪除不需要的腳本
          • 減少 DOM 訪問

          圖???

          • 優化圖?:根據實際顏?需要選擇?深、壓縮
          • 優化 css 精靈
          • 不要在 HTML 中拉伸圖?


          每天來個5題就行,關注我,每天一起學一點點。


          主站蜘蛛池模板: 国产爆乳无码一区二区麻豆 | 国产一区二区在线| 久久精品国产一区二区三区| 国产成人高清亚洲一区91| 日本韩国一区二区三区| 免费看无码自慰一区二区| 男人的天堂精品国产一区| 天天看高清无码一区二区三区| 亚洲免费一区二区| 日韩精品一区二区三区色欲AV | 99国产精品欧美一区二区三区| 日韩免费无码一区二区视频| 一级特黄性色生活片一区二区| 本免费AV无码专区一区| 日韩精品一区二区三区色欲AV| 久久精品日韩一区国产二区| 日本精品一区二区三区在线视频一 | 一区二区三区www| 波多野结衣免费一区视频| 精品一区精品二区制服 | 亚洲国产高清在线一区二区三区| 国产在线精品一区二区夜色 | 一区二区三区四区视频在线| 国产精品美女一区二区视频| 中文字幕无码不卡一区二区三区| 精品3d动漫视频一区在线观看| 亚洲老妈激情一区二区三区| 亚洲AV一区二区三区四区 | 亚洲A∨无码一区二区三区| 日本精品啪啪一区二区三区| 又硬又粗又大一区二区三区视频 | 福利一区国产原创多挂探花| 91秒拍国产福利一区| 毛片无码一区二区三区a片视频| 亚洲日本一区二区一本一道| 国产精品视频分类一区| 香蕉在线精品一区二区| 亚洲AV无码一区二区三区性色| 国模吧无码一区二区三区| 成人丝袜激情一区二区| 一区二区视频在线播放|