日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET Core真实管道详解[1]

發布時間:2023/12/10 asp.net 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET Core真实管道详解[1] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ASP.NET Core管道雖然在結構組成上顯得非常簡單,但是在具體實現上卻涉及到太多的對象,所以我們在 《ASP.NET Core管道深度剖析[共4篇]》 中圍繞著一個經過極度簡化的模擬管道講述了真實管道構建的方式以及處理HTTP請求的流程。在這個系列 中,我們會還原構建模擬管道時刻意舍棄和改寫的部分,想讀者朋友們呈現一個真是的HTTP請求處理管道。

ASP.NET Core 的請求處理管道由一個Server和一組有序排列的中間件構成,前者僅僅完成基本的請求監聽、接收和響應的工作,請求接收之后和響應之前的所有工作都交給注冊的中間件來完成。ASP.NET Core的中間件通過一個類型Func<RequestDelegate, RequestDelegate>的委托對象來表示,而RequestDelegate也是一個委托,它代表一項請求處理任務。

目錄
一、一個重要的委托:RequestDelegate
二、描述當前請求的上下文:HttpContext
??? 封裝“特性”的容器:FeatureCollection
???? HttpContext的默認實現:DefaultHttpContext
??? 上下文的創建者:HttpContextFactory
三、管道的注冊者和構建者:ApplicationBuilder
???? ApplicationBuilder的創建者:ApplicationBuilderFactory

一、一個重要的委托:RequestDelegate

當Server接受到抵達的HTTP請求之后,會構建一個描述當前請求的原始上下文,Server的類型決定了這個原始上下文的類型,比如在我們模擬管道默認采用的HttpListenerServer由于采用HttpListener來監聽、接收并響應請求,所以它對應的原始上下文是一個HttpListenerContext對象。但是對于管道的后續部分,即由注冊的中間件構建的鏈表,它們需要采用統一的方式來處理請求,所以Server最終會根據原始的上下文來創建一個抽象的HTTP上下文,后者通過抽象類HttpContext來表示。

我們不僅可以利用這個HttpContext獲取描述當前請求的上下文信息,同樣可以利用它來實現對響應的控制。針對當前請求的任何處理操作總是在么一個上下文中進行,所以一項請求處理任務完全可以抽象成一個類型Func<HttpContext,Task>的委托來表示,實際上具有如下定義的RequestDelegate委托具有類似的定義。

1: public delegate Task RequestDelegate(HttpContext context);

每個中間件都承載著獨立的請求處理任務,它本質上也體現了在當前HttpContext下針對請求的處理操作,那么為什么中間件不直接通過一個RequestDelegate對象來表示,而是表示為一個類型為Func<RequestDelegate, RequestDelegate>的委托對象呢?原因很簡單,中間件并不孤立地存在,所有注冊的中間件最終會根據注冊的先后順序組成一個鏈表,每個中間件不僅僅需要完成各自的請求處理任務外,還需要驅動鏈表中的下一個中間件。

如右圖所示,對于一個由多個Func<RequestDelegate, RequestDelegate>對象組成的中間鏈表來說,某個中間件會將后一個Func<RequestDelegate, RequestDelegate>對象的返回值作為輸入,而自身的返回值則作為前一個中間件的輸入。某個中間件執行之后返回的RequestDelegate對象不僅僅體現了自身對請求的處理操作,而是體現了包含自己和后續中間件一次對請求的處理。那么對于第一個中間件來說,它執行后返回的RequestDelegate對象實際上體現了整個應用對請求的處理邏輯。

二、描述當前請求的上下文:HttpContext

對當前上下文的抽象解除了管道對具體服務器類型的依賴, 這使我們為ASP.NET Core應用自由地選擇寄宿方式,而不是像傳統的ASP.NET應用一樣只能寄宿在IIS之中。抽象HTTP上下文的目的是為了實現對請求處理流程的抽象,只有這樣我們才能將針對請求的某項操作體現在一個標準的中間件上,有這個這個標準化的中間件才有所謂的請求處理管道。

ASP.NET Core通過具有如下所示的HttpContext類來表示這么一個抽象的HTTP上下文。對于一個HttpContext對象來說,它的核心體現在用于描述請求和響應的Request和Response屬性之上。除此之外,我們還可以通過獲取與當前請求相關的其他上下文信息,比如用來控制用戶認證的AuthenticationManager對象和代表當前請求用戶的ClaimsPrincipal對象,描述當前HTTP連接的ConnectionInfo對象和用于控制WebSocket的WebSocketManager。我們還可以獲取并控制當前會話,也可以獲取或者設置調試追蹤的ID。

1: public abstract class HttpContext 2: { 3:? 4: public abstract HttpRequest Request { get; } 5: public abstract HttpResponse Response { get; } 6:? 7: public abstract AuthenticationManager Authentication { get; } 8: public abstract ClaimsPrincipal User { get; set; } 9: public abstract ConnectionInfo Connection { get; } 10: public abstract WebSocketManager WebSockets { get; } 11: public abstract ISession Session { get; set; } 12: public abstract string TraceIdentifier { get; set; } 13: public abstract CancellationToken RequestAborted { get; set; } 14: public abstract IDictionary<object, object> Items { get; set; } 15:? 16: public abstract IServiceProvider RequestServices { get; set; } 17: public abstract IFeatureCollection Features { get; } 18: }

當需要中指對請求的處理時,我們可以通過為RequestAborted屬性設置一個CancellationToken對象從而將終止通知發送給管道。如果需要對整個管道共享一些與當前上下文相關的數據,我們可以將它保存在通過Items屬性表示的字典中。我們一再提到依賴注入被廣泛地應用ASP.NET Core管道中,HttpContext的RequestServices屬性返回利用應用啟動時設置的服務注冊信息創建的ServiceProvider,只要相應的服務被預先注冊到指定的服務接口上,我們就可能利用這個ServiceProvider根據這個接口得到對應的服務對象。

1: public abstract class HttpRequest 2: { 3: public abstract HttpContext HttpContext { get; } 4: public abstract string Method { get; set; } 5: public abstract string Scheme { get; set; } 6: public abstract bool IsHttps { get; set; } 7: public abstract HostString Host { get; set; } 8: public abstract PathString PathBase { get; set; } 9: public abstract PathString Path { get; set; } 10: public abstract QueryString QueryString { get; set; } 11: public abstract IQueryCollection Query { get; set; } 12: public abstract string Protocol { get; set; } 13: public abstract IHeaderDictionary Headers { get; } > 14: public abstract IRequestCookieCollection Cookies { get; set; } 15: public abstract string ContentType { get; set; } 16: public abstract Stream Body { get; set; } 17: public abstract bool HasFormContentType { get; } 18: public abstract IFormCollection Form { get; set; } 19:? 20: public abstract Task<IFormCollection> ReadFormAsync(CancellationToken cancellationToken); 21: }

