精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

動畫:一個瀏覽器是如何工作的?

開發 前端 通信技術
學習瀏覽器工作原理是為了能夠運用到實際項目中,比如前端的性能優化以及錯誤排查,都會涉及到瀏覽器相關的知識,所以掌握瀏覽器的工作原理是必不可缺的。

對于面試的大部分前端開發者來說,對瀏覽器的了解也算是一知半解,因為我們一開始前端覺得,我們開發中通常使用瀏覽器來顯示和調試頁面用的,不會涉入到太過的相關瀏覽器工作原理知識。

這你就大錯特錯了,雖然瀏覽器默默的為我們工作,但是有關瀏覽器的工作原理不但在你就業前端面試中屬于重中之重,也是在前端優化中占有很大比重。作為一個前端開發如果不了解瀏覽器的工作原理,只能永遠停留在前端“切圖仔”水平。

PS:前幾天還有個讀者和小鹿說,之前看到小鹿朋友圈發過這個這個導圖,當時沒當回事,第二天面試竟然問到了。

學習瀏覽器工作原理是為了能夠運用到實際項目中,比如前端的性能優化以及錯誤排查,都會涉及到瀏覽器相關的知識,所以掌握瀏覽器的工作原理是必不可缺的,相信你學完之后,能夠對你的個人能力和見識會有很大的提升。

瀏覽器涉及到的知識點非常多而且非常重要,文章中可能其中有不足和錯誤的地方,也歡迎各位指出!

思維導圖

瀏覽器的底層是如何完成一次網絡請求的?

一、瀏覽器的職責

我們由淺入深的去了解瀏覽器的工作原理。首先學習一個事物要知道它是什么,它要完成一個什么樣的事情,也就是擁有什么樣的職責。

對于瀏覽器來說,表面上看來,我們輸入了 URL,然后等待幾秒瀏覽器就展現出我們想要訪問的網址內容了。對沒錯,這就是瀏覽器的職責所在。這只是停留在了表面,要想深入知道瀏覽器在這個階段發生了什么?需要我們進一步探索瀏覽器的工作原理。

所以說,無論是面試還是實際工作中,瀏覽器無時不刻和我們打交道。那我們就要從在瀏覽器輸入 URL 開始說起,直到瀏覽器最后展現出網站內容,這個過程瀏覽器做了哪些工作,又是如何工作的呢?

我們會詳細分為以下幾大模塊進行系統的講解:

  • DNS 解析
  • TCP 連接
  • HTTP 請求
  • 構建 DOM 樹
  • 構建 CSSOM 樹
  • 生成渲染樹
  • 合成、繪制

瀏覽器的底層是如何完成一次網絡請求的?

其中有些部分我們之前的文章已經分享過,所以也不過到陳述,到時候會鞏固一下,重點我們放在瀏覽器的渲染原理上,這也是我們以后在學習前端優化中的重點。

二、DNS 解析

在之前的文章 TCP 三次握手中提到,要想得到接收方的 MAC 地址,需要通過對方的 IP 地址獲取,對方的 IP 需要通過 DNS 解析。

1. 為什么進行 DNS 解析?

所謂的 DNS 解析就是將我們輸入在網頁地址欄的 URL 通過 DNS 解析成 IP 地址。DNS 就是將域名轉化成 ip 地址的過程。那么這個過程會發生什么呢?和小鹿一起深入探究一下。

瀏覽器的底層是如何完成一次網絡請求的?

2. 系統緩存查詢

首先瀏覽器會調用一個庫函數,檢測本地的 hosts 文件(可以認為是電腦本地的一個地址映射文件),從該文件中查看是否有對應的該域名的 IP 地址,這個過程是在系統緩存中查找是否存在該域名對應的 IP 地址。

比如在瀏覽器的地址欄中輸入小鹿的博客網址(www.xiaolu.com),然后回車,此時瀏覽器拿著這個域名去本地電腦的一個名為 hosts 文件中查詢是否存在該域名所對應的 IP 地址,如果有,就返回給瀏覽器,如果沒有,我們繼續往下進行。

3. 路由器緩存、ISP 緩存

如果系統緩存沒有,就會向 DNS 服務器發送請求,而網絡服務一般都會先經過路由器以及網絡服務商(電信),所以會先查詢路由器緩存,然后再查詢 ISP 的 DNS 緩存。

