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

Web緩存控制策略詳解

存儲 存儲軟件
管理Web緩存的最常用和最有效的方法之一是通過Cache-Control HTTP標(biāo)頭,由于此標(biāo)頭適用于Web頁面的緩存,這意味著我們頁面上的所有內(nèi)容都可以具有非常精細(xì)化的緩存策略。通過各種自定義策略,我們控制的策略就可以變得非常復(fù)雜和強(qiáng)大。

管理Web緩存的最常用和最有效的方法之一是通過Cache-Control HTTP標(biāo)頭,由于此標(biāo)頭適用于Web頁面的緩存,這意味著我們頁面上的所有內(nèi)容都可以具有非常精細(xì)化的緩存策略。通過各種自定義策略,我們控制的策略就可以變得非常復(fù)雜和強(qiáng)大。

[[259935]]

Cache-Control

管理Web緩存的最常用和最有效的方法之一是通過Cache-Control HTTP標(biāo)頭,由于此標(biāo)頭適用于Web頁面的緩存,這意味著我們頁面上的所有內(nèi)容都可以具有非常精細(xì)化的緩存策略。通過各種自定義策略,我們控制的策略就可以變得非常復(fù)雜和強(qiáng)大。

Cache-Control標(biāo)頭可能如下所示:

  1. Cache-Control: publicmax-age=31536000 

Cache-Control是標(biāo)頭,public和max-age=31536000都是指令。 Cache-Control標(biāo)頭可以接受一個(gè)或多個(gè)指令,我想在本文中討論的就是這些指令,比如它們的真正含義以及它們的***用例。

public和private緩存

public意味著任何緩存都可以存儲響應(yīng)的副本,其中就包括CDN、代理服務(wù)器等。public指令通常是多余的,因?yàn)槠渌噶?比如max-age)的存在是隱式指令,緩存可能會存儲一個(gè)副本。

另一方面,private是一個(gè)顯式指令,只有響應(yīng)的最終接收者(客戶端或?yàn)g覽器)才可以存儲該文件的副本。雖然private本身不是具有安全功能,但是它的目的是防止public緩存(例如CDN)存儲包含一個(gè)用戶唯一信息的響應(yīng)。

max-age

max-age定義了一個(gè)以秒為單位的時(shí)間單位(相對于請求的時(shí)間),該單位的響應(yīng)被認(rèn)為是‘fresh’。

  1. Cache-Control: max-age=60 

此Cache-Control標(biāo)頭會告訴瀏覽器,它可以在接下來的60秒內(nèi)使用緩存中的此文件,而不必?fù)?dān)心重新被驗(yàn)證。 不過60秒后,瀏覽器將返回服務(wù)器以重新驗(yàn)證文件。

如果服務(wù)器有一個(gè)新文件供瀏覽器下載,它將以200響應(yīng)進(jìn)行響應(yīng),下載新文件后,舊文件將從HTTP緩存中彈出,新文件將替換它,并將成為新的緩存標(biāo)頭。

如果服務(wù)器沒有需要下載的更新副本,則服務(wù)器將以200響應(yīng)進(jìn)行響應(yīng),不需要下載任何新文件,并將使用新的標(biāo)頭更新緩存副本。這意味著,如果仍然存在Cache-Control:max-age = 60標(biāo)頭,則緩存文件在60秒后將再次啟動。算下來,一個(gè)文件的總緩存時(shí)間為120秒。

注意:max-age會有自動警告的屬性,如果瀏覽器過于陳舊,則max-age會提醒用戶,但用戶可以選擇忽略此警告。瀏覽器可能會使用自己的試探法來決定是否在不重新驗(yàn)證文件的情況下發(fā)布文件的陳舊副本。這種行為有些不確定,所以很難確切地知道瀏覽器將實(shí)際做什么。為此,我們有一系列顯式指令,可以用它們來擴(kuò)充max-age。

s-maxage

s-maxage將優(yōu)先于max-age指令,但僅限在共享緩存的上下文中使用。將max-age和s-maxage結(jié)合使用,你可以分別為private和public緩存(例如代理、CDN)提供不同的啟動時(shí)間。

no-store

  1. Cache-Control: no-store 

