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

瀏覽器緩存原理總結

系統 瀏覽器
瀏覽器在加載資源時,先根據這個資源的一些http header判斷它是否命中強緩存,強緩存如果命中,瀏覽器直接從自己的緩存中讀取資源,不會發請求到服務器。

一、瀏覽器緩存基本認識

分為強緩存和協商緩存

  1. 瀏覽器在加載資源時,先根據這個資源的一些http header判斷它是否***強緩存,強緩存如果***,瀏覽器直接從自己的緩存中讀取資源,不會發請求到服務器。比如某個css文件,如果瀏覽器在加載它所在的網頁時,這個css文件的緩存配置***了強緩存,瀏覽器就直接從緩存中加載這個css,連請求都不會發送到網頁所在服務器
  2. 當強緩存沒有***的時候,瀏覽器一定會發送一個請求到服務器,通過服務器端依據資源的另外一些http header驗證這個資源是否***協商緩存,如果協商緩存***,服務器會將這個請求返回,但是不會返回這個資源的數據,而是告訴客戶端可以直接從緩存中加載這個資源,于是瀏覽器就又會從自己的緩存中去加載這個資源
  3. 強緩存與協商緩存的共同點是:如果***,都是從客戶端緩存中加載資源,而不是從服務器加載資源數據;區別是:強緩存不發請求到服務器,協商緩存會發請求到服務器
  4. 當協商緩存也沒有***的時候,瀏覽器直接從服務器加載資源數據

二、強緩存的原理

2.1 介紹

當瀏覽器對某個資源的請求***了強緩存時,返回的http狀態為200,在chrome的開發者工具的network里面size會顯示為from cache,比如京東的首頁里就有很多靜態資源配置了強緩存,用chrome打開幾次,再用f12查看network,可以看到有不少請求就是從緩存中加載的 

image.png

強緩存是利用Expires或者Cache-Control這兩個http response header實現的,它們都用來表示資源在客戶端緩存的有效期。

Expires是http1.0提出的一個表示資源過期時間的header,它描述的是一個絕對時間,由服務器返回,用GMT格式的字符串表示,如:Expires:Thu, 31 Dec 2037 23:55:55 GMT

2.2 Expires緩存原理

  • 瀏覽器***次跟服務器請求一個資源,服務器在返回這個資源的同時,在respone的header加上Expires,如 
image.png
  • 瀏覽器在接收到這個資源后,會把這個資源連同所有response header一起緩存下來(所以緩存***的請求返回的header并不是來自服務器,而是來自之前緩存的header)
  • 瀏覽器再請求這個資源時,先從緩存中尋找,找到這個資源后,拿出它的Expires跟當前的請求時間比較,如果請求時間在Expires指定的時間之前,就能***緩存,否則就不行
  • 如果緩存沒有***,瀏覽器直接從服務器加載資源時,Expires Header在重新加載的時候會被更新

Expires是較老的強緩存管理header,由于它是服務器返回的一個絕對時間,在服務器時間與客戶端時間相差較大時,緩存管理容易出現問題,比如隨意修改下客戶端時間,就能影響緩存***的結果。所以在http1.1的時候,提出了一個新的header,就是Cache-Control,這是一個相對時間,在配置緩存的時候,以秒為單位,用數值表示,如:Cache-Control:max-age=315360000

2.3 Cache-Control緩存原理

瀏覽器***次跟服務器請求一個資源,服務器在返回這個資源的同時,在respone的header加上Cache-Control,如: 

image.png
  1. 瀏覽器在接收到這個資源后,會把這個資源連同所有response header一起緩存下來
  2. 瀏覽器再請求這個資源時,先從緩存中尋找,找到這個資源后,根據它***次的請求時間和Cache-Control設定的有效期,計算出一個資源過期時間,再拿這個過期時間跟當前的請求時間比較,如果請求時間在過期時間之前,就能***緩存,否則就不行
  3. 如果緩存沒有***,瀏覽器直接從服務器加載資源時,Cache-Control Header在重新加載的時候會被更新

Cache-Control描述的是一個相對時間,在進行緩存***的時候,都是利用客戶端時間進行判斷,所以相比較Expires,Cache-Control的緩存管理更有效,安全一些。

