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

WebView 緩存原理分析和應用

移動開發 Android
WebView主要包括兩類緩存,一類是瀏覽器自帶的網頁數據緩存,這是所有的瀏覽器都支持的、由HTTP協議定義的緩存;另一類是H5緩存,這是由web頁面的開發者設置的,H5緩存主要包括了App Cache、DOM Storage、Local Storage、Web SQL Database 存儲機制等,這里我們主要介紹App Cache來緩存js文件。

[[191419]]

一、背景

現在的App開發,或多或少都會用到Hybrid模式,到了WebView這邊,經常會加載一些js文件(例如和WebView用來Native通信的bridge.js),而這些js文件不會經常發生變化,所以我們希望js在WebView里面加載一次之后,如果js沒有發生變化,下次就不用再發起網絡請求去加載,從而減少流量和資源的占用。那么有什么方式可以達到這個目的呢?先得從WebView的緩存原理入手。

二、WebView的緩存類型

WebView主要包括兩類緩存,一類是瀏覽器自帶的網頁數據緩存,這是所有的瀏覽器都支持的、由HTTP協議定義的緩存;另一類是H5緩存,這是由web頁面的開發者設置的,H5緩存主要包括了App Cache、DOM Storage、Local Storage、Web SQL Database 存儲機制等,這里我們主要介紹App Cache來緩存js文件。

三、瀏覽器自帶的網頁數據緩存

1.工作原理

瀏覽器緩存機制是通過HTTP協議Header里的Cache-Control(或Expires)和Last-Modified(或 Etag)等字段來控制文件緩存的機制。關于這幾個字段的作用和瀏覽器的緩存更新機制,大家可以看看這兩篇文章(H5 緩存機制淺析 移動端 Web 加載性能優化,Android:手把手教你構建 WebView 的緩存機制 & 資源預加載方案),里面有詳細的介紹。下面從我實際應用的角度,介紹一下通常會在HTTP協議中遇到的Header。

這兩個字段是接收響應時,瀏覽器決定文件是否需要被緩存;或者需要加載文件時,瀏覽器決定是否需要發出請求的字段。

  • Cache-Control:max-age=315360000,這表示緩存時長為315360000秒。如果315360000秒內需要再次請求這個文件,那么瀏覽器不會發出請求,直接使用本地的緩存的文件。這是HTTP/1.1標準中的字段。
  • Expires: Thu, 31 Dec 2037 23:55:55 GMT,這表示這個文件的過期時間是2037年12月31日晚上23點55分55秒,在這個時間之前瀏覽器都不會再次發出請求去獲取這個文件。這是HTTP/1.0中的字段,如果客戶端和服務器時間不同步會導致緩存出現問題,因此才有了上面的Cache-Control,當它們同時出現在HTTP Response的Header中時,Cache-Control優先級更高。

下面兩個字段是發起請求時,服務器決定文件是否需要更新的字段。

  • Last-Modified:Wed, 28 Sep 2016 09:24:35 GMT,這表示這個文件***的修改時間是2016年9月28日9點24分35秒。這個字段對于瀏覽器來說,會在下次請求的時候,作為Request Header的If-Modified-Since字段帶上。例如瀏覽器緩存的文件已經超過了Cache-Control(或者Expires),那么需要加載這個文件時,就會發出請求,請求的Header有一個字段為If-Modified-Since:Wed, 28 Sep 2016 09:24:35 GMT,服務器接收到請求后,會把文件的Last-Modified時間和這個時間對比,如果時間沒變,那么瀏覽器將返回304 Not Modified給瀏覽器,且content-length肯定是0個字節。如果時間有變化,那么服務器會返回200 OK,并返回相應的內容給瀏覽器。
  • ETag:”57eb8c5c-129”,這是文件的特征串。功能同上面的Last-Modified是一樣的。只是在瀏覽器下次請求時,ETag是作為Request Header中的If-None-Match:"57eb8c5c-129"字段傳到服務器。服務器和***的文件特征串對比,如果相同那么返回304 Not Modified,不同則返回200 OK。當ETag和Last-Modified同時出現時,任何一個字段只要生效了,就認為文件是沒有更新的。

2.WebView如何設置才能支持上面的協議