如果我們不想緩存文件怎么辦?如果文件包含敏感信息怎么辦?也許這是一個(gè)包含銀行詳細(xì)信息的HTML頁面?或許這些信息對時(shí)間至關(guān)重要?也許是一個(gè)包含實(shí)時(shí)股票價(jià)格的頁面?其實(shí)我們并不想在緩存中存儲或提供任何類似的響應(yīng):我們總是希望丟棄敏感信息并獲取***的實(shí)時(shí)信息。這時(shí),我們就要用到no-store指令。

no-store是一個(gè)非常強(qiáng)大的指令,不會將任何信息保存到任何緩存中,無論是private或其他緩存。

no–cache

  1. Cache-Control: no-cache 

這是讓大多數(shù)人誤解的指令,no – cache存并不意味著“沒有緩存”。這只是意味著“在你使用服務(wù)器重新驗(yàn)證緩存之前,不需要從緩存中提供副本就可以使用以前的緩存副本”。

no-cache實(shí)際上是一種非常聰明的緩存更新策略,這樣就可以始終保證***的緩存副本。除非服務(wù)器響應(yīng)更快,否則no-cache將始終must-revalidate服務(wù)器才能釋放瀏覽器的緩存副本,但如果服務(wù)器響應(yīng)速度一般,網(wǎng)絡(luò)傳輸只有一個(gè)文件的標(biāo)頭,則可以直接從緩存中抓取正文而不是重載。

因此,這是一種結(jié)合更新策略,并快速從緩存中獲取文件的智能方法,但前提是它至少要獲得一個(gè)HTTP標(biāo)頭響應(yīng)。

無緩存的一個(gè)很好的用例幾乎就是動態(tài)HTML頁面,想想新聞網(wǎng)站的主頁:它不是實(shí)時(shí)的,也不包含任何敏感信息,但理想情況下我們希望頁面始終顯示***鮮的內(nèi)容。我們可以使用cache-control:no-cache來指示瀏覽器首先檢查服務(wù)器,如果服務(wù)器沒有更新的東西(304),就會重用緩存的版本。如果服務(wù)器確實(shí)有一些更新鮮的內(nèi)容,它會響應(yīng)(200)并發(fā)送更新的文件。

提示:沒有必要發(fā)送max-age指令和no-cache指令,因?yàn)橹匦买?yàn)證的時(shí)間限制為零秒。

must-revalidate

更令人困惑的是,盡管上面的代碼聽起來應(yīng)該稱為must-revalidate,但事實(shí)證明,must-revalidate仍然具有自己的特點(diǎn)。

  1. Cache-Control: must-revalidate, max-age=600 

must-revalidate需要一個(gè)相關(guān)的max-age指令,如上所示,我們把它設(shè)置為十分鐘。此時(shí),no-cache將立即與服務(wù)器重新驗(yàn)證,只有在服務(wù)器允許時(shí)才使用緩存副本時(shí),must-revalidate才類似于一個(gè)寬限期no-cache。具體過程是這樣的,在前十分鐘,瀏覽器不會與服務(wù)器重新驗(yàn)證,但十分鐘過后,它又返回服務(wù)器。如果服務(wù)器沒有任何新內(nèi)容,它將以304響應(yīng)并且新的Cache-Control標(biāo)頭應(yīng)用于緩存文件。然后再以十分鐘為單位,如果在十分鐘之后,服務(wù)器上有一個(gè)較新的文件,我們會收到200響應(yīng)及其正文,并且本地緩存會更新。

proxy-revalidate

與s-maxage類似,proxy-revalidate是must-revalidate的public緩存的自定義版本,它只是被private緩存忽略了。

immutable

immutable是一個(gè)非常新的且非常簡潔的指令,它告訴瀏覽器關(guān)于我們發(fā)送的文件類型的更多信息,該指令可以解決以下問題:用戶刷新會導(dǎo)致瀏覽器重新驗(yàn)證文件,無論其新鮮度如何,用戶刷新通常意味著以下任意情況必定發(fā)生:頁面看起來不完整或者內(nèi)容還和原來一樣。

所以,我們有必要檢查服務(wù)器上是否有更新的內(nèi)容。

如果服務(wù)器上有更新的文件,我們肯定希望下載它。因此,我們將得到200響應(yīng),即一個(gè)新文件出現(xiàn)。但是,如果服務(wù)器上沒有新文件,我們將得到304響應(yīng),即沒有新文件,如果是專業(yè),則整個(gè)延遲反應(yīng)就沒有意義了。如果我們重新驗(yàn)證許多導(dǎo)致延遲反應(yīng)304的文件,可能會增加數(shù)百毫秒不必要的等待。