在了解HttpContext表示請求的抽象類HttpRequest之后,我們再來認識一個與之相對的HttpResponse類型。如下面的代碼片斷所示,HttpResponse依然是一個抽象類,我們可以通過定義在它之上的屬性和方法來控制對請求的響應。從原則上講,我們對請求的所做的任意類型的響應都可以利用它來說實現。

1: public abstract class HttpResponse 2: { 3: public abstract HttpContext HttpContext { get; } 4: public abstract int StatusCode { get; set; } 5: public abstract IHeaderDictionary Headers { get; } 6: public abstract Stream Body { get; set; } 7: public abstract long? ContentLength { get; set; } 8: public abstract IResponseCookies Cookies { get; } 9: public abstract bool HasStarted { get; } 10:? 11: public abstract void OnStarting(Func<object, Task> callback, object state); 12: public virtual void OnStarting(Func<Task> callback); 13: public abstract void OnCompleted(Func<object, Task> callback, object state); 14: public virtual void RegisterForDispose(IDisposable disposable); 15: public virtual void OnCompleted(Func<Task> callback); 16: public virtual void Redirect(string location); 17: public abstract void Redirect(string location, bool permanent); 18: }

當我們通過表示當前上下文的HttpContext對象得到表示響應的HttpResponse之后,我們可以不僅僅將希望的內容寫入響應消息的主體,還可以設置響應狀態碼以及添加相應的首部。表2列出了定義在HttpResponse中的所有屬性和方法所代表的含義。

封裝“特性”的容器:FeatureCollection

HttpContext的另一個只讀屬性Features體現了HTTP上下文抽象的實現方式。Server在接收到請求之后會創建一個原始的上下文,管道不僅僅利用這個原始上下文來獲取與請求相關的信息,它對請求的最終響應實際上也是通過這個原始上下文來完成的。所以對一個HttpContext對象來說,有它描述的上下文信息不僅僅來源于這個原始的上下文,我們針對HttpContext所做的任何響應操作最終都需要分發給這個原始上下文來完成, 否則是不會生效的。HttpContext和由Server創建的原始上下文之間的“雙向綁定”究竟是如何實現的呢?

這個所謂的“雙向綁定”即使其實很簡單。當原始上下文被創建出來之后,Server會將它封裝成一系列標準的特性對象,HttpContext正式針對這些特性對象而創建的。這些對象所對應的類型均實現了標準的接口,接口中不僅僅定義相應的屬性來讀寫原始上下文中描述的信息,還定義了相應的方法來操作原始上下文。HttpContext的屬性Features返回的就是這組特性對象的集合,它的返回類型為IFeatureCollection,我們將實現了該接口的類型以及對應的對象統稱為FeatureCollection。

1: public interface IFeatureCollection : IEnumerable<KeyValuePair<Type, object>> 2: { 3: TFeature Get<TFeature>(); 4: void Set<TFeature>(TFeature instance); 5:? 6: bool IsReadOnly { get; } 7: object this[Type key] { get; set; } 8: int Revision { get; } 9: }

一個FeatureCollection對象本質上就是一個Key和Value分別為Type和Object類型的字段。我們通過調用Set方法將一個特性對象針對指定的類型(一般為特性接口)注冊到這個字典對象上,并通過Get方法根據注冊的類型獲取它,特性對象的注冊和獲取也可以利用定義的索引來完成。如果IsReadOnly屬性返回True,我們將不能注冊新的特性或者修改已經注冊的特性。 整數類型的之都屬性Revision可以視為整個FeatureCollection對象的版本,不論是采用何種方式注冊新的特性還是修改現有的特性,這個屬性的值都將改變。

具有如下定義的FeatureCollection類實現了IFeatureCollection接口,我們默認使用的FeatureCollection就是這么一個類型的對象。FeatureCollection具有兩個構造函數重載,默認無參構造函數幫助我們創建一個空的特性集合,另一個構造函數則需要指定一個FeatureCollection對象來提供默認特性。對于采用第二個構造函數重載創建的 FeatureCollection對象來說,如果我們通過指定某個特性接口類型試圖獲取對應的特性對象時,如果對應的特性沒有注冊到當前FeatureCollection對象上,而是注冊到提供默認特性的FeatureCollection對象上,后者將會與提供最終的特性。