由上面的介紹可知,只要是個主流的、合格的瀏覽器,都應該能夠支持HTTP協議層面的這幾個字段。這不是我們開發者可以修改的,也不是我們應該修改的配置。在Android上,我們的WebView也支持這幾個字段。但是我們可以通過代碼去設置WebView的Cache Mode,而使得協議生效或者無效。WebView有下面幾個Cache Mode:

  • LOAD_CACHE_ONLY: 不使用網絡,只讀取本地緩存數據。
  • LOAD_DEFAULT: 根據cache-control決定是否從網絡上取數據。
  • LOAD_CACHE_NORMAL: API level 17中已經廢棄,從API level 11開始作用同LOAD_DEFAULT模式
  • LOAD_NO_CACHE: 不使用緩存,只從網絡獲取數據。
  • LOAD_CACHE_ELSE_NETWORK,只要本地有,無論是否過期,或者no-cache,都使用緩存中的數據。本地沒有緩存時才從網絡上獲取。

設置WebView緩存的Cache Mode示例代碼如下:

  1. WebSettings settings = webView.getSettings(); 
  2. settings.setCacheMode(WebSettings.LOAD_DEFAULT); 

網上很多人都說根據網絡條件去選擇Cache Mode,當有網絡時,設置為LOAD_DEFAULT,當沒有網絡時設置為LOAD_CACHE_ELSE_NETWORK。但是在我的業務中,js文件的更新都是非覆蓋式的更新,也就是時候每次改變js文件的時候,文件的url地址一定會發生變化,所以我希望瀏覽器能夠緩存下來js,并且一直使用它,那么我就給它只設置為LOAD_CACHE_ELSE_NETWORK。當然如果你要是可以改js的cdn服務器的Cache-Control字段,那也行啊,用LOAD_DEFAULT就ok了。至于文件是應該采用覆蓋式or非覆蓋式的更新,不是我今天要討論的內容,在web前端領域,這是一個可以聊聊的topic。

關于iOS的WebView,我同事在實際測試的時候竟然發現,控制文件緩存的Response Header是Expires字段。。而且iOS無法針對整個WebView設置Cache Mode,只能針對每一個URLRequest去設置。。后續有機會要學習一下iOS那塊的情況。

3.在手機里面的存儲路徑

瀏覽器默認緩存下來的文件是怎么被存儲到了哪里呢?這個問題在接觸到WebView以來,就一直是一個謎題。這次由于工作的需要,我特意root了兩臺手機,一臺紅米1(Android 4.4)和一臺小米4c(Android 5.1),在root高系統版本(6.0和7.1)的兩臺Nexus都以失敗告終之后,我決定還是先看看4.4和5.1系統上,WebView自帶的緩存存到了哪里。

首先,不用思考就知道,這些文件一定是在/data/data/包名/目錄下,在我之前的一篇博客里面提到過,這是每一個應用自己的內部存儲目錄。

接著,我們打開終端,使用adb連接手機,然后按照下面命令操作一下。

  1. // 1.先進入shell 
  2. adb shell 
  3. // 2.開啟root賬號  
  4. su 
  5. // 3.修改文件夾權限 
  6. chmod 777 data/data/你的應用包名/ 
  7. // 4.修改子文件夾的權限,因為Android命令行不支持向Linux那樣的-R命令實現遞歸式的chmod。。。 
  8. chmod 777 data/data/你的應用包名/* 
  9. // 5.所以如果你對應用目錄層級更深,你就要進一步地chmod。。。 
  10. chmod 777 data/data/你的應用包名/*/* 
  11. // 6.直到終端里提示你說,no such file or directory時,說明chmod完了,所有的內部存儲里面的文件夾和文件都可以看到了,如果大家有更好的方法請一定告訴我,多謝了~ 
  • Android 4.4的目錄:/data/data/包名/app_webview/cache/,如下圖所示的第二個文件夾。

可能你注意到了,***個文件夾是叫Application Cache,我們后面再說它。

  • Android 5.1的目錄:/data/data/包名/cache/org.chromium.android_webview/下面,如下圖所示。

但是在5.1系統上,/data/data/包名/app_webview/文件夾依然存在,只是4.4系統上面存儲WebView自帶緩存的app_webview/cache文件夾不再存在了(注意下App Cache目錄還在),如下圖所示。