immutable是一種告訴瀏覽器文件有無可變內(nèi)容的指令,如果內(nèi)容無更新,則永遠(yuǎn)不會重新驗(yàn)證緩存。這樣,就可以完全消除延遲時(shí)間。不過,immutable所指的可變或不可變文件的具體含義是什么?

style.css:當(dāng)我們更改此文件的內(nèi)容時(shí),即使根本不更改其名稱,這個(gè)文件也被認(rèn)為是可變的。

style.ae3f66.css:這個(gè)文件是唯一的,它以基于其具體內(nèi)容來命名的,所以一旦內(nèi)容發(fā)生變化,我們就會得到一個(gè)全新的文件,此時(shí),這個(gè)文件就被認(rèn)為是不可變的。

我們將在Cache Busting部分中更詳細(xì)地討論這個(gè)問題。

如果我們能夠以某種方式向?yàn)g覽器發(fā)出文件是不可變的信號,則它就不需要檢查更新版本,這正是immutable指令的作用:

Cache-Control: max-age=31536000, immutable

在支持immutable指令的瀏覽器中,用戶刷新永遠(yuǎn)不會在31536000秒的新鮮度生命周期內(nèi)進(jìn)行重新驗(yàn)證。這意味著無需花費(fèi)不必要的延遲時(shí)間來檢索304響應(yīng),這可能會在關(guān)鍵路徑(CSS blocks rendering)上節(jié)省大量的延遲時(shí)間。

注意:你不應(yīng)該將immutable應(yīng)用于任何不可變的文件,因?yàn)槟氵€應(yīng)該有一個(gè)非常強(qiáng)大的緩存破壞策略。

stale-while-revalidate

到目前為止,我們已經(jīng)談了很多關(guān)于重新驗(yàn)證的內(nèi)容,都是關(guān)于瀏覽器返回服務(wù)器以檢查是否有更新的文件的過程。在高延遲連接上,重新驗(yàn)證的持續(xù)時(shí)間會很長,并且這個(gè)時(shí)間是固定的,直到我們對服務(wù)器進(jìn)行額外的命令,否則既不能釋放緩存副本(304)也不能下載新文件(200)。

stale-while-revalidate提供的是寬限期,在此期間,當(dāng)我們檢查新版本時(shí),允許瀏覽器使用過去的緩存。

  1. Cache-Control: max-age=31536000, stale-while-revalidate=86400 

該指令是在告訴瀏覽器“這個(gè)文件可以使用一年,一年之后,還可以再用一個(gè)星期。在這時(shí)候,如果你要繼續(xù)使用這個(gè)舊的資源,就必須在后臺重新驗(yàn)證它”。

stale-while-revalidate對非關(guān)鍵資源是一個(gè)很好的指令,當(dāng)然,我們希望使用***的版本。但是我們知道,如果在檢查更新時(shí)再次使用過時(shí)的響應(yīng),不會造成任何對更新的破壞。

stale-if-error

與stale-while-revalidate類似,如果重新驗(yàn)證的資源返回5xx類錯誤,stale-if-error允許瀏覽器有一段緩沖時(shí)間,在此期間可以允許返回過時(shí)的響應(yīng)。

  1. Cache-Control: max-age=2419200, stale-if-error=86400 

在本文中,我們指定了28天(2419200秒)以內(nèi)的緩存文件都是新的,如果我們在那之后遇到更新錯誤,我們會多追加一天(86400秒),在此期間我們將允許過時(shí)的資源響應(yīng)。

Cache Busting(緩存破壞)

只討論緩存得正常情況而不討論緩存破壞的情況是不負(fù)責(zé)任的。在考慮你的緩存策略之前,我總是建議你解決緩存破壞策略。因?yàn)楫?dāng)開發(fā)者修改了網(wǎng)站就會發(fā)生問題,因?yàn)橛脩舯镜鼐彺娴奈募€是老文件。這樣用戶看到的不僅還是舊的功能,如果網(wǎng)站緩存了css和js文件,它們還在引用不存在的元素或者被移除的被重命名的元素,網(wǎng)站就會報(bào)錯破壞。

Cache busting就是強(qiáng)制瀏覽器下載新文件的一種方法,通過將新文件的名字修改成和舊文件不同的名字即可實(shí)現(xiàn)。

No Cache Busting – style.css