這兩個header可以只啟用一個,也可以同時啟用,當response header中,Expires和Cache-Control同時存在時,Cache-Control優先級高于Expires: 

image.png

三、強緩存的管理

前面介紹的是強緩存的原理,在實際應用中我們會碰到需要強緩存的場景和不需要強緩存的場景,通常有2種方式來設置是否啟用強緩存

  • 通過代碼的方式,在web服務器返回的響應中添加Expires和Cache-Control Header
  • 通過配置web服務器的方式,讓web服務器在響應資源的時候統一添加Expires和Cache-Control Header

比如在javaweb里面,我們可以使用類似下面的代碼設置強緩存 

  1. java.util.Date date = new java.util.Date();     
  2. response.setDateHeader("Expires",date.getTime()+20000); //Expires:過時期限值  
  3. response.setHeader("Cache-Control""public"); //Cache-Control來控制頁面的緩存與否,public:瀏覽器和緩存服務器都可以緩存頁面信息; 
  4. response.setHeader("Pragma""Pragma"); //Pragma:設置頁面是否緩存,為Pragma則緩存,no-cache則不緩存 

還可以通過類似下面的java代碼設置不啟用強緩存 

  1. response.setHeader( "Pragma""no-cache" );    
  2. response.setDateHeader("Expires", 0);    
  3. response.addHeader( "Cache-Control""no-cache" );//瀏覽器和緩存服務器都不應該緩存頁面信息 

nginx和apache作為專業的web服務器,都有專門的配置文件,可以配置expires和cache-control,這方面的知識,如果你對運維感興趣的話,可以在百度上搜索nginx 設置 expires cache-control或 apache 設置 expires cache-control 都能找到不少相關的文章。

由于在開發的時候不會專門去配置強緩存,而瀏覽器又默認會緩存圖片,css和js等靜態資源,所以開發環境下經常會因為強緩存導致資源沒有及時更新而看不到***的效果,解決這個問題的方法有很多,常用的有以下幾種

  • 處理緩存帶來的問題
  • 直接ctrl+f5,這個辦法能解決頁面直接引用的資源更新的問題
  • 使用瀏覽器的隱私模式開發

如果用的是chrome,可以f12在network那里把緩存給禁掉(這是個非常有效的方法) 

image.png

在開發階段,給資源加上一個動態的參數,如css/index.css?v=0.0001,由于每次資源的修改都要更新引用的位置,同時修改參數的值,所以操作起來不是很方便,除非你是在動態頁面比如jsp里開發就可以用服務器變量來解決(v=${sysRnd}),或者你能用一些前端的構建工具來處理這個參數修改的問題

如果資源引用的頁面,被嵌入到了一個iframe里面,可以在iframe的區域右鍵單擊重新加載該頁面,以chrome為例 

image.png

如果緩存問題出現在ajax請求中,最有效的解決辦法就是ajax的請求地址追加隨機數

還有一種情況就是動態設置iframe的src時,有可能也會因為緩存問題,導致看不到***的效果,這時候在要設置的src后面添加隨機數也能解決問題

如果你用的是grunt和gulp、webpack這種前端工具開發,通過它們的插件比如grunt-contrib-connect來啟動一個靜態服務器,則完全不用擔心開發階段的資源更新問題,因為在這個靜態服務器下的所有資源返回的respone header中,cache-control始終被設置為不緩存 

image.png

四、強緩存的應用

強緩存是前端性能優化最有力的工具,沒有之一,對于有大量靜態資源的網頁,一定要利用強緩存,提高響應速度。通常的做法是,為這些靜態資源全部配置一個超時時間超長的Expires或Cache-Control,這樣用戶在訪問網頁時,只會在***次加載時從服務器請求靜態資源,其它時候只要緩存沒有失效并且用戶沒有強制刷新的條件下都會從自己的緩存中加載,比如前面提到過的京東首頁緩存的資源,它的緩存過期時間都設置到了2026年 

image.png