綜上所述,WebView自帶的瀏覽器協議支持的緩存,在不同的系統版本上,位置是不一樣的。也許除了我root過的4.4、5.1以外,其他版本系統的WebView自帶緩存還可能存在于不同的目錄里面。

另外一個是關于緩存文件的存儲格式和索引格式,在不同的手機上可能也有差別,因為之前看到網上的人都說有叫webview.db或者webviewCache.db的文件,這個文件呢,還不是在app_webview/cache或者org.chromium.android_webview下面,而是在/data/data/包名/database/里面。但是,我這兩臺root過的手機都沒有看到這種文件,而且我把/data/data/包名/下面所有的db文件都打開看了,并沒有發現有存儲url記錄的table。。

實際上,以5.1系統為例,我看到了/data/data/包名/cache/org.chromium.android_webview/下面有叫index和/index-dir/the-real-index的文件,以及一堆名稱為md5+下劃線+數字的文件,上面的圖中也可以看得到,這塊的原理仍然有些疑問,也希望專業的大神可以解答一下。

四、H5的緩存

講完了WebView自帶的緩存,下面講一下H5里面的App Cache。這個Cache是由開發Web頁面的開發者控制的,而不是由Native去控制的,但是Native里面的WebView也需要我們做一下設置才能支持H5的這個特性。

1.工作原理

寫Web頁面代碼時,指定manifest屬性即可讓頁面使用App Cache。通常html頁面代碼會這么寫:

  1. <html manifest="xxx.appcache"
  2. </html> 

xxx.appcache文件用的是相對路徑,這時appcache文件的路徑是和頁面一樣的。也可以使用的絕對路徑,但是域名要保持和頁面一致。

完整的xxx.appcache文件一般包括了3個section,基本格式如下:

  1. CACHE MANIFEST 
  2. # 2017-05-13 v1.0.0 
  3. /bridge.js 
  4.  
  5. NETWORK: 
  6.  
  7. FALLBACK: 
  8. /404.html 
  • CACHE MANIFEST下面文件就是要被瀏覽器緩存的文件
  • NETWORK下面的文件就是要被加載的文件
  • FALLBACK下面的文件是目標頁面加載失敗時的顯示的頁面

AppCache工作的原理:當一個設置了manifest文件的html頁面被加載時,CACHE MANIFEST指定的文件就會被緩存到瀏覽器的App Cache目錄下面。當下次加載這個頁面時,會首先應用通過manifest已經緩存過的文件,然后發起一個加載xxx.appcache文件的請求到服務器,如果xxx.appcache文件沒有被修改過,那么服務器會返回304 Not Modified給到瀏覽器,如果xxx.appcache文件被修改過,那么服務器會返回200 OK,并返回新的xxx.appcache文件的內容給瀏覽器,瀏覽器收到之后,再把新的xxx.appcache文件中指定的內容加載過來進行緩存。

可以看到,AppCache緩存需要在每次加載頁面時都發出一個xxx.appcache的請求去檢查manifest文件是不是有更新(byte by byte)。AppCache有一些坑的地方,且官方已經不推薦使用了,但目前主流的瀏覽器依然是支持的。文章里主要提到下面這些坑:

  • 要更新緩存的文件,需要更新包含它的 manifest 文件,那怕只加一個空格。常用的方法,是修改 manifest 文件注釋中的版本號。如:# 2012-02-21 v1.0.0
  • 被緩存的文件,瀏覽器是先使用,再通過檢查 manifest 文件是否有更新來更新緩存文件。這樣緩存文件可能用的不是***的版本。
  • 在更新緩存過程中,如果有一個文件更新失敗,則整個更新會失敗。
  • manifest 和引用它的HTML要在相同 HOST。
  • manifest 文件中的文件列表,如果是相對路徑,則是相對 manifest 文件的相對路徑。
  • manifest 也有可能更新出錯,導致緩存文件更新失敗。
  • 沒有緩存的資源在已經緩存的 HTML 中不能加載,即使有網絡。例如:[url=]http://appcache-demo.s3-website-us-east-1.amazonaws.com/without-network/[/url]
  • manifest 文件本身不能被緩存,且 manifest 文件的更新使用的是瀏覽器緩存機制。所以 manifest 文件的 Cache-Control 緩存時間不能設置太長。