這是最不可取的做法:絕對沒有任何緩存破壞。這是一個(gè)可變文件,我們真的很難實(shí)現(xiàn)Cache Busting。

你應(yīng)該非常謹(jǐn)慎地緩存這些文件,因?yàn)橐坏┧鼈兂霈F(xiàn)在用戶的設(shè)備上,我們幾乎失去了對它們的所有控制權(quán)。

盡管這個(gè)例子是一個(gè)樣式表,但HTML頁面正好就是這個(gè)特性。由于我們無法更改網(wǎng)頁的文件名,網(wǎng)站就會報(bào)錯破壞!這正是我們根本不會緩存它們的原因。

Query String – style.css?v=1.2.14

此時(shí),我們?nèi)匀挥幸粋€(gè)可變文件,但我們在其文件路徑中添加了一個(gè)查詢字符串。雖然這比什么都不做要好,但它仍然不***。如果要刪除查詢字符串,我們會回到之前的類別,即完全不存在緩存破壞。許多代理服務(wù)器和CDN都不會通過配置來緩存任何帶有查詢字符串的內(nèi)容。例如,來自Cloudflare的文檔, “style.css?something”的請求將被標(biāo)準(zhǔn)化為“style.css”,或查詢字符串可能包含特定于一個(gè)特定響應(yīng)的信息。

Fingerprint – style.ae3f66.css

到目前為止,指紋識別是緩存破壞文件的***方法。每次文件的內(nèi)容發(fā)生變化時(shí),我們都對其進(jìn)行更改,這并不會緩存任何內(nèi)容。這意味著,我們將最終得到的是一個(gè)全新的文件!且該文件不可更改。如果你可以在靜態(tài)緩存上實(shí)現(xiàn)此功能,請執(zhí)行此操作!一旦你成功地實(shí)現(xiàn)了這個(gè)非常可靠的緩存破壞策略,你就能得到***的緩存控制指令了:

  1. Cache-Control: max-age=31536000, immutable 

實(shí)施細(xì)節(jié)

此方法的關(guān)鍵是更改文件名,但不一定是對指紋進(jìn)行更改。以下所有示例都具有相同的效果:

  •  /assets/style.ae3f66.css:使用文件內(nèi)容的哈希產(chǎn)生破壞;
  • /assets/style.1.2.14.css:使用一個(gè)已發(fā)布的版本產(chǎn)生破壞;
  • /assets/1.2.14/style.css:通過更改URL中的目錄產(chǎn)生破壞;

但是,***一個(gè)示例表明,我們對每個(gè)版本而不是每個(gè)單獨(dú)的文件進(jìn)行版本控制。這反過來意味著,如果我們只需要緩存樣式表,則還必須緩存該版本的所有靜態(tài)文件,所以***選項(xiàng)是前兩個(gè)。

Clear-Site-Data

目前我們正在開發(fā)一個(gè)規(guī)范,以幫助開發(fā)人員確定整個(gè)緩存的來源,并從根上徹底一次性清除,這就是Clear-Site-Data的含義,它讓W(xué)eb開發(fā)人員對瀏覽器本地存儲的數(shù)據(jù)有更多控制能力。

我不想在這篇文章中詳細(xì)介紹Clear-Site-Data,它不是Cache-Control指令,而是一個(gè)全新的HTTP標(biāo)頭文件。

  1. Clear-Site-Data: "cache" 

將此標(biāo)頭應(yīng)用于你的任何一個(gè)源緩存都將讓整個(gè)源的緩存破壞,而不僅僅是它所附加的文件。這意味著,如果你需要從所有訪問者的緩存中強(qiáng)制破壞整個(gè)站點(diǎn),則可以將上述標(biāo)頭應(yīng)用于HTML有效內(nèi)容。

在撰寫本文時(shí),僅支持瀏覽器有Chrome,Android Webview,F(xiàn)irefox和Opera。

提示:Clear-Site-Data將接受許多指令:“cookies”,“storage”,“executionContexts”和“*” (當(dāng)然,“*”的意思是“以上所有”)。

具體示例

好的,讓我們來看看一些應(yīng)用場景以及我們可能采用哪種Cache-Control標(biāo)頭。

網(wǎng)上銀行頁面

  1. Request URL: /account/ 
  2. Cache-Control: no-store 

根據(jù)規(guī)范,這足以阻止瀏覽器在private和共享緩存中持續(xù)對磁盤的響應(yīng)。