1: public class FeatureCollection : IFeatureCollection 2: { 3: //其他成員 4: public FeatureCollection(); 5: public FeatureCollection(IFeatureCollection defaults); 6: }

對于FeatureCollection類型來說,它 的IsReadOnly總是返回False,所以它永遠是可讀可寫的。對于調用默認無參構造函數創建的FeatureCollection對象來說,它 的Revision默認返回零。如果我們通過指定另一個FeatureCollection對象為參數調用第二個構造函數來創建一個FeatureCollection對象,前者的Revision屬性值將成為后者同名屬性的默認值。不論我們采用何種形式(調用Set方法或者索引)添加一個新的特性或者改變了一個已經注冊的特性,FeatureCollection對象的Revision屬性都將自動遞增。上述的這些關于FeatureCollection的特性都體現在如下所示的代碼片段中。

1: FeatureCollection defaults = new FeatureCollection(); 2: Debug.Assert(defaults.Revision == 0); 3:? 4: defaults.Set<IFoo>(new Foo()); 5: Debug.Assert(defaults.Revision == 1); 6:? 7: defaults[typeof(IBar)] = new Bar(); 8: Debug.Assert(defaults.Revision == 2); 9:? 10: FeatureCollection features = new FeatureCollection(defaults); 11: Debug.Assert(features.Revision == 2); 12: Debug.Assert(features.Get<IFoo>().GetType() == typeof(Foo)); 13:? 14: features.Set<IBaz>(new Baz()); 15: Debug.Assert(features.Revision == 3);

HttpContext的默認實現:DefaultHttpContext

ASP.NET Core默認使用的HttpContext類型為DefaultHttpContext,上面我們介紹的針對描述原始上下文“特性集合”來創建HttpContext的策略就體現在這個類型之上。DefaultHttpContext具有一個如下的構造函數,作為參數的FeatureCollection對象就是這么一個特性集合。

1: public class DefaultHttpContext : HttpContext 2: { 3: public DefaultHttpContext(IFeatureCollection features); 4: }

不論是對于組成管道的中間件還是建立在管道上的應用,在默認的情況下都是利用這個DefaultHttpContext對象來獲取請求的相關信息,同時也是利用這個對象來控制最終發送的響應。但是DefaultHttpContext對象這個這個過程中僅僅是一個“代理”,針對它的調用(屬性或者方法)最終都需要轉發給由具體Server創建的那個原始上下文,在構造函數中指定的這個FeatureCollection對象所代表的特性集合成為了兩者溝通的唯一渠道。對應定義在DefaultHttpContext中的所有屬性,它們幾乎都具有一個對應的特性,這些特性都對應著一個接口。表3列出了部分特性接口以及DefaultHttpContext對應的屬性。

描述原始HTTP上下文的特性接口

接口

屬性

描述

IHttpRequestFeature

Request

獲取描述請求的基本信息

IHttpResponseFeature

Response

控制對請求的響應

IHttpAuthenticationFeature

AuthenticationManger/User

提供完成用戶認證的AuthenticationHandler對象和表示當前用戶的ClaimsPrincipal對象

IHttpConnectionFeature

Connection

提供描述當前HTTP連接的基本信息。

IItemsFeature

Items

提供用戶存放針對當前請求的對象容器。

IHttpRequestLifetimeFeature

RequestAborted

傳遞請求處理取消通知和中止當前請求處理。

IServiceProvidersFeature

RequestServices

提供根據服務注冊創建的ServiceProvider。

ISessionFeature

Session

提供描述當前會話的Session對象。

IHttpRequestIdentifierFeature

TraceIdentifier

為追蹤日志(Trace)提供針對當前請求的唯一標識。

IHttpWebSocketFeature

WebSockets

管理WebSocket

?

對于上面列出的眾多特性接口,在后續相關章節中都會涉及到,所以我們只需要了解一下兩個最重要的特性接口,即表示請求和響應的IHttpRequestFeature和IHttpResponseFeature。從下面給出的代碼片斷我們不難看出,這兩個接口的定義分別與抽象類HttpRequest和HttpResponse具有一致的定義。對于DefaultHttpContext類型來說,它的Request和Response屬性分別返回的是一個DefaultHttpRequest和DefaultHttpResponse對象。DefaultHttpRequest和DefaultHttpResponse分別繼承自HttpRequest和HttpResponse,它們分別利用這個兩個特性實現了從基類繼承下來的所有抽象成員。

1: public interface IHttpRequestFeature 2: { 3: Stream Body { get; set; } 4: IHeaderDictionary Headers { get; set; } 5: string Method { get; set; } 6: string Path { get; set; } 7: string PathBase { get; set; } 8: string Protocol { get; set; } 9: string QueryString { get; set; } 10: string Scheme { get; set; } 11: } 12: 13: public interface IHttpResponseFeature 14: { 15: Stream Body { get; set; } 16: bool HasStarted { get; } 17: IHeaderDictionary Headers { get; set; } 18: string ReasonPhrase { get; set; } 19: int StatusCode { get; set; } 20:? 21: void OnCompleted(Func<object, Task> callback, object state); 22: void OnStarting(Func<object, Task> callback, object state); 23: }

對于實現請求監聽、接收和響應的Server來說,它們都需要通過實現上面這些特性接口來定義針對性的特性類。如下圖所示,當成功接收到請求之后,Server會創建相應的特性并將它們組合成一個FeatureCollection對象,最后創建出一個DefaultHttpContext對象,我們注冊的所有中間件針對這個DefaultHttpContext完成各自的請求處理工作。

上下文的創建者:HttpContextFactory

在Server接收到抵達的請求時,它并不會直接利用原始的上下文去創建HttpContext對象,HttpContext在管道中的創建是間接地通過HttpContextFactory來完成的。 HttpContextFactory是對所有實現了IHttpContextFactory接口的所有類型及其對象的統稱,如下面的代碼片段所示,IHttpContextFactory接口除了定義創建HttpContext對象的Create方法之外,還定義了另一個方法Dispose來釋放指定的HttpContext對象。HttpContextFactory類是該接口的默認實現者,由它的Create方法創建并返回的自然是一個DefaultHttpContext對象。

1: public interface IHttpContextFactory 2: { 3: HttpContext Create(IFeatureCollection featureCollection); 4: void Dispose(HttpContext httpContext); 5: } 6:? 7: public class HttpContextFactory : IHttpContextFactory 8: { 9: //省略其他成員 10: public HttpContext Create(IFeatureCollection featureCollection); 11: public void Dispose(HttpContext httpContext); 12: }


三、管道的注冊者和構建者:ApplicationBuilder

以類型為Func<RequestDelegate, RequestDelegate>的委托對象表示的中間件需要在啟動的時候注冊到應用程序上,所有注冊的中間件最終會轉換成一個RequestDelegate對象,它們按照注冊順序對請求的處理流程最終體現在對這個委托對象的執行。不論是最終將中間件轉換成RequestDelegate對象,還是最初對它們的注冊,都是通過一個ApplicationBuilder對象來完成的。

ApplicationBuilder是我們對所有實現了IApplicationBuilder接口的所有類型以及對應對象的統稱。接口IApplicationBuilder定義如下,針對中間件的注冊和RequestDelegate對象的生成分別通過調用它的Use和Build方法來完成。除了這兩個核心方法,IApplicationBuilder接口還定義了三個屬性,其中ApplicationServices返回根據最初服務注冊生成的ServiceProvider對象,而ServerFeatures屬性返回的FeatureCollection對象是描述Server的特性集合。字典類型的Properties屬性用戶存儲任意自定義的屬性,而New方法會根據自己“克隆”出一個新的ApplicationBuilder對象,這兩個ApplicationBuilder對象應用具有相同的屬性集合。

1: public interface IApplicationBuilder 2: { 3: IServiceProvider ApplicationServices { get; set; } 4: IFeatureCollection ServerFeatures { get; } 5: IDictionary<string, object> Properties { get; } 6:? 7: RequestDelegate Build(); 8: IApplicationBuilder New(); 9: IApplicationBuilder Use(Func<RequestDelegate, RequestDelegate> middleware); 10: }

具有如下定義的ApplicationBuilder類型是對IApplicationBuilder接口的默認實現。ApplicationBuilder類型利用一個List<Func<RequestDelegate, RequestDelegate>>對象來保存注冊的中間件,所以Use方法只需要將指定的中間件添加到這個列表中即可,而Build方法只需要逆序調用這些注冊的中間件對應的Func<RequestDelegate, RequestDelegate>對象就能得到我們需要的RequestDelegate對象。值得一提的是,Build方法實際上在中間件鏈條的尾部添加了一個額外的中間件,該中間件會負責將響應狀態碼設置為404,如果我們沒有注冊一個中間件對請求作最終的響應(這樣的中間件將不會試圖調用后續中間件),整個管道比較回復一個狀態碼為404的響應。

1: public class ApplicationBuilder : IApplicationBuilder 2: { 3: private readonly IList<Func<RequestDelegate, RequestDelegate>> middlewares = new List<Func<RequestDelegate, RequestDelegate>>(); 4:? 5: public IDictionary<string, object> Properties { get; } 6:? 7: public IServiceProvider ApplicationServices 8: { 9: get { return GetProperty<IServiceProvider>("application.Services"); } 10: set { SetProperty<IServiceProvider>("application.Services", value); } 11: } 12:? 13: public IFeatureCollection ServerFeatures 14: { 15: get { return GetProperty<IFeatureCollection>("server.Features"); } 16: } 17:? 18:? 19: public ApplicationBuilder(IServiceProvider serviceProvider) 20: { 21: this.Properties = new Dictionary<string, object>(); 22: ApplicationServices = serviceProvider; 23: } 24:? 25: public ApplicationBuilder(IServiceProvider serviceProvider, object server) : this(serviceProvider) 26: { 27: SetProperty("server.Features", server); 28: } 29:? 30: public IApplicationBuilder Use(Func<RequestDelegate, RequestDelegate> middleware) 31: { 32: middlewares.Add(middleware); 33: return this; 34: } 35:? 36: public IApplicationBuilder New() 37: { 38: return new ApplicationBuilder(this); 39: } 40:? 41: public RequestDelegate Build() 42: { 43: RequestDelegate app = context => 44: { 45: context.Response.StatusCode = 404; 46: return Task.FromResult(0); 47: }; 48: foreach (var component in middlewares.Reverse()) 49: { 50: app = component(app); 51: } 52: return app; 53: } 54:? 55: private ApplicationBuilder(ApplicationBuilder builder) 56: { 57: this.Properties = builder.Properties; 58: } 59:? 60: private T GetProperty<T>(string key) 61: { 62: object value; 63: return Properties.TryGetValue(key, out value) ? (T)value : default(T); 64: } 65:? 66: private void SetProperty<T>(string key, T value) 67: { 68: this.Properties[key] = value; 69: } 70: }

通過上面的代碼片段我們不難看到,不論是通過ApplicationServices屬性返回的ServiceProvider對象,還是通過ServerFeatures屬性返回的用戶描述Server特性的FeatureCollection對象,它們實際上都保存在通過Properties屬性返回字典對象上。ApplicationBuilder具有兩個公共構造函數重載,它們具有一個公共的參數,及初始化ApplicationServices屬性的參數serviceProvider。

一個構造函數具有一個名為server的參數,但是這個參數并不是表示管道使用的Server,而是描述Server相關特性的FeatureCollection對象,不過這個參數類型并定義成Object,而不是IFeatureCollection接口。New方法直接調用私有構造函數創建出一個新的ApplicationBuilder對象,這個對象與自己的Properties屬性共享同一個字典對象,由于ApplicationServices和ServerFeatures屬性的返回值也存放在這個字典對象上,所以New方法得到的ApplicationBuilder對象與自身對象在功能上是等效的。

ApplicationBuilder的創建者:ApplicationBuilderFactory

ApplicationBuilderFactory是ASP.NET Core它用來創建ApplicationBuilder的工廠,它是對所有實現了接口IApplicationBuilderFactory的所有類型以及對應對象的統稱。如下面的代碼片段所示,該接口定義了唯一個方法CreateBuilder根據提供的FeatureCollection對象創建出對應的ApplicationBuilder對象,這個FeatureCollection對象正是表示描述Server的特性集合。ApplicationBuilderFactory類型是該接口的默認實現者,當CreateBuilder方法被調用的時候,它會直接將構造時提供ServiceProvider對象和serverFeatures參數表示的FeatureCollection對象來創建返回的ApplicationBuilder對象。

1: public interface IApplicationBuilderFactory 2: { 3: IApplicationBuilder CreateBuilder(IFeatureCollection serverFeatures); 4: } 5:? 6: public class ApplicationBuilderFactory : IApplicationBuilderFactory 7: { 8: private readonly IServiceProvider _serviceProvider; 9:? 10: public ApplicationBuilderFactory(IServiceProvider serviceProvider) 11: { 12: this._serviceProvider = serviceProvider; 13: } 14:? 15: public IApplicationBuilder CreateBuilder(IFeatureCollection serverFeatures) 16: { 17: return new ApplicationBuilder(this._serviceProvider, serverFeatures); 18: } 19: }

總結

以上是生活随笔為你收集整理的ASP.NET Core真实管道详解[1]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

日韩av高潮 | 亚洲91网站| 亚洲欧美视频在线播放 | 国产福利一区二区三区视频 | 最新中文字幕在线观看视频 | 亚洲综合成人在线 | 96久久 | www.亚洲| 四虎最新入口 | 四虎免费av | 久久成视频| 成人小视频在线播放 | 亚洲欧美国产精品久久久久 | 黄污视频大全 | 涩涩网站在线播放 | 久久久久福利视频 | 久久精品直播 | 色吊丝av中文字幕 | 91在线播 | 国产啊v在线观看 | 99久久精品国产一区二区三区 | 亚洲国产精品小视频 | 欧美午夜性生活 | 久久免费看毛片 | 又长又大又黑又粗欧美 | 视频一区二区国产 | 视频在线99 | 在线有码中文 | 亚洲欧美日韩国产一区二区 | 激情欧美一区二区三区免费看 | 亚洲精品成人av在线 | 欧洲性视频 | 国产美女视频网站 | 亚洲国产欧美在线人成大黄瓜 | 成人黄色片在线播放 | 婷婷综合在线 | 久久人人爽人人爽人人片 | 久久免费中文视频 | 国产婷婷色 | 九色精品在线 | 色噜噜狠狠狠狠色综合久不 | 久久免费在线观看视频 | 久久久久看片 | 国产91大片 | 人人搞人人爽 | 国产精品无av码在线观看 | 激情欧美一区二区三区免费看 | 日本久久影视 | 中文成人字幕 | 久久久久久久久久久久电影 | 国产一级淫片在线观看 | 中文字幕精品一区二区精品 | 欧美激情在线网站 | 色综合久久精品 | 欧美巨乳波霸 | 中文字幕国产 | 国产精品亚洲视频 | 日韩欧美电影网 | 黄污视频大全 | 色婷婷综合视频在线观看 | 久久精彩免费视频 | 狂野欧美激情性xxxx | 精品国偷自产在线 | 男女全黄一级一级高潮免费看 | 国产老太婆免费交性大片 | 成年人黄色av | 久久久久国产成人免费精品免费 | 超薄丝袜一二三区 | 天天干天天插 | 国产一级免费观看视频 | 在线免费观看麻豆 | 日韩久久精品一区二区 | av综合在线观看 | 96久久久 | 久久美女免费视频 | 国产亚洲精品久久19p | 中文字幕在线观 | 国产手机av在线 | av电影av在线| 91黄色视屏 | 久久精品成人欧美大片古装 | 91av视频网站| 久久综合给合久久狠狠色 | 9999在线| 天天干天天干天天干 | 国产精品久久久久久久久久不蜜月 | 国产精品久久久久久久久久新婚 | 热久久精品在线 | 日韩精品免费一区二区在线观看 | 久久99在线 | 国产一区在线观看免费 | 亚洲涩涩色 | 天天爽天天碰狠狠添 | 日韩av快播电影网 | 国产大陆亚洲精品国产 | 福利片视频区 | 国产精品亚洲视频 | 免费视频a | 国产精品久久久久久久电影 | 久久久久久福利 | 黄色av网站在线观看 | 中文乱码视频在线观看 | 天天玩夜夜操 | 精品国产乱码久久久久久天美 | 国产精品一区二区三区在线免费观看 | 激情开心站 | 中文字幕在线播放一区 | 最新免费中文字幕 | 精品国产乱码久久久久久1区2匹 | 婷婷五月在线视频 | 欧美日韩不卡一区二区 | 激情偷乱人伦小说视频在线观看 | 久久不射网站 | av色综合网 | 欧美精品你懂的 | 一本一道波多野毛片中文在线 | 99精品视频精品精品视频 | 五月天婷亚洲天综合网精品偷 | 欧美日韩在线观看一区 | 国产一级黄大片 | 久久久免费观看完整版 | 久久久久久网站 | www.日韩免费 | 欧美另类美少妇69xxxx | 久久三级毛片 | 天天在线免费视频 | 奇米网777 | 超碰999 | 日韩欧美在线视频一区二区 | 99视频精品 | 久久久综合色 | 亚洲成色777777在线观看影院 | 欧美a级在线免费观看 | 99热最新网址 | 日韩在线不卡av | 日本女人b | 婷婷免费视频 | 久久国产精品久久w女人spa | 久久久久亚洲最大xxxx | 日韩成人在线一区二区 | 欧美成人在线免费观看 | 亚洲日本欧美 | 久久成人视屏 | 日韩精品中文字幕一区二区 | 成人免费毛片aaaaaa片 | 亚洲精品小视频在线观看 | 国产精品 国产精品 | 亚洲精品合集 | 曰本三级在线 | 在线 国产 亚洲 欧美 | 欧美日比视频 | 色国产在线 | 一区中文字幕在线观看 | 亚洲无人区小视频 | 色先锋资源网 | 99精品国自产在线 | www.亚洲| 国产一区在线视频 | 波多野结衣视频一区二区 | 国产精品av免费在线观看 | 伊人天天色| 成人亚洲综合 | 欧美嫩草影院 | 天天夜夜操 | 99免费在线观看视频 | 国产精品国产三级在线专区 | 五月综合激情网 | 国产九色视频在线观看 | 精品国产_亚洲人成在线 | 九九视频免费观看视频精品 | 欧美激情综合色综合啪啪五月 | 992tv在线| 欧美a级在线 | 国内精品久久久久久久久久久久 | 中文av在线免费观看 | 一级国产视频 | 国产专区一 | 中文字幕有码在线播放 | 国产午夜一级毛片 | 精品久久久久久久久久久久久久久久 | av在线免费网 | 欧美一二三视频 | 亚洲四虎| 国产精品久久久久久久久久久久午夜 | 国产中文字幕在线观看 | 免费视频一二三 | 亚洲国产精品小视频 | 久久久亚洲影院 | 国产经典av | 97碰碰碰| 九七在线视频 | 国产超碰在线 | 久久久免费电影 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 日韩免费播放 | 国产成人一区二区三区免费看 | 国产区精品在线 | 日本狠狠色 | 国产无遮挡猛进猛出免费软件 | 久久国产热| 国产日本亚洲 | 在线观看免费国产小视频 | 日韩在线视频线视频免费网站 | 国产一级二级视频 | 欧美日韩性视频 | 午夜精品久久久久久久99水蜜桃 | 久久电影中文字幕视频 | 国产日韩在线观看一区 | 99在线免费视频 | 亚洲二级片 | 久草热视频| 久草网视频 | 日本黄区免费视频观看 | 国产裸体永久免费视频网站 | 91九色国产蝌蚪 | 一区二区精品久久 | 在线观看爱爱视频 | 欧美大片第1页 | 97久久精品午夜一区二区 | 日韩r级电影在线观看 | 天天撸夜夜操 | 亚洲一一在线 | 日韩欧美在线观看一区二区三区 | 久久噜噜少妇网站 | 三级黄色a| 天天操偷偷干 | 日韩a在线 | 久久66热这里只有精品 | 香蕉视频在线网站 | 色噜噜狠狠狠狠色综合久不 | 国产精品99精品 | 精品亚洲免费 | 国产在线一线 | 日本久久久影视 | 色综合亚洲精品激情狠狠 | 久久精品成人热国产成 | 毛片永久免费 | 最新av网址在线观看 | 久久在线视频精品 | 在线v片免费观看视频 | 精品国产成人av在线免 | 免费日韩一级片 | 国产精品成人一区二区三区吃奶 | 五月天丁香视频 | 九色porny真实丨国产18 | 一区二区欧美日韩 | 黄色免费大片 | 亚洲涩涩色| 丝袜美腿在线视频 | aaa免费毛片| 国产精品国产三级国产aⅴ入口 | 久久精品美女 | 中文字幕精品一区二区三区电影 | 爱色婷婷| 日韩中文字幕一区 | 中文字幕在线免费 | 成人免费毛片aaaaaa片 | 91九色porny蝌蚪视频 | 看污网站 | 天天操天天射天天爽 | 成人黄视频 | 亚洲专区中文字幕 | 欧美国产不卡 | 欧美 日韩精品 | 欧美大片在线看免费观看 | 欧美精品久久久久久 | 四季av综合网站 | 欧美二区视频 | 日本中文字幕视频 | 深爱激情综合网 | 麻豆视频免费播放 | 欧美成人xxx | 五月天综合激情 | 免费三级av| 麻豆视频国产精品 | 狂野欧美激情性xxxx | 中文字幕在线观看网址 | 黄av在线 | 激情五月视频 | 午夜久久久久久久 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 久久看片网 | 人人爽人人爽 | 99成人免费视频 | 欧美性猛片,| www夜夜操 | 中文字幕你懂的 | 久久超碰97| 98涩涩国产露脸精品国产网 | 1000部国产精品成人观看 | 天堂资源在线观看视频 | 亚洲精品免费在线 | 超碰在线公开 | 69精品人人人人 | 国内揄拍国产精品 | 国产99免费视频 | 在线日韩一区 | 99热国产在线| 日韩黄色软件 | 豆豆色资源网xfplay | 久av在线| 久久久国产精品一区二区中文 | 日韩com| 久久99久久99精品免视看婷婷 | 色天天中文 | 国产高清在线永久 | 日日夜夜中文字幕 | 深夜免费网站 | 91精品国产自产老师啪 | 最新中文字幕在线资源 | 久久国产精品99久久久久久老狼 | 国产成人黄色片 | 欧美人人 | 欧美另类亚洲 | 少妇高潮流白浆在线观看 | av 在线观看 | 亚洲va欧美va国产va黑人 | 99久高清在线观看视频99精品热在线观看视频 | 四虎8848免费高清在线观看 | 77国产精品 | 在线国产精品视频 | 一区二区三区在线免费播放 | 丁香高清视频在线看看 | 毛片网在线 | 色综合天天天天做夜夜夜夜做 | 亚洲一级电影 | 日韩黄色影院 | 狠狠狠色丁香综合久久天下网 | 91av在线免费播放 | 国产高清在线免费视频 | 粉嫩av一区二区三区四区 | 九九九九热精品免费视频点播观看 | 在线小视频你懂的 | 97精品在线观看 | 欧美韩国在线 | 欧美日韩在线视频一区 | 中文字幕亚洲精品日韩 | 国产一区电影在线观看 | 国产精品久久久久一区二区国产 | 国产不卡一二三区 | 99精品视频精品精品视频 | 91亚洲狠狠婷婷综合久久久 | 男女拍拍免费视频 | 97**国产露脸精品国产 | 欧美日韩中文字幕综合视频 | 成人一级影视 | 久草视频免费看 | 在线观看片 | 欧美久久久久久久久中文字幕 | 天天摸天天操天天舔 | 98超碰在线| 亚洲国产精品传媒在线观看 | 精品91在线 | 超碰在线日韩 | www.超碰| 91精品国产91久久久久久三级 | 男女精品久久 | 免费网址在线播放 | 国产精品九九视频 | 色婷婷视频在线观看 | 在线成人欧美 | 久久综合九色综合97_ 久久久 | 久久久资源| 91精品秘密在线观看 | 国产精品一区免费在线观看 | 17videosex性欧美 | 国产不卡精品视频 | 麻豆传媒视频观看 | 97国产大学生情侣白嫩酒店 | 久久婷综合 | 色激情五月 | 91色影院| av在线播放快速免费阴 | 五月天婷亚洲天综合网鲁鲁鲁 | 日本黄色大片儿 | 欧美性色19p | 一区二区三区免费看 | 亚洲人天堂| 国产一区二区三区免费在线 | 99精品视频在线 | 国产成人精品一区二区三区网站观看 | 国产成人精品福利 | 99热这里只有精品久久 | 一区av在线播放 | 激情视频一区二区三区 | 国产精品自在线 | 男女啪啪网站 | 六月丁香激情综合色啪小说 | 人人看人人爱 | 久久精品国产成人精品 | 国内揄拍国产精品 | 综合在线观看色 | 午夜国产在线 | 99视频精品 | 黄色影院在线免费观看 | 精品久久久久久电影 | 色一级片 | 成人资源在线观看 | 波多野结依在线观看 | 成年人免费看的视频 | 天天操夜夜摸 | 一级成人免费视频 | 久久电影色 | 96精品视频 | 亚洲精品成人在线 | 一区 二区电影免费在线观看 | 日韩 在线观看 | 99久精品| 韩国一区二区av | 免费的国产精品 | 精品久久国产精品 | 国产精品久久久久久久毛片 | 激情黄色一级片 | 成人免费在线观看av | 人人干人人干人人干 | 免费看黄在线看 | 国产精品国内免费一区二区三区 | 成人av在线播放网站 | 国产精品亚州 | 国产精品女同一区二区三区久久夜 | 91麻豆精品国产91久久久久久 | 黄色免费观看网址 | 成人久久久久久久久久 | 久久精品香蕉视频 | 91精品国产自产老师啪 | 狂野欧美激情性xxxx欧美 | 一本一道久久a久久综合蜜桃 | 亚洲视频六区 | 亚洲视频h | 免费观看性生交 | 久久99精品久久久久蜜臀 | 亚洲成人黄色 | 91毛片在线观看 | 久久久久国产精品免费免费搜索 | 久久久亚洲国产精品麻豆综合天堂 | 久久久久夜色 | 永久免费毛片在线观看 | 欧美怡红院 | 在线亚洲午夜片av大片 | 国产一区二区久久精品 | 久久香蕉国产 | 亚洲专区在线播放 | 久久久久成人免费 | 国产在线国偷精品产拍免费yy | 中文字幕a∨在线乱码免费看 | 天天干视频在线 | 国产精品久久久久四虎 | 国产高清免费 | 亚洲黄色免费观看 | 国产亚洲综合性久久久影院 | 亚洲欧美成人综合 | 欧美成人区| 亚洲一二视频 | 日日夜夜操av | 99热这里只有精品国产首页 | 国产精品破处视频 | 激情五月看片 | 午夜精品久久久久久久99热影院 | 国产精品久久久久婷婷 | 国产成人在线观看免费 | 成人av电影在线播放 | 成人精品影视 | 香蕉日日| 人人干,人人爽 | 人人狠狠综合久久亚洲婷 | 97碰在线| 久久91久久久久麻豆精品 | 91麻豆精品国产91久久久无需广告 | 蜜桃视频日韩 | 成 人 黄 色 免费播放 | 久久亚洲专区 | 2019中文字幕第一页 | 国产精品99久久免费黑人 | 国产一区成人 | 日日碰狠狠躁久久躁综合网 | 国内精品久久影院 | 日韩啪啪小视频 | 一区二区激情视频 | 欧美一级黄色视屏 | 高清有码中文字幕 | 午夜丰满寂寞少妇精品 | 精品人人人人 | 人人舔人人 | 99精品久久只有精品 | 色噜噜噜噜| 视频91| 在线免费看片 | 久草视频在线观 | 日韩精品久久久久久久电影竹菊 | 狠狠地日 | 91麻豆精品国产91久久久更新时间 | 香蕉视频免费在线播放 | 99精品在线免费在线观看 | 中文字幕日韩电影 | 日韩福利在线观看 | 日韩在线精品一区 | 2024国产精品视频 | 亚洲免费不卡 | 最近最新最好看中文视频 | 久久国产热视频 | 九色视频网站 | 91精品婷婷国产综合久久蝌蚪 | 91超级碰 | 热久久免费视频精品 | 99精品乱码国产在线观看 | 亚洲一二区精品 | 亚洲精品在线电影 | 国产在线观看你懂得 | 欧美黄网站| 婷婷国产一区二区三区 | 免费观看91视频 | 欧美一区二区伦理片 | 五月网婷婷 | 性色大片在线观看 | 日产av在线播放 | 精品久久久久一区二区国产 | 久久综合99 | 日色在线视频 | 久草在线观看资源 | 91精品视频播放 | 91麻豆精品国产91久久久无需广告 | 欧美 日韩精品 | 国产精品一区二区三区免费视频 | 国产男女无遮挡猛进猛出在线观看 | 国产短视频在线播放 | 免费看黄色大全 | 日b视频在线观看网址 | 日韩在线电影一区二区 | 丁香色婷 | 天天躁天天操 | 91丨九色丨国产在线观看 | 亚洲成av| 久久嗨 | 99精品在线免费视频 | 国产成人性色生活片 | 狠狠狠的干 | 9i看片成人免费看片 | 欧美精品一区二区蜜臀亚洲 | 四虎小视频| 99一级片| 国产黄色特级片 | 久久不射电影院 | 中文字幕a在线 | 伊人影院得得 | 日韩av男人的天堂 | 国产伦理久久精品久久久久_ | 久久精品99国产精品亚洲最刺激 | 天天操天天色天天射 | 91高清视频在线 | 亚洲国产wwwccc36天堂 | 热热热热热色 | 顶级欧美色妇4khd | 中文字幕在线不卡国产视频 | 91传媒在线观看 | 在线视频日韩欧美 | 成人影视免费看 | 日韩videos高潮hd | av免费在线观看网站 | 亚洲精欧美一区二区精品 | 又黄又爽又色无遮挡免费 | 亚洲欧洲精品久久 | 欧女人精69xxxxxx | 欧美性大战 | 99久久久国产精品免费观看 | 一区二区在线电影 | 中文字幕高清 | 在线高清 | 欧美精品久久99 | 中文字幕色网站 | 97高清视频 | 在线观看日韩一区 | 嫩草av影院 | 最新中文字幕视频 | 最近日韩免费视频 | 五月色婷 | 91在线小视频 | 91av短视频| 91亚色视频 | 日韩成人免费电影 | 国产精品男女啪啪 | 国产成人精品999在线观看 | 91精品一区二区三区蜜桃 | 国产一区二区三区午夜 | av超碰在线 | 美女视频黄的免费的 | 日韩在线免费不卡 | 探花国产在线 | 91精品免费看 | 国产免费一区二区三区网站免费 | 一区 二区电影免费在线观看 | 国产综合久久 | 久久免费久久 | 久久精品精品电影网 | 日本韩国精品一区二区在线观看 | 婷婷六月综合亚洲 | 高清久久久久久 | 日日夜夜网| 91九色最新地址 | 免费成人在线电影 | 视频一区亚洲 | 欧美伦理一区 | av中文天堂 | www.狠狠操.com | a在线观看国产 | 99精品偷拍视频一区二区三区 | 国产日韩在线观看一区 | 日韩3区 | 波多野结衣精品视频 | 日本99精品 | 成人免费视频网站 | 免费激情网 | 成人理论在线观看 | 99精品免费网 | av 一区二区三区 | 97在线视频观看 | 在线观看视频一区二区 | 综合网成人 | 日韩专区在线观看 | 国产免费作爱视频 | 夜色在线资源 | 一区二区三区国产精品 | 三级小视频在线观看 | 西西4444www大胆无视频 | 天天摸日日摸人人看 | 久草久热 | 91网免费观看 | 日本久久久久 | 超碰在线98 | 91精品91 | 久久精品在线视频 | 国产五月色婷婷六月丁香视频 | 欧美午夜剧场 | 国产视频亚洲视频 | 天天色综合天天 | 九九日韩| 色婷婷电影网 | 久久亚洲福利视频 | 午夜在线免费视频 | 婷婷久久网 | av免费网页 | www日韩视频 | 欧美黑人猛交 | 国产亚洲精品综合一区91 | 一区二区三区在线视频111 | 免费不卡中文字幕视频 | 国产高清99| 西西444www大胆无视频 | 久草在线一免费新视频 | 亚洲激情p | 狠狠网亚洲精品 | 国产色在线 | 丁五月婷婷 | 综合激情网 | 午夜久久久精品 | 激情视频网页 | 成人九九视频 | 国产日韩精品一区二区三区在线 | 天天做日日做天天爽视频免费 | 亚洲欧美999| 国内精品小视频 | 久草在线视频首页 | 国产免费久久av | 日韩电影一区二区三区在线观看 | 欧美一二三专区 | 日本公妇色中文字幕 | 日韩三级免费 | av在线永久免费观看 | 久久久国产在线视频 | 国产99在线播放 | 免费看一及片 | 日韩在线观看你懂得 | 成人一级电影在线观看 | 亚洲欧美日韩一级 | 欧美一区三区四区 | 久久人人爽av | 黄色av免费看 | 天天操夜夜曰 | 在线观看日本高清mv视频 | 亚洲作爱 | 欧美一二三视频 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 91亚洲狠狠婷婷综合久久久 | 国产视频亚洲精品 | 久久人人添人人爽添人人88v | 国产日韩欧美在线观看视频 | 国产精品成人av电影 | 四虎影视精品 | 国产精品毛片久久久久久久 | 伊人五月天综合 | 超碰人人乐 | 国产精品久久久久久久免费大片 | 日韩在线免费小视频 | 99久久久久成人国产免费 | 中文高清av | 国产视频99 | 欧美激情精品久久久久久免费印度 | 欧美五月婷婷 | 最近中文字幕在线中文高清版 | 国内毛片毛片 | 911久久香蕉国产线看观看 | 久久亚洲福利视频 | 成人高清在线观看 | 中文字幕 91 | 亚洲欧美国产日韩在线观看 | 久久久人人爽 | 三级av在线播放 | 最新91在线视频 | av中文字幕在线播放 | 国产精品久久久久久久久大全 | 久久久久久亚洲精品 | 日韩最新av在线 | 亚洲尺码电影av久久 | 日韩激情免费视频 | 98超碰在线 | 一区二区三区动漫 | 亚洲不卡123 | 日韩视频免费 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 国产在线精品播放 | 欧美日韩视频在线观看免费 | 96超碰在线 | 97**国产露脸精品国产 | 日韩欧美在线免费观看 | 免费久久99精品国产婷婷六月 | 最近中文字幕大全 | 成人精品国产免费网站 | 日韩免费一区二区三区 | 欧美日韩一区二区在线观看 | 亚洲小视频在线观看 | 亚洲国产中文字幕在线视频综合 | 西西大胆啪啪 | 国产在线播放一区 | 99色视频在线 | 亚洲视频高清 | 黄网站色视频免费观看 | 99激情网 | 五月天综合激情网 | 国产最新视频在线观看 | 天天搞夜夜骑 | 国产精品igao视频网入口 | 91大神在线观看视频 | 日韩国产精品毛片 | 国产拍在线 | 99re久久资源最新地址 | 国产精品99久久久久人中文网介绍 | 丁香六月网 | 久久电影中文字幕视频 | 波多野结衣动态图 | 福利精品在线 | 久久天天躁夜夜躁狠狠躁2022 | 日韩伦理片一区二区三区 | 国产三级av在线 | 美州a亚洲一视本频v色道 | av成人在线网站 | 成人手机在线视频 | 国产精品手机在线 | 免费黄色在线网址 | 波多野结衣在线视频一区 | 国产精品一级视频 | 亚洲手机天堂 | 久久99免费视频 | 日韩视频欧美视频 | 久久99精品热在线观看 | 国产精品久久久久久久久久ktv | 国产精品白浆 | 久久久久久久久久久成人 | 婷婷av色综合 | 麻豆视频在线播放 | 在线国产视频 | 中文在线√天堂 | 日韩三级av | 九热精品 | 久操久 | 麻豆影视网 | 国产高清一级 | 日韩欧美视频 | 久久久久久久久久久高潮一区二区 | 伊人影院99 | 日韩欧美精品在线观看 | 天天操人人要 | 国产美女精品视频免费观看 | 黄网站色 | 国产一区视频在线 | 精品国产福利在线 | 国产精品久久久久久久久久尿 | 91精品国产自产在线观看 | 91麻豆精品国产91久久久无需广告 | 97精品国产91久久久久久久 | 全黄网站| 国内精品久久久久久久久久清纯 | 免费人成在线观看网站 | 91久久精品一区二区二区 | 久久精品艹| 亚洲少妇久久 | 91精品秘密在线观看 | 日本三级国产 | 亚洲成色777777在线观看影院 | 天天综合入口 | 一级片观看 | 精品久久久久久久久久 | 人人爽人人爽人人爽学生一级 | a黄色| 4hu视频| 免费不卡中文字幕视频 | 香蕉精品在线观看 | 九九九免费视频 | 一二三四精品 | 久久夜色精品国产欧美一区麻豆 | 91视频久久久久久 | 99久久婷婷国产 | 国产成人99av超碰超爽 | 黄色毛片电影 | 日女人免费视频 | 久久最新视频 | 中文视频在线看 | 黄色一集片 | 久久草草热国产精品直播 | 婷婷久久综合九色综合 | 美女视频久久黄 | 久久成人午夜视频 | 在线观看中文字幕 | 在线播放 日韩专区 | 91视频com | 天天草天天爽 | 久久99精品国产麻豆婷婷 | 九九涩涩av台湾日本热热 | 午夜在线观看一区 | 三级黄色三级 | 色婷婷久久 | 2019免费中文字幕 | 五月天电影免费在线观看一区 | 久久久久久久国产精品 | 不卡电影一区二区三区 | 天天操天天射天天插 | 婷婷激情综合五月天 | 国产在线不卡一区 | 美女在线观看av | 国产视频精品久久 | 月丁香婷婷 | 中文日韩在线视频 | 久草视频免费播放 | 深爱激情婷婷网 | 日本高清中文字幕有码在线 | 99情趣网视频| 久久99精品久久久久久久久久久久 | 在线观看视频日韩 | av天天色 | 天天操天天色天天射 | 丁香婷婷激情网 | 国产精品久久久毛片 | 免费观看成人网 | 美女免费网站 | 免费观看性生活大片 | 天天插伊人 | 免费在线观看91 | .国产精品成人自产拍在线观看6 | 国产视频91在线 | 婷婷色六月天 | 插久久| 五月色丁香 | 高清av在线免费观看 | 四虎在线免费观看 | 香蕉精品在线观看 | avav99| 夜夜骑日日操 | 天天爽夜夜爽精品视频婷婷 | 香蕉网在线观看 | 中文字幕在线免费看线人 | 天天操天天干天天爽 | www.国产视频| 日韩黄视频 | 国产在线传媒 | 麻豆精品视频 | 亚洲日本va午夜在线电影 | 欧美激情视频久久 | 亚洲乱码久久久 | 天天艹天天爽 | 国产一级性生活视频 | 亚洲成人av在线播放 | 日韩av电影免费在线观看 | 9色在线视频 | 97在线超碰| 亚洲精区二区三区四区麻豆 | 久久久久免费电影 | 国产一级a毛片视频爆浆 | 国产精品成人一区二区 | 一级黄色av | 中文字幕区 | 婷婷精品 | 日韩国产精品久久久久久亚洲 | 99精品国产福利在线观看免费 | 日韩av电影中文字幕 | 久久国产精品99久久久久 | 日本99久久 | 国产精品va在线观看入 | 免费网站黄色 | 手机在线中文字幕 | 亚洲开心激情 | 久久久久欧美精品999 | 久久综合久久88 | 久热免费在线观看 | 久久视频在线免费观看 | 亚洲欧美综合精品久久成人 | 99这里只有精品视频 | 亚洲精品小视频在线观看 | 中文字幕在线播放一区二区 | 日日操网 | 四虎免费av | 91av成人| 精品中文字幕视频 | 人人澡超碰碰97碰碰碰软件 | 日韩高清毛片 | 探花在线观看 | 免费久久片| 日韩在线网址 | 日韩视频免费在线 | 中文字幕免费高清在线 | 久久国产精品色婷婷 | 91理论电影 | 激情 婷婷 | 九九九免费视频 | 99 精品 在线 | 国产小视频在线观看免费 | 岛国一区在线 | 在线观看黄色免费视频 | 91精品久久久久 | 久久五月天综合 | 亚洲 欧美 日韩 综合 | 欧美日韩在线观看视频 | 一级片在线 | 亚洲一区二区三区毛片 | 国产精品va在线播放 | 一级α片 | 中文字幕乱码电影 | 国产麻豆精品免费视频 | 九九免费在线看完整版 | 91c网站色版视频 | 国产99久久久国产精品 | 69av视频在线观看 | 黄色不卡av | 综合色中文 | 中文字幕久久精品 | 婷婷午夜天 | 久久99视频免费 | 狠狠操狠狠干2017 | 黄色大片日本免费大片 | 亚洲精品免费在线观看视频 | 日韩欧美精品在线 | 天天躁日日躁狠狠 | 狠狠操夜夜 | 最近更新中文字幕 | 在线视频久 | 亚洲免费资源 | 一级黄色免费 | 国产精品一区在线观看 | 欧美在线aa | 亚洲综合欧美精品电影 | 97成人在线视频 | 成人在线免费小视频 | 国产综合久久 | 国产在线a视频 | 91成人蝌蚪 | 黄色电影在线免费观看 | 亚洲黄色av网址 | 91xav| 亚洲精品ww| 丁香国产视频 | 日日夜精品 | 少妇bbbb | 国产日韩欧美在线观看 | 色婷婷电影 | 婷婷综合导航 | 在线观看av片 | 久久国内视频 | 国产精品6 | 狠狠狠综合| 日韩av手机在线观看 | 青青射| japanesexxxxfreehd乱熟| 成人黄色大片网站 | 免费在线观看av不卡 | 欧美另类视频 | 久久www免费人成看片高清 | 能在线看的av | 亚洲精品黄色片 | 久久久一本精品99久久精品 | 成人免费视频网站在线观看 | 欧美日韩精品久久久 | 玖玖玖影院 | 91高清在线看 | 夜夜夜影院 | 99亚洲精品视频 | 99久热在线精品视频成人一区 | 91高清免费 | 久久综合九色综合久久久精品综合 | 国产亚洲激情视频在线 | 中文字幕资源在线观看 | 日韩精品不卡 |