2.WebView如何設置才能支持AppCache

WebView默認是沒有開啟AppCache支持的,需要添加下面這幾行代碼來設置:

  1. WebSettings webSettings = webView.getSettings(); 
  2. webSettings.setAppCacheEnabled(true); 
  3. String cachePath = getApplicationContext().getCacheDir().getPath(); // 把內部私有緩存目錄'/data/data/包名/cache/'作為WebView的AppCache的存儲路徑 
  4. webSettings.setAppCachePath(cachePath); 
  5. webSettings.setAppCacheMaxSize(5 * 1024 * 1024); 

注意:WebSettings的setAppCacheEnabled和setAppCachePath都必須要調用才行。

3.存儲AppCache的路徑

按照Android SDK的API說明,setAppCachePath是可以用來設置AppCache路徑的,但是我實際測試發現,不管你怎么設置這個路徑,設置到應用自己的內部私有目錄還是外部SD卡,都無法生效。AppCache緩存文件最終都會存到/data/data/包名/app_webview/cache/Application Cache這個文件夾下面,在上面的Android 4.4和5.1系統目錄截圖可以看得到,但是如果你不調用setAppCachePath方法,WebView將不會產生這個目錄。這里有點讓我覺得奇怪,我猜測可能從某一個系統版本開始,為了緩存文件的完整性和安全性考慮,SDK實現的時候就吧AppCache緩存目錄設置到了內部私有存儲。

五、總結

相同點

WebView自帶的緩存和AppCache都是可以用來做文件級別的緩存的,基本上比較好地滿足對于非覆蓋式的js、css等文件更新。

不同點

  • WebView自帶的緩存是是協議層實現的(瀏覽器內核標準實現,開發者無法改變);而AppCache是應用層實現的。
  • WebView的緩存目錄在不同系統上可能是不同的;而對于AppCache而言,AppCache的存儲路徑雖然有方法設置,但是最終都存儲到了一個固定的內部私有目錄下。
  • WebView自帶的緩存可以在緩存生效的時候不用再發HTTP請求;而AppCache一定會發出一個manifest文件的請求。
  • WebView自帶的緩存可以通過設置CacheMode來改變WebView的緩存機制;而AppCache的緩存策略是由manifest文件控制的,也就是說是由web頁面開發者控制的。

***說一下,其實很多時候,這兩類緩存是共同在工作的,當manifest文件沒有控制某些資源加載時,例如我上面寫的xxx.appcache文件里,NETWORK section下面用的是*號,意思是所有不緩存的文件都要去網絡加載。此時,這些資源就會走到WebView自帶的緩存機制去,結合WebView的CacheMode,我們實際上對這些文件進行了一次WebView自帶的緩存。搞清楚這兩類緩存的原理有利于我們更好的設計自己的頁面和App,盡可能減少網絡請求,提高App運行效率。

責任編輯:武曉燕 來源: 碼農網
相關推薦

2009-11-06 09:22:46

WCF應用

2025-04-07 01:00:00

CPUTLB緩存

2019-06-18 15:57:25

HTTP緩存機制

2015-10-27 13:37:14

瀏覽器HTTP緩存

2025-02-12 00:29:58

2015-07-02 09:56:48

ReactiveCociOS

2023-04-26 08:32:45

Redis布隆過濾器

2017-03-17 19:59:39

2009-07-31 09:47:57

ASP.NET緩存

2018-11-15 12:12:31

Memcache緩存系統

2019-08-06 19:36:25

RedisMemcached緩存

2016-12-13 22:51:08

androidmultidex

2021-12-15 19:22:38

原理View動畫

2010-09-07 15:51:25

PPPPPPoE

2017-04-11 08:36:09

iOS編譯應用

2023-12-25 19:21:55

ocr人工智能

2025-01-16 14:03:35

Redis

2021-07-16 11:40:58

鴻蒙HarmonyOS應用

2009-09-27 10:37:01

Java應用程序Hibernate

2010-09-08 11:59:38

藍牙協議棧
點贊
收藏

51CTO技術棧公眾號