no-store響應(yīng)指令會命令緩存不得存儲立即請求或響應(yīng)的任何部分,此指令適用于private和共享緩存。 “不得存儲”意味著緩存不得故意將信息存儲在非易失性存儲中,并且必須盡***努力盡快在轉(zhuǎn)發(fā)后從易失性存儲中刪除所存儲的信息。

但如果你想要防止緩存的發(fā)生,你可以選擇:

  1. Request URL: /account/ 
  2. Cache-Control: private, no-cache, no-store 

該指令將明確指示不要在public緩存(例如CDN)中存儲任何內(nèi)容,以始終提供***的副本。

列車時(shí)間表網(wǎng)頁

如果我們正在構(gòu)建一個(gè)顯示實(shí)時(shí)信息的頁面,則希望保證用戶始終能夠看到***的信息。此時(shí),可以使用以下指令:

  1. Request URL: /live-updates/ 
  2. Cache-Control: no-cache 

這個(gè)簡單的指令意味著瀏覽器不會直接從緩存中顯示響應(yīng),意味著頁面不會顯示過時(shí)的列車信息。

FAQ頁面

像FAQ這樣的頁面可能很少更新,因?yàn)槠渲械膬?nèi)容大多都是常識性問題,對時(shí)效性沒有要求。我們可能會暫時(shí)緩存這樣的HTML頁面,并強(qiáng)制瀏覽器定期檢查新內(nèi)容,而不是每次對緩存進(jìn)行訪問。可以使用以下指令:

  1. Request URL: /faqs/ 
  2. Cache-Control: max-age=604800, must-revalidate 

該指令會告訴瀏覽器將HTML頁面緩存一周(604800秒),并且一周結(jié)束后,我們需要檢查服務(wù)器是否有更新。

頁面中的圖片

頁面中的圖片通常都是一篇文章的配圖,通常我們都會下載下來,所以我們想緩存它。但其實(shí)它對頁面的更新狀態(tài)并不會產(chǎn)生影響,因此我們不需要它的更新狀態(tài)。可以使用以下指令:

  1. Request URL: /content/masthead.jpg 
  2. Cache-Control: max-age=2419200, must-revalidate, stale-while-revalidate=86400 

該指令會告訴瀏覽器將圖像存儲28天(2419200秒),我們要在28天的時(shí)間限制后檢查該圖像在服務(wù)器中是否有更新。

總結(jié)

1.判斷是否設(shè)置了cacheBusting屬性非常重要。在開始執(zhí)行緩存策略之前,請先制定緩存破壞策略。

2.一般來說,緩存HTML內(nèi)容是一個(gè)錯誤的方法。 由于HTML網(wǎng)址不能被破壞,并且由于你的HTML頁面通常是其余子資源的入口點(diǎn),因此你最終也會緩存對靜態(tài)資源的引用。

3.如果要緩存任何HTML,在站點(diǎn)上的不同類型的HTML頁面上使用不同的緩存策略可能會導(dǎo)致不一致,比如有的頁面總是***的內(nèi)容,而其他頁面的內(nèi)容有時(shí)是從緩存中獲取的。

4.如果你能夠可靠的緩存(使用指紋)的靜態(tài)資產(chǎn),那么你還不如一次性使用一個(gè)不可變的指令緩存數(shù)年,以便更好地進(jìn)行管理。

5.非關(guān)鍵緩存內(nèi)容可以使用stale-while-revalidate等指令,增加緩存的寬限期。

6.immutable和stale-while-revalidate不僅為我們提供了緩存的傳統(tǒng)優(yōu)勢,而且還允許我們在重新驗(yàn)證時(shí)降低延遲。

7.充分了解你的緩存,并設(shè)計(jì)具有針對性的緩存策略。

責(zé)任編輯:武曉燕 來源: 嘶吼
相關(guān)推薦

2021-03-29 11:51:07

緩存儲存數(shù)據(jù)

2022-05-10 08:58:56

CacheHTTP

2023-11-16 08:22:14

LruCacheAndroid

2012-04-02 16:35:49

網(wǎng)絡(luò)緩存

2023-04-13 07:52:59

2019-12-05 15:22:25

高可用網(wǎng)關(guān)配置

2011-08-03 09:28:23

2011-07-28 14:14:17

組策略組策略命令

2011-05-20 10:53:01

2015-10-08 16:40:50