PS:ISP緩存,本身是一種寬帶接入提供商給網頁批量訪問加速的技術。ISP會將當前訪問量較大的網頁內容放到ISP服務器的緩存中,當有新的用戶請求相同內容時,可以直接從緩存中發送相關信息,不必每次都去訪問真正的網站,從而加快了不同用戶對相同內容的訪問速度,同時也能節省網間流量結算成本。

4. DNS 遞歸查詢

如果路由器緩存和 ISP 的 DNS 緩存還是沒有的話,我們就進行 DNS 遞歸查詢。從根域名服務器開始查詢,然后再到頂級域名服務器,最后到主域名服務器依次查詢。

但是這里有兩種查詢方式,不僅僅有遞歸查詢一種方式,還有一個查詢方式是迭代查詢,兩種查詢方式的區別是什么呢?

迭代查詢:DNS 收到請求時,而不是直接返回查詢結果,而是告訴客戶端另一臺 DNS 服務器地址。然后客戶端再向這臺的 DNS 服務器提交請求,依次循環。

瀏覽器的底層是如何完成一次網絡請求的?

遞歸查詢:當 DNS 服務器收到請求時,就會檢查 DNS 緩存,如果沒有就會詢問其他服務器,并將返回的查詢結果返回客戶端。

我們前端會在性能優化的使用用到 DNS 的相關知識,我們在這稍微提一下,如何進行 DNS 優化呢?

DNS 查詢經歷很多步驟,查詢很慢。瀏覽器獲取到 IP 地址后,一般都會加到瀏覽器的緩存中,本地的 DNS 緩存服務器,也可以去記錄。

另外使用 DNS 負載均衡,通常我們的網站應用各種云服務,DNS 系統根據每臺機器的負載量,地理位置的限制等等,去提供高效快速的 DNS 解析服務。

三、TCP 連接

我們通過 DNS 查詢到 IP 地址之后,我們就開始打算與服務器建立連接,為接下來的數據傳輸做準備,這部分在之前的文章中寫的非常詳細,一定要去看哦。

動畫:用動畫給面試官解釋 TCP 三次握手過程

四、HTTP 請求

我們客戶端與服務端通過 TCP 的三次握手建立連接之后,客戶端開始向服務器主動發起請求。

PS:對于 HTTP 協議,我們會在后邊單獨拿出一篇文章來詳細介紹它的發展史,這里我們只涉及到 HTTP 的請求相關的內容。

服務端接收到客戶端發送的信息,就返回響應信息和文件。客戶端如何判斷服務端是否成功返回了呢?就需要下列的一些狀態碼來識別,同樣前端做的工作也是通過狀態碼來判斷當前響應狀態。

(1) 1XX(信息性狀態碼) : 服務器正在處理請求中。

(2) 2XX (成功狀態碼): 請求處理完畢。

(3) 3XX (重定向狀態碼): 需要附加操作以完成請求。

  • 301:永久性重定向。該狀態碼表示請求的資源已被分配了新的 URI,以后使用該資源,使用現在所指 URI。
  • 302:臨時性重定向。表示該狀態碼被分配了新的 URI,希望用戶本次能夠使用新的 URI 訪問。
  • 304:服務器資源未改變,可直接使用客戶端未過期的緩存。

(4) 4XX (客戶端錯誤狀態碼): 服務器無法處理請求。

  • 400:該請求報文中有語法錯誤。
  • 403:沒有資源的訪問權限。
  • 404:找不到資源。

(5) 5XX (服務端錯誤狀態碼): 服務器處理請求出錯。

  • 500:服務器發生錯誤
  • 503:服務器超荷載或正在維護。

遠程服務器找到資源并使用 HTTP 響應返回該資源,值為 200 的 HTTP 響應狀態表示一個正確的響應。

五、瀏覽器的渲染原理

1. 構建 DOM

服務器將 HTML、CSS、JS文件轉化為 0,1字節數據在網絡中傳輸給瀏覽器,瀏覽器通過判斷狀態碼開始接收、解析文件,這開始運用到瀏覽器的渲染原理。

首先瀏覽器要做的就是獲取 HTTP 的 Request 的 body 中字符串(字符流)的 HTML 文本,進行解析并構建 DOM 樹。