国产麻豆精品久久| 美女网站在线看| 国产精品白丝av| 98精品在线视频| 日本xxxxxxxxx18| 99久久婷婷国产综合精品首页| 中文字幕一区二| 国产伦一区二区三区色一情| 黄色av一级片| 欧美精品一线| 伊人久久久久久久久久久久久| 欧美视频亚洲图片| 亚洲第一av| 亚洲欧美日韩人成在线播放| 奇米精品在线| 丰满人妻一区二区三区免费视频| 日本91福利区| 97香蕉超级碰碰久久免费的优势| 国产美女网站视频| 日日天天久久| 精品欧美乱码久久久久久1区2区| 91极品尤物在线播放国产| 日本无删减在线| 亚洲国产精品激情在线观看| 国内精品二区| av网站免费播放| 日本成人在线电影网| 国内精品久久久久久影视8| 欧美性生交大片| 免费观看不卡av| 精品成人一区二区三区四区| 一本一道久久a久久综合蜜桃| 一二三四视频在线中文| 亚洲一区二区三区免费视频| 在线国产精品网| 成年网站在线| 91丨九色丨蝌蚪丨老版| 国产91色在线|亚洲| 国产孕妇孕交大片孕| 久久精品盗摄| 欧美在线免费看| 中文字幕日韩一级| 欧美日韩国产欧| 精品国内自产拍在线观看| 国产美女免费无遮挡| 欧美绝顶高潮抽搐喷水合集| 亚洲变态欧美另类捆绑| 性高潮久久久久久| 国产精品免费精品自在线观看| 欧美亚洲综合网| 欧美女同在线观看| 97精品国产综合久久久动漫日韩| 91国模大尺度私拍在线视频| 欧美日韩成人免费视频| free性m.freesex欧美| 亚洲电影在线免费观看| 欧美激情视频免费看| caoporn-草棚在线视频最| 亚洲高清免费视频| 成年人网站国产| 黄频免费在线观看| 欧美日韩国产麻豆| 免费在线观看毛片网站| 午夜不卡影院| 91福利精品视频| 特级丰满少妇一级| 亚洲伦理一区二区| 日韩一区二区中文字幕| 性高潮免费视频| 欧美重口另类| 亚洲一区二区久久| 久草手机视频在线观看| 欧美搞黄网站| 91精品国产精品| www亚洲视频| 三级欧美在线一区| 国产久一一精品| 国内精品久久久久久久久久久| 国产馆精品极品| 久久久久久国产精品一区| 青青色在线视频| 中文字幕中文字幕一区| 久久久久久av无码免费网站下载| gogo高清午夜人体在线| 欧美亚洲国产一卡| 午夜诱惑痒痒网| 欧美理伦片在线播放| 色999日韩欧美国产| 久久久国产成人| 久久国产精品99国产| 国产在线观看一区二区三区| 亚洲av无码乱码国产精品| 91在线视频播放地址| 一区二区不卡在线| a√中文在线观看| 在线观看国产日韩| 成人做爰69片免费| 精品国产1区| 欧美激情视频免费观看| 国产字幕在线观看| 国产成人8x视频一区二区| 免费精品视频一区| 国产福利在线播放麻豆| 日韩欧美国产中文字幕| 色呦色呦色精品| 色婷婷综合久久久久久| 久久久精品欧美| 久久国产视频一区| 国产成人精品网址| 日韩久久久久久久| 91色在线看| 在线观看91av| 日韩一区二区a片免费观看| 欧美日韩国产一区精品一区| 7m第一福利500精品视频| 国产有码在线观看| 国产欧美日韩视频一区二区| 亚洲色成人www永久在线观看| 四虎精品一区二区免费| 亚洲欧洲国产精品| 免费观看一级视频| 国产精品123区| 亚洲午夜精品久久| 亚洲成av在线| 日韩激情视频在线| 男女免费视频网站| 国产一区二区影院| 亚洲一区美女| 成人看片网页| 亚洲情综合五月天| 91久久国产视频| 国产精选一区二区三区| 在线观看欧美激情| 欧美激情三区| 日韩中文字幕在线视频播放| 婷婷激情五月综合| 久久无码av三级| 国产成人精品视频免费看| 高清日韩欧美| 久久久伊人日本| 黄色aaa毛片| 夜夜嗨av一区二区三区中文字幕| 欧美成人乱码一二三四区免费| 欧美天天综合| 国产精品久久久久久网站 | 欧美日本一区二区三区| 久久精品视频18| 久久中文欧美| 日韩中文字幕av在线| 日本精品另类| 日韩中文字幕精品| 91亚洲国产成人久久精品麻豆| 国产精品色一区二区三区| 超碰在线播放91| 久久久人成影片免费观看| 成人激情视频在线观看| av毛片在线| 精品剧情v国产在线观看在线| 久久久久久免费观看| www.成人在线| 红桃av在线播放| 国产99精品| 国产在线观看不卡| 免费在线播放电影| 亚洲国产精品电影| 日本中文字幕在线| 国产女主播一区| 一二三av在线| 亚洲精品护士| 亚洲高清123| 精品国产一区二| 国内揄拍国内精品少妇国语| 蜜桃视频在线观看网站| 欧美日本一道本| 久久久久久久久99| 久久综合九色欧美综合狠狠 | 国产精品66部| 男女超爽视频免费播放| 欧美色爱综合| 99视频网站| 性欧美1819sex性高清| 最近2019免费中文字幕视频三 | 97久久超碰国产精品电影| 激情网站五月天| 亚洲精品极品少妇16p| 激情欧美一区二区三区中文字幕| 日韩欧美另类一区二区| 久久色精品视频| 四虎精品在线| 69p69国产精品| 亚洲免费在线观看av| 国产精品亲子伦对白| 日韩电影中文字幕| 四虎免费在线观看视频| 第四色中文综合网| 国产精品电影网| 欧洲黄色一区| 最近2019好看的中文字幕免费| 囯产精品久久久久久| 欧美少妇性性性| 日韩欧美不卡视频| 中文字幕一区日韩精品欧美| 亚洲国产精品自拍视频| 精彩视频一区二区三区| 国产在线青青草| 欧美精选在线| 一区二区三区我不卡| 亚洲丝袜啪啪| 国产精品一区二区三区免费观看 | 在线中文字幕一区二区| 免看一级a毛片一片成人不卡| 亚洲国产高清在线| 国产 中文 字幕 日韩 在线| 国产美女一区二区| 日本www.色| 亚洲专区欧美专区| 青青青青在线视频| 91精品国产乱码久久久久久久| 蜜桃精品久久久久久久免费影院 | 性欧美xxx69hd高清| 欧美激情久久久久| 91精品久久久久久粉嫩| 日韩在线精品视频| 可以直接在线观看的av| 日韩经典一区二区三区| 亚洲伦理在线观看| 91精品国产欧美一区二区成人| 青青国产在线视频| 欧美日韩在线视频一区| 日韩大片免费在线观看| 亚洲综合色网站| 午夜国产福利一区二区| 自拍偷拍亚洲综合| 2017亚洲天堂| 国产精品久久久久久久蜜臀| 级毛片内射视频| 国产亚洲一本大道中文在线| 免费a级黄色片| 91美女片黄在线观看91美女| 荫蒂被男人添免费视频| 成人一区在线观看| 天天躁日日躁狠狠躁免费麻豆| 国产老肥熟一区二区三区| 天天操夜夜操很很操| 国产九九视频一区二区三区| 特黄特黄一级片| 国产精品影视网| 伊人久久久久久久久| 国产成人av影院| 日本国产在线视频| 成人激情免费电影网址| 国产精品无码专区| 91视频观看免费| 日韩乱码人妻无码中文字幕久久| 26uuu色噜噜精品一区| 三上悠亚影音先锋| 欧美经典一区二区| 青青操在线播放| 亚洲欧美激情视频在线观看一区二区三区| 午夜爱爱毛片xxxx视频免费看| 亚洲欧美成人一区二区三区| 精国产品一区二区三区a片| 亚洲综合一区在线| 久久不卡免费视频| 91成人免费在线| 国产精品一区二区三区在线免费观看 | 欧美日韩黄色一级片| 免费在线亚洲欧美| 2025韩国理伦片在线观看| 韩国成人福利片在线播放| 色欲欲www成人网站| 99精品欧美一区二区三区综合在线| 国产肉体xxxx裸体784大胆| 久久精品人人做人人爽人人| 黄色录像一级片| 亚洲一区av在线| 神马久久久久久久| 欧美放荡的少妇| 人成网站在线观看| 一区二区三区国产在线观看| 成人午夜在线影视| 97视频在线看| 日韩五码电影| 精品国产综合区久久久久久| 不卡一区2区| 久青草视频在线播放| 天堂va蜜桃一区二区三区漫画版| 中文字幕 欧美日韩| 成人性生交大合| 亚洲精品成人av久久| 亚洲一区二区三区在线| 波多野结衣av无码| 欧美白人最猛性xxxxx69交| 男女污视频在线观看| 欧美成人精品激情在线观看| 欧美大片免费观看网址| 91视频在线免费观看| 欧美精品一区二区三区中文字幕| 国产精品日韩三级| 青青青爽久久午夜综合久久午夜| 色综合久久久无码中文字幕波多| 国产日韩欧美不卡| 免费一级片视频| 欧美三级三级三级| 四虎精品成人免费网站| 九色成人免费视频| 99久久婷婷国产综合精品首页| 精品1区2区| 欧美一区网站| 黄色一级片免费的| 久久伊人中文字幕| 国产一卡二卡在线播放| 欧美日韩国产首页在线观看| 先锋av资源站| 欧美激情成人在线视频| 亚洲伊人伊成久久人综合网| 日韩免费av电影| 国产精品入口66mio| 极品白嫩少妇无套内谢| 国产精品的网站| 91porny九色| 亚洲欧美一区二区三区情侣bbw| 久草在线资源站资源站| 亚洲一区中文字幕| 久久网站免费观看| 国产一级做a爰片久久| 久久免费精品国产久精品久久久久| 欧美爱爱小视频| 欧美另类变人与禽xxxxx| 成全电影播放在线观看国语| 欧亚精品在线观看| 任你躁在线精品免费| 人人干视频在线| 不卡一二三区首页| 久久综合加勒比| 精品国产在天天线2019| 美足av综合网| 国产91一区二区三区| 海角社区69精品视频| 色姑娘综合天天| 亚洲乱码精品一二三四区日韩在线| 国产孕妇孕交大片孕| 日韩在线www| 91精品国产色综合久久不卡粉嫩| 在线观看日韩片| 国产精品自拍三区| 久久久精品国产sm调教网站| 精品福利一区二区三区 | 99久久综合| 亚洲精品国产一区二区三区| 成人欧美一区二区三区1314| 国产一区二区在线视频观看| 久久精品视频中文字幕| 成人av在线播放| 国产 欧美 日韩 一区| 风间由美性色一区二区三区| 日本三级2019| 亚洲嫩模很污视频| 992tv国产精品成人影院| 永久久久久久| 国产成人一区二区精品非洲| 豆国产97在线 | 亚洲| 日韩精品视频免费| 成人免费毛片嘿嘿连载视频…| 一区二区三区我不卡| 国产ts人妖一区二区| 国产精品成人aaaa在线| 精品亚洲男同gayvideo网站 | 亚洲一区二区伦理| 亚洲精品成人无码熟妇在线| 欧美亚洲动漫另类| 26uuu亚洲电影在线观看| 国产综合欧美在线看| 日本最新不卡在线| 超碰在线国产97| 亚洲国产成人精品久久| 日本一道高清亚洲日美韩| 久久久国产精华液999999| 国产成人av福利| 国产suv精品一区二区33| 日韩视频精品在线| 卡通动漫国产精品| 中文字幕有码av| 性欧美疯狂xxxxbbbb| av一本在线| 国产精品成人一区二区三区| 日韩国产成人精品| 欧美在线视频第一页| 日韩精品高清在线| 伊人久久大香伊蕉在人线观看热v| 亚洲精品蜜桃久久久久久| 欧美高清在线精品一区| 男人天堂综合网| 国产精品私拍pans大尺度在线 | 在线免费观看视频黄| 亚洲成av人在线观看| 欧美性videos| 欧美精品久久| 粉嫩aⅴ一区二区三区四区| 日本三级一区二区三区|