然而這種緩存配置方式會帶來一個新的問題,就是發布時資源更新的問題,比如某一張圖片,在用戶訪問***個版本的時候已經緩存到了用戶的電腦上,當網站發布新版本,替換了這個圖片時,已經訪問過***個版本的用戶由于緩存的設置,導致在默認的情況下不會請求服務器***的圖片資源,除非他清掉或禁用緩存或者強制刷新,否則就看不到***的圖片效果

這個問題已經有成熟的解決方案,具體內容可閱讀知乎這篇文章詳細了解:http://www.zhihu.com/question/20790576

文章提到的東西都屬于理論上的解決方案,不過現在已經有很多前端工具能夠實際地解決這個問題,由于每個工具涉及到的內容細節都有很多,本文沒有辦法一一深入介紹。有興趣的可以去了解下grunt gulp webpack fis 還有edp這幾個工具,基于這幾個工具都能解決這個問題,尤其是fis和edp是百度推出的前端開發平臺,有現成的文檔可以參考:

  • http://fis.baidu.com/fis3/api/index.html
  • http://ecomfe.github.io/edp/doc/initialization/install/

強緩存還有一點需要注意的是,通常都是針對靜態資源使用,動態資源需要慎用,除了服務端頁面可以看作動態資源外,那些引用靜態資源的html也可以看作是動態資源,如果這種html也被緩存,當這些html更新之后,可能就沒有機制能夠通知瀏覽器這些html有更新,尤其是前后端分離的應用里,頁面都是純html頁面,每個訪問地址可能都是直接訪問html頁面,這些頁面通常不加強緩存,以保證瀏覽器訪問這些頁面時始終請求服務器***的資源

五、協商緩存的原理

5.1 介紹

當瀏覽器對某個資源的請求沒有***強緩存,就會發一個請求到服務器,驗證協商緩存是否***,如果協商緩存***,請求響應返回的http狀態為304并且會顯示一個Not Modified的字符串,比如你打開京東的首頁,按f12打開開發者工具,再按f5刷新頁面,查看network,可以看到有不少請求就是***了協商緩存的 

image.png

查看單個請求的Response Header,也能看到304的狀態碼和Not Modified的字符串,只要看到這個就可說明這個資源是***了協商緩存,然后從客戶端緩存中加載的,而不是服務器***的資源 

image.png

5.2 Last-Modified,If-Modified-Since控制協商緩存

瀏覽器***次跟服務器請求一個資源,服務器在返回這個資源的同時,在respone的header加上Last-Modified的header,這個header表示這個資源在服務器上的***修改時間 

image.png

瀏覽器再次跟服務器請求這個資源時,在request的header上加上If-Modified-Since的header,這個header的值就是上一次請求時返回的Last-Modified的值 

image.png

服務器再次收到資源請求時,根據瀏覽器傳過來If-Modified-Since和資源在服務器上的***修改時間判斷資源是否有變化,如果沒有變化則返回304 Not Modified,但是不會返回資源內容;如果有變化,就正常返回資源內容。當服務器返回304 Not Modified的響應時,response header中不會再添加Last-Modified的header,因為既然資源沒有變化,那么Last-Modified也就不會改變,這是服務器返回304時的response header 

image.png

瀏覽器收到304的響應后,就會從緩存中加載資源

如果協商緩存沒有***,瀏覽器直接從服務器加載資源時,Last-Modified Header在重新加載的時候會被更新,下次請求時,If-Modified-Since會啟用上次返回的Last-Modified值

【Last-Modified,If-Modified-Since】都是根據服務器時間返回的header,一般來說,在沒有調整服務器時間和篡改客戶端緩存的情況下,這兩個header配合起來管理協商緩存是非??煽康模怯袝r候也會服務器上資源其實有變化,但是***修改時間卻沒有變化的情況,而這種問題又很不容易被定位出來,而當這種情況出現的時候,就會影響協商緩存的可靠性。所以就有了另外一對header來管理協商緩存,這對header就是【ETag、If-None-Match】。它們的緩存管理的方式是

5.3 ETag、If-None-Match控制協商緩存

瀏覽器***次跟服務器請求一個資源,服務器在返回這個資源的同時,在respone的header加上ETag的header,這個header是服務器根據當前請求的資源生成的一個唯一標識,這個唯一標識是一個字符串,只要資源有變化這個串就不同,跟***修改時間沒有關系,所以能很好的補充Last-Modified的問題 