將字符流轉化為字符串之后,瀏覽器開始進行詞法分析,雖然這個名詞我們不熟悉,但是我們要知道,一個 HTML 字符串我們要拆分開才能構建 DOM 樹,詞法分析就是將字符串拆分成的過程。將字符串轉化為的 token(標記) —— token 作為代碼的最小單位,也就是拆分后的結果,這個過程我們稱為標記化。

瀏覽器的底層是如何完成一次網絡請求的?

我們將字符串拆解之后,然后將這些標記轉化為 Node 結點,瀏覽器根據不同的結點開始構建一棵 DOM 樹。這就是整個 DOM 樹構建的過程,其中還涉及到很多的細節,比如詞法分析是如何一個過程(狀態機),有興趣的小伙伴可以詳細查看英文文檔,在文章底部。

瀏覽器的底層是如何完成一次網絡請求的?

2. 構建 CSSOM 樹

瀏覽器已經把 HTML 文件轉化為了 DOM 樹,下面就對 CSS 樣式文件進行解析,構建成 CSSOM 樹。這個過程和上述構建 DOM 樹的過程有點相似,但是其中 CSSOM 樹的構建更加的耗時。下面我們來看看如何耗時的?

瀏覽器通過遞歸的方式 DOM 樹為結點設置樣式。通過先找到具體的標簽,然后遞歸找到設置的上級標簽,最后確定選擇器選擇的所選標簽的樣式。