緩存頭像策略

2018-08-23 10:50:28

Web緩存體系

2013-10-16 16:58:17

iOS優(yōu)化緩存優(yōu)化

2009-07-06 14:03:01

高性能Web應(yīng)用緩存

2012-05-10 09:18:14

惠普云計(jì)算融合云

2018-10-23 10:47:03

高并發(fā)系統(tǒng)緩存

2024-09-26 06:30:36

2025-02-03 00:00:35

2024-06-28 08:31:54

2020-07-16 08:04:21

瀏覽器緩存策略

2024-05-06 12:20:00

緩存驅(qū)逐緩存
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

午夜精品理论片| 欧美一区二区三区思思人| 久久久一本精品99久久精品66| 91video| 日韩理论电影大全| 精品乱码亚洲一区二区不卡| 亚洲国产成人精品无码区99| 精品久久av| 国产精品一区在线观看乱码| 欧美一级高清免费| 欧洲第一无人区观看| 欧美一级一片| 欧美一区二区三区的| 国产69精品久久久久999小说| 都市激情一区| fc2成人免费人成在线观看播放| 国产精品久久一区主播| 久久精品女人毛片国产| 成人精品久久| 亚洲成人av在线| 国产三级精品三级在线| 国模私拍一区二区国模曼安| 亚洲视频一二三区| 欧美日本韩国国产| www.日韩高清| 久久国产精品色| 日本不卡免费高清视频| 久久精品一区二区三| 色乱码一区二区三区网站| 亚洲精品国产综合久久| 男人添女人荫蒂国产| 欧美大片1688网站| 一本久道中文字幕精品亚洲嫩| 国产精品夜夜夜爽张柏芝| 国产精品麻豆一区二区三区| 不卡视频在线看| 成人蜜桃视频| 99国产精品99| 麻豆freexxxx性91精品| 国产精品igao视频| 天堂中文字幕在线观看| 影院欧美亚洲| 久久99精品久久久久久青青91 | 久久久久97| 日韩三级av在线播放| 亚洲一区二区三区观看| 91久久久久久白丝白浆欲热蜜臀| 精品久久久久久久久久久久久久| a级免费在线观看| 欧洲黄色一区| 亚洲一区在线播放| 999一区二区三区| 色老头在线观看| 亚洲激情男女视频| 99久久99久久精品| 免费在线中文字幕| 亚洲无人区一区| 久久久久久人妻一区二区三区| 日本孕妇大胆孕交无码| 亚洲综合久久av| cao在线观看| 特黄毛片在线观看| 欧美视频在线观看免费| 国产aaa一级片| 欧美性猛交xxx高清大费中文| 色综合天天视频在线观看| 蜜臀av午夜一区二区三区| 偷拍精品精品一区二区三区| 欧美自拍偷拍一区| 91精产国品一二三产区别沈先生| 国产精久久久| 精品少妇一区二区三区免费观看| 无码任你躁久久久久久老妇| 欧美黄色录像| 亚洲人成绝费网站色www| 91无套直看片红桃在线观看| 综合精品久久| 91精品国产电影| 日韩乱码一区二区三区| 久久99精品久久只有精品| 1区1区3区4区产品乱码芒果精品| 亚洲国产日韩在线观看| 91网上在线视频| 亚洲欧美日韩在线综合| av片在线观看永久免费| 欧美日韩免费看| 国产福利在线免费| 果冻天美麻豆一区二区国产| 国产亚洲xxx| 性欧美videos| 国产精品美女| 成人在线播放av| 少妇精品视频一区二区| 欧美国产精品中文字幕| 日本a级片在线播放| **在线精品| 欧美一区二区三区人| 不卡一区二区在线观看| 一本精品一区二区三区| 日本不卡免费高清视频| www.五月婷| 中文字幕不卡三区| 一女被多男玩喷潮视频| 日韩综合久久| 亚洲人精品午夜在线观看| 国产黄在线免费观看| 久久午夜激情| 国产精品美女久久久久av福利| 国产在线视频网站| 亚洲国产中文字幕在线视频综合| 欧美日韩在线观看不卡| 久久人人爽人人爽人人片av不| 中文字幕精品一区久久久久 | 麻豆tv免费在线观看| 欧美日韩国产在线播放| 亚洲成人激情小说| 日韩精品免费一区二区三区| 2019中文字幕全在线观看| 国产乱叫456在线| 国产欧美一区二区在线观看| 日韩精品在线视频免费观看| 中文成人在线| 中文字幕亚洲一区| 成人公开免费视频| av亚洲精华国产精华精华| 国产树林野战在线播放| 狠狠久久综合| 曰本色欧美视频在线| 91在线视频在线观看| av电影在线观看完整版一区二区| 99热都是精品| 日日夜夜精品| 精品国产一区二区三区久久狼黑人| 国产成人无码一区二区在线播放| 白白色 亚洲乱淫| 成年人网站国产| jizz久久精品永久免费| 欧美乱妇40p| 国产精品久久影视| 亚洲视频一区二区免费在线观看| 久热精品在线观看视频| 成人免费看片39| 欧美在线视频播放| 男女av在线| 91久久一区二区| 我想看黄色大片| 日本成人在线不卡视频| 日韩欧美在线电影| 国产精品亚洲成在人线| 亚洲视频网站在线观看| 成人免费视频国产免费| 日本一区二区免费在线观看视频| 日韩免费高清在线| 成人久久一区| 91老司机在线| 欧美xxxx免费虐| 亚洲精品一区二区三区香蕉| 国产一级淫片a| 91亚洲国产成人精品一区二三 | 欧美精品一区二区高清在线观看| 欧美成欧美va| 不卡一卡二卡三乱码免费网站| 可以在线看的av网站| 台湾亚洲精品一区二区tv| 人人爽久久涩噜噜噜网站| av大片在线观看| 91精品国产综合久久久蜜臀图片| 欧美三级在线免费观看| 99精品视频在线免费观看| 国产主播在线看| 欧美限制电影| 亚洲999一在线观看www| av影院在线| 日韩av在线看| 中国黄色一级视频| 亚洲黄色免费电影| 特级西西人体wwwww| 人人狠狠综合久久亚洲| 国产精品视频网站在线观看 | 亚洲欧美日韩在线综合| 精品亚洲二区| 欧洲成人性视频| 日本视频在线免费观看| 精品国产乱码久久久久久久| 性无码专区无码| 国产精品久久久久aaaa| 日本天堂在线播放| 水蜜桃久久夜色精品一区的特点| 中文字幕一区综合| 激情av综合| 91精品久久久久久久久久入口| 欧美xxxbbb| 一本色道久久综合狠狠躁篇怎么玩 | 在线亚洲欧美专区二区| 777777国产7777777| 97久久人人超碰| 欧美成人手机在线视频| 性8sex亚洲区入口| 91视频成人免费| 国产一区三区在线播放| 成人看片在线| 亚洲伦理久久| 日韩av免费在线看| 激情在线视频播放| 主播福利视频一区| 亚洲 欧美 激情 另类| 欧美一区二区久久久| 免费污污视频在线观看| 亚洲一区二区三区四区在线免费观看| 国产一二三四五区| 成人美女在线观看| 黄色aaaaaa| 蜜桃视频一区二区| 不卡影院一区二区| 亚洲精品乱码| 黄色影视在线观看| 日韩免费特黄一二三区| 麻豆精品蜜桃一区二区三区| 亚洲乱码一区| 成人av在线亚洲| 韩国精品主播一区二区在线观看| 韩国精品久久久999| 性欧美ⅴideo另类hd| 日韩视频一区在线| av男人的天堂在线| 亚洲天堂av在线免费| 午夜激情小视频| 欧美精品一区二| 国产jzjzjz丝袜老师水多| 欧美日韩一卡二卡三卡| 日韩免费av网站| 一本色道久久综合亚洲91 | 日本乱子伦xxxx| 97se亚洲国产综合自在线不卡| 国产成人av片| 国产成人在线视频网站| 波多野结衣三级视频| 国产成人在线影院| 18禁一区二区三区| 国产精品 日产精品 欧美精品| 999这里有精品| 久久福利视频一区二区| 亚洲美女性囗交| 精品在线免费观看| 亚洲精品国产久| 国产精品资源网站| 女人扒开腿免费视频app| 国产精品一区二区x88av| 亚洲妇女无套内射精| 国产成人在线看| 97免费公开视频| 国产99久久久国产精品潘金网站| 特种兵之深入敌后| 成人午夜碰碰视频| 污污污www精品国产网站| 99久精品国产| 九色porny自拍视频| 国产亚洲精品免费| 天天摸日日摸狠狠添| 国产精品久久久久永久免费观看| 亚洲精品久久久久久国| 一区二区三区免费网站| 日韩精品乱码久久久久久| 精品久久久久久国产| 中文字幕在线日本| 欧美日韩国产免费| 精品人妻少妇AV无码专区 | 91在线观看欧美日韩| 亚洲性视频在线| 久久精品aaaaaa毛片| 国产在视频线精品视频www666| 亚洲精品一区二区三区四区五区| 日韩欧美一区免费| 青青视频免费在线| 亚洲美洲欧洲综合国产一区| 欧美少妇性生活视频| 国产综合色在线| 波多野结衣一二三区| 国产欧美日韩在线观看| 紧身裙女教师波多野结衣| 五月婷婷久久丁香| 在线观看日批视频| 日韩欧美成人一区| 久久经典视频| 欧美wwwxxxx| 欧美日韩大片| 亚洲综合中文字幕在线观看| 欧美一区二区三区红桃小说| 在线观看欧美激情| 99热这里只有精品8| 欧美三级午夜理伦三级富婆| 国产精品一区三区| 国产在线观看h| 亚洲国产精品麻豆| 一卡二卡在线观看| 日韩第一页在线| 黄色的网站在线观看| 欧美一级黄色网| 51社区在线成人免费视频| 日韩电影免费观看高清完整| 欧美日本不卡| 奇米视频888| 久久综合五月天婷婷伊人| 国产高清在线免费观看| 在线看一区二区| 你懂的网站在线| 久久精品国产免费观看| 色黄视频在线观看| ts人妖另类在线| 日韩一区三区| 日韩视频第二页| 成人免费毛片高清视频| 日韩三级久久久| 欧美视频第二页| 日韩精品视频无播放器在线看 | 亚洲男人天堂久| 国产在线拍揄自揄拍视频 | 成人av无码一区二区三区| 中文字幕日韩欧美| 亚洲天堂av影院| 国产精品免费一区二区三区在线观看| 日韩欧美午夜| 亚洲精品视频导航| 久久色成人在线| 成人毛片18女人毛片| 亚洲成人激情在线观看| 成人video亚洲精品| 国产精品一区二区三区成人| 国产欧美一区二区精品久久久| 无码av天堂一区二区三区| 国产成人在线影院| 免费毛片在线播放免费| 欧美一级在线免费| 二区三区在线观看| 成人欧美一区二区三区黑人孕妇| 欧美日韩精品一区二区视频| 日av中文字幕| 国产亚洲va综合人人澡精品| 欧美性猛交bbbbb精品| 日韩精品视频三区| 亚洲天堂导航| 日韩精品极品视频在线观看免费| 亚洲一卡久久| 国产精品无码一区二区三区| 婷婷国产在线综合| 熟妇高潮一区二区三区| 午夜免费日韩视频| 嫩草国产精品入口| 男人天堂网视频| 国产欧美精品在线观看| 国内av在线播放| 精品国产自在精品国产浪潮| 日韩毛片网站| 狠狠干视频网站| 成人精品小蝌蚪| 亚洲精品国产精品乱码| 精品一区二区电影| 日韩av免费| 中文字幕精品—区二区日日骚| 国产在线观看一区二区| 久久国产一级片| 亚洲精品视频久久| 视频精品导航| 99re6这里有精品热视频| 成人av综合一区| 免费观看日批视频| 日韩一区二区三区在线播放| 成人日韩视频| 成人免费aaa| 亚洲国产精品成人久久综合一区| 国产一区二区三区成人| 久久亚洲精品国产亚洲老地址| 日韩三级久久| 欧美日韩亚洲第一| 国产精品国产精品国产专区不蜜| 国产日韩精品suv| 97在线免费观看| 成人综合一区| 国产a级片视频| 91精品1区2区| 怡红院在线播放| 日本一区二区久久精品| 国产在线播精品第三| 国产一级淫片a| 日韩小视频在线| 卡一精品卡二卡三网站乱码| 天堂在线资源视频| 亚洲曰韩产成在线| 成人欧美一区| 国产精品国产三级欧美二区| 久久综合激情| 久草免费在线观看视频| 亚洲午夜av久久乱码| 亚洲精品视频一二三区| 8x8x最新地址| 亚洲国产综合视频在线观看| 1769在线观看| 免费试看一区| 懂色中文一区二区在线播放| 中文在线字幕av|