image.png

瀏覽器再次跟服務器請求這個資源時,在request的header上加上If-None-Match的header,這個header的值就是上一次請求時返回的ETag的值 

image.png

服務器再次收到資源請求時,根據瀏覽器傳過來If-None-Match和然后再根據資源生成一個新的ETag,如果這兩個值相同就說明資源沒有變化,否則就是有變化;如果沒有變化則返回304 Not Modified,但是不會返回資源內容;如果有變化,就正常返回資源內容。與Last-Modified不一樣的是,當服務器返回304 Not Modified的響應時,由于ETag重新生成過,response header中還會把這個ETag返回,即使這個ETag跟之前的沒有變化 

image.png

瀏覽器收到304的響應后,就會從緩存中加載資源。

六、協商緩存的管理

協商緩存跟強緩存不一樣,強緩存不發請求到服務器,所以有時候資源更新了瀏覽器還不知道,但是協商緩存會發請求到服務器,所以資源是否更新,服務器肯定知道。大部分web服務器都默認開啟協商緩存,而且是同時啟用【Last-Modified,If-Modified-Since】和【ETag、If-None-Match】,比如apache: 

image.png

如果沒有協商緩存,每個到服務器的請求,就都得返回資源內容,這樣服務器的性能會極差。

【Last-Modified,If-Modified-Since】和【ETag、If-None-Match】一般都是同時啟用,這是為了處理Last-Modified不可靠的情況。

有一種場景需要注意

  • 分布式系統里多臺機器間文件的Last-Modified必須保持一致,以免負載均衡到不同機器導致比對失敗;
  • 分布式系統盡量關閉掉ETag(每臺機器生成的ETag都會不一樣);

京東頁面的資源請求,返回的repsones header就只有Last-Modified,沒有ETag: 

image.png

協商緩存需要配合強緩存使用,你看前面這個截圖中,除了Last-Modified這個header,還有強緩存的相關header,因為如果不啟用強緩存的話,協商緩存根本沒有意義

七、相關瀏覽器行為對緩存的影響

如果資源已經被瀏覽器緩存下來,在緩存失效之前,再次請求時,默認會先檢查是否***強緩存,如果強緩存***則直接讀取緩存,如果強緩存沒有***則發請求到服務器檢查是否***協商緩存,如果協商緩存***,則告訴瀏覽器還是可以從緩存讀取,否則才從服務器返回***的資源。這是默認的處理方式,這個方式可能被瀏覽器的行為改變:

當ctrl+f5強制刷新網頁時,直接從服務器加載,跳過強緩存和協商緩存;

當f5刷新網頁時,跳過強緩存,但是會檢查協商緩存

責任編輯:未麗燕 來源: Poetry's Blog
相關推薦

2018-11-30 09:00:19

html5cssjavascript

2022-03-24 08:31:25

Web性能優化瀏覽器緩存API封裝

2015-10-27 13:37:14

瀏覽器HTTP緩存

2020-11-06 15:20:45

瀏覽器前端架構

2017-04-26 14:15:35

瀏覽器緩存機制

2018-08-07 10:44:50

緩存技術瀏覽器

2020-07-16 08:04:21

瀏覽器緩存策略

2021-06-01 09:12:47

前端瀏覽器緩存

2011-05-06 09:36:16

動態頁面

2021-08-02 13:05:49

瀏覽器HTTP前端

2013-05-23 16:01:56

瀏覽器

2013-06-14 13:56:29

瀏覽器渲染原理

2020-12-29 09:56:29

瀏覽器緩存HTTP

2020-10-29 11:04:28

緩存瀏覽器LocalStorag

2017-05-15 13:40:20

瀏覽器http緩存機制

2021-04-19 11:40:15

瀏覽器路徑

2022-08-30 09:01:11

瀏覽器渲染前端

2012-02-01 13:42:19

2020-03-11 20:42:34

瀏覽器緩存機制

2019-08-16 10:54:03

本地存儲javascripthttp緩存
點贊
收藏