比如下邊的例子,瀏覽器是如何確定結點的樣式的呢?

  1.  <div> 
  2.  <span> 
  3.  <p>小鹿動畫學編程,一天一篇動畫喂飽你!</p> 
  4.  </span> 
  5.  <p>你好,小鹿!</p> 
  6.  </div> 
  7.  
  8.  
  9.  div span p{ 
  10. color: red; 
  11. font-size: 12px; 
  12. div { 
  13. background:red;  

 

 

首先在 HTML 中找到 p 標簽,一共有兩個地方,然后按照樣式的繼續遞歸中找具有父節點的 p,我們只好把第二個 p 過濾掉,然后繼續向上找父節點 div,匹配成功,然后將樣式設置到結點上。

瀏覽器的底層是如何完成一次網絡請求的?

我們通過上邊的動畫,可以知道為什么構建 CSSOM 樹的時候非常耗時了,我們在寫代碼的時候可以做出優化,所以應該避免書寫過于具體的 CSS 選擇器,少一些添加無意義的 HTML 標簽,有利于提高習頁面的性能。

3. 構建渲染樹

我們分別將上邊生成的 DOM 和 CSSOM 樹進行合并,生成我們的渲染樹。但是在合并的時候,并不是兩者簡單的進行結合,因為有些結點我們并不需要顯示,還記得有一個 display:none 屬性嗎?如果某結點的樣式有這個屬性,就不會出現在渲染樹中。

4. 合成、繪制

瀏覽器在生成渲染樹的時候,就會根據渲染樹進行布局,調用 GPU 進行繪制,然后合成圖層,最后顯示在屏幕上。

瀏覽器的底層是如何完成一次網絡請求的?

 

責任編輯:趙寧寧 來源: 小鹿動畫學編程
相關推薦

2017-12-14 15:45:02

2012-09-03 10:24:16

果粉瀏覽器

2019-03-05 10:48:24

Web瀏覽器前端

2009-05-27 08:54:15

瀏覽器平臺Chrome

2012-04-25 14:06:45

HTML5

2013-07-25 14:17:17

2013-11-20 13:47:43

瀏覽器渲染引擎

2021-06-02 06:14:50

Nyxt瀏覽器

2022-06-20 09:01:56

Plasmo開源

2011-04-14 15:55:35

WPF.NET

2020-07-06 08:23:11

開源瀏覽器操作系統

2014-08-18 14:58:25

微軟IE

2017-07-20 16:28:26

Android AgentWebWebView

2022-06-13 06:33:04

瀏覽器瀏覽器插件

2021-06-29 10:21:10

Mozilla Firefox 瀏覽器 web安全

2020-10-12 08:32:34

瀏覽器進程線程

2022-06-28 22:17:52

瀏覽器底層css

2021-08-06 16:52:10

瀏覽器HTTPS通信

2019-12-27 10:24:43

瀏覽器底層DNS

2009-03-23 08:52:51

點贊
收藏

51CTO技術棧公眾號

91香蕉视频网| 男女爽爽爽视频| 五月天福利视频| 销魂美女一区二区三区视频在线| 亚洲网站视频福利| 亚洲热在线视频| 成av人片在线观看www| 久久久久久久综合色一本| 国产精品永久免费| 久久久精品一区二区涩爱| 亚洲人成网亚洲欧洲无码| 欧美日韩亚洲综合在线| 国产精品一线二线三线| 国产亚洲依依| 国产精品99久久久久| 69视频在线免费观看| 999福利视频| 林ゆな中文字幕一区二区| 欧美亚男人的天堂| 国产二区视频在线| 毛片av在线| 久久综合狠狠综合久久激情| 成人在线小视频| 特级西西444www大精品视频免费看| 999国产精品永久免费视频app| 精品久久99ma| 五月婷婷之婷婷| 91av亚洲| 亚洲国产精品一区二区久久恐怖片 | 欧美视频在线观看一区二区| 欧美一级爱爱视频| 91成人高清| 91免费国产在线| www.成人av| 国产精品免费无遮挡| 午夜在线a亚洲v天堂网2018| 欧美寡妇偷汉性猛交| 免费看一级黄色| 欧美另类69xxxxx| 亚洲精品资源在线| 国产精品久久AV无码| 久久免费福利| 欧美日本韩国一区二区三区视频 | 国产黄a三级三级| 国产不卡av一区二区| 亚洲精品98久久久久久中文字幕| 亚洲高清av一区二区三区| 欧美日韩尤物久久| 一本一本大道香蕉久在线精品| 日本久久久网站| 黄色av电影在线观看| 国产精品久线在线观看| 日韩美女一区| 国产一二三区在线视频| 久久精品亚洲国产奇米99| 久久精品aaaaaa毛片| 日本韩国免费观看| 成人天堂资源www在线| 官网99热精品| 国产91免费在线观看| 岛国av在线一区| av在线不卡观看| 亚洲欧美激情另类| 粉嫩在线一区二区三区视频| 成人动漫在线观看视频| 精品国产av鲁一鲁一区| 国产成人av影院| 成人一区二区三区四区| 二区三区在线视频| 国产v综合v亚洲欧| 国产伦精品一区二区三区| 欧洲精品久久一区二区| 99精品久久99久久久久| 免费看成人午夜电影| 国产香蕉在线| 中文字幕欧美国产| 异国色恋浪漫潭| 色婷婷在线播放| 黄色一区二区三区| 能在线观看的av网站| 精品免费av在线| 欧美高清视频不卡网| 特黄特黄一级片| 高清精品xnxxcom| 日韩电影免费观看在线观看| 全黄一级裸体片| 日韩精品四区| 久99九色视频在线观看| 日本天堂网在线观看| 性色av一区二区怡红| 国产精品永久免费在线| www.亚洲天堂.com| 2021国产精品久久精品| 亚洲高清视频在线观看| fc2ppv国产精品久久| 香蕉影视欧美成人| av丝袜天堂网| 天堂精品在线视频| 亚洲免费电影在线观看| 黄色香蕉视频在线观看| 亚洲精品123区| 国产精品亚洲аv天堂网| 午夜美女福利视频| 欧美国产激情二区三区| 日韩黄色片在线| 日韩精品一区二区三区| 日韩一级片在线观看| aa片在线观看视频在线播放| 日韩精品91| 97免费视频在线播放| 怡红院男人天堂| 丁香婷婷深情五月亚洲| 色一情一乱一伦一区二区三欧美 | 国产午夜精品久久久久久久| 日本精品福利视频| 美女福利一区二区三区| 欧美大片顶级少妇| 大胸美女被爆操| 日韩一级大片| 91中文字幕在线| 二人午夜免费观看在线视频| 亚洲国产日日夜夜| 激情文学亚洲色图| 国产真实有声精品录音| 久久久久久久国产精品| 国产精品欧美亚洲| 国产欧美va欧美不卡在线| 欧美一级欧美一级| 精品国产乱码一区二区三区| 亚洲欧美视频在线| 国产 日韩 欧美 成人| 国产真实乱偷精品视频免| 欧美日韩国产综合视频在线| av手机免费在线观看| 91.com在线观看| 99国产精品无码| 视频一区中文字幕| 久热这里只精品99re8久| 福利成人导航| 欧美成人综合网站| 波多野结衣亚洲色图| 国内精品伊人久久久久影院对白| 亚洲欧洲另类精品久久综合| 亚洲精品.com| 亚洲色图国产精品| 亚洲欧美自拍视频| 91在线观看视频| 免费看又黄又无码的网站| 哺乳挤奶一区二区三区免费看| 美日韩丰满少妇在线观看| 亚洲自拍第二页| 国产精品久久久久永久免费观看| 欧洲熟妇精品视频| 国产欧美高清视频在线| 日韩美女激情视频| 国模精品一区二区| 91国偷自产一区二区使用方法| 9.1成人看片免费版| 亚洲一区二区免费看| 久久精品二区| 婷婷午夜社区一区| 亚洲一区二区福利| 中文字幕免费观看视频| 国产精品美女久久久久aⅴ| 激情五月俺来也| 国产精品7m凸凹视频分类| 92看片淫黄大片看国产片| 性欧美ⅴideo另类hd| 精品国产乱子伦一区| 日韩精品一区二区不卡| 99久久国产免费看| 国产熟女高潮视频| 成人精品影视| 91国产丝袜在线放| 国产夫妻在线播放| 亚洲另类xxxx| 在线免费观看视频网站| 亚洲人被黑人高潮完整版| 久久国产免费视频| 国产精品久久777777毛茸茸| 三区精品视频| 欧美日韩午夜电影网| 久久久久久久久久久人体| 免费福利在线观看| 911精品国产一区二区在线| 国产污视频在线观看| 久久嫩草精品久久久久| 中文字幕1234区| 亚洲精品综合| 亚洲高清视频一区| 国产精品色呦| 国产精品久在线观看| av在线导航| 日韩成人在线观看| 国产精品欧美久久久久天天影视| 午夜精品久久久久久久蜜桃app| a天堂中文字幕| 国产成人午夜电影网| 高清在线观看免费| 99久久婷婷| 精品久久中出| 一区在线不卡| 91高潮精品免费porn| 国产一二区在线观看| 日韩成人黄色av| 99热这里只有精品1| 色狠狠综合天天综合综合| 男人操女人的视频网站| 久久亚洲免费视频| 极品人妻一区二区| 蜜桃在线一区二区三区| 欧美激情视频免费看| 小说区亚洲自拍另类图片专区| 久久www免费人成精品| 国产精品一区二区精品| 国产精品久久久久9999| 久久青青色综合| 日韩在线免费视频观看| 青青青草原在线| 日韩午夜中文字幕| 中文字幕理论片| 国产欧美亚洲视频| 杨幂一区二区三区免费看视频| 原创国产精品91| 国产 日韩 欧美 综合| 欧美日韩激情一区二区三区| 国产午夜性春猛交ⅹxxx| 亚洲激情在线播放| 国产美女网站视频| 国产日韩综合av| 国产精品探花一区二区在线观看| 国产乱子伦视频一区二区三区 | 日本在线不卡一区二区| 蜜桃久久久久久| www.亚洲天堂网| 国产亚洲在线| 欧美不卡在线播放| 亚洲精品1234| www.好吊操| 欧美日韩国产高清| 国产高清不卡无码视频| 911精品美国片911久久久| 亚洲精品一区二区三区四区五区 | 亚洲一区站长工具| 亚洲91av视频| 97超碰免费在线| 久久久久久久久久久免费精品| a在线免费观看| 不卡av电影在线观看| 久操视频在线观看| 欧美精品情趣视频| 五月天激情在线| 欧美噜噜久久久xxx| 在线观看免费视频你懂的| 欧美精品少妇videofree| 日韩少妇视频| 久久久免费精品| 91高清视频在线观看| 国模极品一区二区三区| 成年人黄色大片在线| 57pao成人国产永久免费| 日本а中文在线天堂| 欧美一级片免费在线| 三上悠亚激情av一区二区三区 | 国产视频一区二区在线播放| 国产欧美中文字幕| 精品国产亚洲日本| aa日韩免费精品视频一| 国产66精品| 裸体丰满少妇做受久久99精品| 免费成人av| 中文字幕欧美人与畜| 欧美三级小说| 国产精品无码一区二区在线| 喷白浆一区二区| 超碰91在线播放| 99久久久免费精品国产一区二区| 日本黄色网址大全| 国产精品高潮呻吟| 精品少妇爆乳无码av无码专区| 岛国视频午夜一区免费在线观看| 亚洲综合图片网| 欧美日韩国产精品成人| 国产高清免费av| 亚洲老头同性xxxxx| 黄网页在线观看| 午夜精品三级视频福利| 朝桐光一区二区| 亚洲aaaaaa| 欧美理伦片在线播放| 亚洲一区二区三区精品视频| 欧美日韩国产欧| 欧美伦理视频在线观看| 国产老妇另类xxxxx| 99久久人妻精品免费二区| 国产精品久久久久一区二区三区| 日本免费一二三区| 欧洲精品一区二区三区在线观看| 精品国产18久久久久久| 亚洲片国产一区一级在线观看| 国产在线一区二区视频| 日本高清久久天堂| 亚洲一区二区三区四区电影 | 欧美美女性视频| 91视频xxxx| 91在线播放观看| 欧美在线免费观看亚洲| 亚洲黄色小说网址| 日韩一区二区三区在线播放| 免费看男女www网站入口在线 | 婷婷五月综合缴情在线视频| 蜜桃免费网站一区二区三区| 性色av蜜臀av色欲av| 亚洲欧美另类小说| 亚洲 小说区 图片区| 亚洲精品久久久久久久久久久| av官网在线播放| 国产精品日韩在线| 欧美日韩爱爱| 黄色免费福利视频| 国产69精品久久777的优势| 老司机福利在线观看| 一本大道综合伊人精品热热| 欧美一级淫片免费视频魅影视频| 久久色免费在线视频| 成人黄色免费网站| 女女同性女同一区二区三区91| 亚洲国产三级| 久草福利在线观看| 亚洲人精品午夜| 中文字幕一区二区三区四区视频 | 欧美日韩亚洲一区| 欧美日韩亚洲自拍| 国产日韩欧美在线一区| 中日韩黄色大片| 亚洲国产精品一区二区三区| 污污网站在线看| 亚洲va久久久噜噜噜| 99久久久久国产精品| 999精彩视频| 中文子幕无线码一区tr| aaa在线视频| 亚洲女同精品视频| 婷婷激情一区| 欧美一进一出视频| 麻豆成人在线| 久久午夜福利电影| 欧洲激情一区二区| 国产午夜精品一区理论片| 国产精品国产自产拍高清av水多 | 在线国产99| 精品一区二区三区香蕉蜜桃| 亚洲欧美精品久久| 91精品久久久久久久99蜜桃| 国产精品实拍| 91久久精品www人人做人人爽| 欧美 日韩 国产 一区| 免费在线观看日韩av| 香蕉影视欧美成人| 久久天堂电影| 国产精品一区二区3区| 日韩免费久久| 中文国产在线观看| 亚洲国产欧美日韩另类综合| 男人天堂综合网| 欧美亚洲一级片| 波多野结衣在线播放一区| 久久国产激情视频| 一区二区三区日韩欧美精品 | 国产成人精选| 老汉色影院首页| 岛国av在线一区| 五月婷婷激情视频| 久久精品国产久精国产思思| 日韩一区二区三区精品| 1024av视频| 国产精品高清亚洲| 好吊视频一区二区三区| 欧美在线播放视频| 999精品在线| 成人区人妻精品一区二| 色噜噜狠狠色综合中国 | 久久久久久久久久久久久久久久久久av | 一二三区精品视频| 四虎电影院在线观看| 国产日韩欧美夫妻视频在线观看| 欧美日韩国产高清| 亚洲综合色一区| 91精品婷婷国产综合久久 | 国产精品高清网站| 欧美激情第8页| 亚洲天堂网一区二区| 欧美美女一区二区| 美女扒开腿让男人桶爽久久软| 视频一区二区三区在线观看| 国产一区二区在线电影| 久久久久久久久久影院| 精品久久久999| 色综合久久中文| 中文字幕第22页|