51CTO技術棧公眾號

99久久久国产精品免费蜜臀| 日韩欧美不卡| 色悠久久久久综合欧美99| 欧美极品一区二区| 在线观看黄色国产| 欧美成人一品| 亚洲视频视频在线| 古装做爰无遮挡三级聊斋艳谭| 99在线视频影院| 国产天堂亚洲国产碰碰| 91精品国产高清久久久久久91裸体 | 国内一区在线| 中文字幕视频一区二区| 亚洲一级网站| 色婷婷av一区二区三区在线观看| youjizz.com国产| www.26天天久久天堂| 一区二区三区高清| 日韩视频在线观看国产| 亚洲精品无遮挡| 免费观看在线综合| 2019精品视频| 免费在线观看黄色av| 欧美熟乱15p| 91麻豆精品国产自产在线| 无码无遮挡又大又爽又黄的视频| www.欧美日本韩国| 国产精品污www在线观看| 久99久在线| 性生交大片免费看女人按摩| 看片网站欧美日韩| 欧洲永久精品大片ww免费漫画| 手机在线中文字幕| 国产尤物久久久| 精品国产精品网麻豆系列| 99福利在线观看| а√在线中文在线新版| 亚洲激情在线激情| 中文字幕精品在线播放| 99riav在线| 久久在线免费观看| 精品不卡在线| 免费成人在线看| 国产成人在线视频播放| 亚洲一区二区三区毛片| 中文字幕一区二区三区波野结| 国产精品视区| 8x海外华人永久免费日韩内陆视频| 69av.com| 欧美日韩一区自拍| 精品中文字幕在线| 成年人午夜剧场| 天天综合网91| 久久精品亚洲国产| 亚洲欧美精品aaaaaa片| 99久久99视频只有精品| 精品国产欧美成人夜夜嗨| www.4hu95.com四虎| 欧美特黄一级视频| 国产精品99久久久久| 91亚洲精品一区二区| 国产欧美综合视频| 国产精品88av| 国产精品区二区三区日本| 女人18毛片水真多18精品| 懂色av一区二区三区免费观看| 97在线资源站| 污污网站免费在线观看| 久久亚洲精品小早川怜子| 欧美下载看逼逼| 亚洲图片88| 国产女人18水真多18精品一级做| 国产精品99久久久久久白浆小说| 7799精品视频天天看| 视频一区二区三区在线| 国产狼人综合免费视频| 国产三级漂亮女教师| 懂色av一区二区三区免费观看 | 在线观看国产精品视频| 国模一区二区三区白浆| 国产精品久久精品国产| 污视频网站免费观看| 久久精品视频免费| 一区中文字幕在线观看| 91福利在线免费| 色综合久久中文综合久久牛| 午夜免费看视频| 伊人久久亚洲| 亚洲欧美日韩中文在线| 久久精品色妇熟妇丰满人妻| 激情综合网址| 国产精品com| 国产a级免费视频| 97se亚洲国产综合自在线观| 先锋在线资源一区二区三区| 色呦呦在线看| 欧洲精品视频在线观看| xxxx视频在线观看| 红桃视频在线观看一区二区| 欧美成人性色生活仑片| 欧美a视频在线观看| 国产麻豆精品在线观看| 日本不卡一区二区三区视频| av中文字幕在线播放| 色综合久久天天综合网| 麻豆精品国产传媒| 欧美一区二区三区激情视频| 欧美黑人极品猛少妇色xxxxx| jizz国产在线观看| 成人网在线播放| 自拍偷拍一区二区三区| 成人免费看黄| 亚洲成av人影院在线观看| 99国产精品无码| 国产欧美精品| 91超碰在线电影| 一区二区高清不卡| 日本高清成人免费播放| 成人区人妻精品一区二| 中文字幕乱码亚洲无线精品一区| 国产成人精彩在线视频九色| 免费av网站观看| 一区二区三区蜜桃| 亚洲综合av在线播放| 国产麻豆精品久久| 午夜精品99久久免费| 国产成人三级一区二区在线观看一| 国产午夜精品福利| 日日橹狠狠爱欧美超碰| 亚洲精品一区二区三区中文字幕| www.国产精品一二区| 日韩黄色片网站| 99精品视频一区二区| 国产在线视频在线| 污视频网站免费在线观看| 欧美色视频在线观看| 亚洲区免费视频| 中文在线一区| 久久99热只有频精品91密拍| 激情网站在线| 日韩免费电影网站| 久久久久亚洲av无码专区体验| 麻豆精品国产91久久久久久| 日韩偷拍一区二区| 国产伊人久久| 日韩在线免费视频| 中文字幕免费播放| 国产精品系列在线| 中文字幕22页| 亚洲国产精品成人| 亚洲xxx视频| 青草av在线| 精品国产成人系列| 91蜜桃视频在线观看| 不卡视频免费播放| 国产二级片在线观看| 婷婷成人在线| 国产成人精品在线| 国产鲁鲁视频在线观看免费| 欧美伊人久久久久久久久影院 | 黄色av免费观看| 亚洲一区av在线| 一级特级黄色片| 日韩中文字幕麻豆| 亚欧洲精品在线视频免费观看| 国产精品66| 久久精品人人爽| www.国产.com| 黄色一区二区三区| a级在线免费观看| 麻豆精品视频在线观看| 亚洲欧美日韩久久久久久| 欧美午夜电影在线| 婷婷综合久久一区二区三区| 亚洲欧洲精品一区二区三区不卡| 亚洲啪啪综合av一区二区三区| 在线综合视频网站| 成人激情久久| 久久久久免费精品国产| 天堂中文字幕av| 91极品美女在线| 成人欧美一区二区三区黑人一| 美女国产一区二区| 波多野结衣 作品| 秋霞在线一区| 国产精品丝袜白浆摸在线| 国产在线高清理伦片a| 亚洲精品一区二区三区蜜桃下载 | 日韩一级免费片| 欧美aa国产视频| 欧美二区三区在线| 亚洲高清影院| 69久久夜色精品国产69乱青草| 成年在线观看免费人视频| 日韩欧美三级在线| 天天爱天天做天天爽| 亚洲少妇最新在线视频| 最新在线黄色网址| 韩国成人精品a∨在线观看| 99在线精品免费视频| 不卡在线一区二区| 国产伦精品一区二区三区高清版| 97成人超碰| 97激碰免费视频| 精品国产丝袜高跟鞋| 亚洲精品中文字幕av| 国产91视频在线| 欧美中文字幕久久| 日本五十路女优| 亚洲男人天堂一区| 亚洲一区二区自偷自拍 | 精品人妻无码一区二区三区换脸| 精品一区二区三区的国产在线播放| 国产一区二区在线视频播放| 亚洲欧洲中文字幕| 日韩影视精品| 日本一区福利在线| 97在线电影| 国产精品毛片无码| 国产精品一区二区久久久| 婷婷电影在线观看| 欧美激情国产日韩精品一区18| 日本视频在线观看| 亚洲香蕉av在线一区二区三区| 国产综合在线播放| 欧美一卡二卡在线| 国产一区二区小视频| 欧美性一二三区| 欧美一级淫片免费视频黄| 免费黄网站在线播放| 深夜在线视频| 91免费国产在线| 中文字幕永久视频| 在线综合视频| 日韩成人三级视频| 91久久久精品国产| 亚洲一区二区三区精品视频| 欧美一性一交| 美女精品在线观看| 激情图片小说一区| 久久精品午夜一区二区福利| 日韩一区网站| 91久久久久久久一区二区| 国产经典一区| 国产精品大陆在线观看| 亚洲天堂手机| 欧洲精品久久久| se01亚洲视频| 国产精品久久久久久一区二区| 伊人久久综合一区二区| 日本aⅴ大伊香蕉精品视频| 一个人看的www视频在线免费观看| 韩剧1988在线观看免费完整版| 黄色激情在线播放| 日韩av123| 日韩av一级| 国产在线日韩在线| 免费一区二区三区在线视频| 亚洲最大av网站| 高清精品xnxxcom| 久久综合一区二区三区| 国产精品中文字幕亚洲欧美| 日韩一本精品| 亚洲精品在线观看91| 免费一级淫片aaa片毛片a级| 亚洲精品1区2区| www.亚洲天堂网| 日韩国产一区二| 中文字幕资源在线观看| 国产成人综合自拍| 日本少妇毛茸茸| 国产亚洲女人久久久久毛片| 激情高潮到大叫狂喷水| 一区二区三区高清| 亚洲GV成人无码久久精品| 欧美日韩在线观看一区二区 | 亚洲无线视频| 欧美 日韩 国产在线观看| 天堂成人国产精品一区| 亚洲天堂网2018| 成人av动漫在线| 五月天综合视频| 伊人一区二区三区| 亚洲日本视频在线观看| 欧美日韩国产高清一区二区三区| 国产成人精品av在线观| 精品亚洲夜色av98在线观看| 日本视频不卡| 91国自产精品中文字幕亚洲| 99re久久| 国产在线一区二| 99re66热这里只有精品8| 久青草视频在线播放| 青青草一区二区三区| 乳色吐息在线观看| 国产欧美一二三区| 国产一级在线观看视频| 欧美中文字幕久久| 天天干,夜夜爽| 久久久成人精品视频| 午夜不卡影院| 亚洲综合色av| 日韩久久视频| 男人操女人逼免费视频| 激情久久久久久久久久久久久久久久| 182在线视频| 中文字幕亚洲电影| 99超碰在线观看| 精品国产一区二区亚洲人成毛片| 成人免费一区二区三区视频网站| 久久久亚洲天堂| 91精品网站在线观看| 欧洲成人一区二区| 在线观看的日韩av| 美女被艹视频网站| 国产精品久线在线观看| 男人午夜免费视频| 亚洲成人动漫在线播放| 亚洲色图美国十次| 91久久国产婷婷一区二区| 国产一区二区三区天码| 北条麻妃在线视频观看| www.亚洲精品| 欧美黄色免费看| 制服丝袜亚洲色图| av在线电影免费观看| 日韩美女av在线免费观看| 久久久亚洲欧洲日产| 91黄色在线看| 国产精品一级黄| 亚洲精品卡一卡二| 欧美日韩精品一区二区三区四区| 男人天堂资源在线| 欧美亚洲日本网站| 欧美午夜18电影| 欧美在线一区视频| 不卡av在线免费观看| 久久精品免费av| 精品国产三级电影在线观看| 肉体视频在线| 99超碰麻豆| 国产精品v日韩精品v欧美精品网站 | 激情一区二区三区| 亚洲精品欧美| 一本色道综合久久欧美日韩精品| 午夜欧美在线一二页| 姝姝窝人体www聚色窝| 8050国产精品久久久久久| 欧美精品中文| 日韩av资源在线| 久久精品亚洲精品国产欧美kt∨ | 日韩电影免费一区| av手机在线播放| 精品污污网站免费看| 日本最新在线视频| 91最新国产视频| 国产综合精品| 欧类av怡春院| 色综合咪咪久久| 91视频在线观看| 91久久国产精品| 亚洲激情影院| 蜜桃av免费看| 5月丁香婷婷综合| 日本色护士高潮视频在线观看| 国产精品毛片va一区二区三区| 一本久道久久久| av手机在线播放| 91精品国产综合久久小美女| 麻豆av在线免费观看| 免费观看国产成人| 蜜乳av一区二区三区| 国产suv一区二区三区| 欧美精品一区二区三区视频| 亚洲精品福利电影| 亚洲欧洲日本国产| 国产成人福利片| 一女二男3p波多野结衣| 国产精品久久久久影院老司| 精品国产免费无码久久久| 69视频在线播放| 成人精品电影| 老女人性生活视频| 欧美日韩美女在线| 3d成人动漫在线| 国产99在线免费| 日韩国产精品久久久| 18岁成人毛片| 亚洲视频综合网| 日韩一区二区三区在线看| 国产午夜福利视频在线观看| 中文字幕五月欧美| 韩国av在线免费观看| 国产精品视频免费在线| 亚洲国产日本| 99热这里只有精品4| 日韩电影免费观看中文字幕| 国产精品久久久久77777丨| 青草青青在线视频| 中文字幕一区二区在线播放|