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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

ASP.NET Core 运行原理解剖[1]:Hosting

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

SP.NET Core 是新一代的 ASP.NET,第一次出現時代號為 ASP.NET vNext,后來命名為ASP.NET 5,隨著它的完善與成熟,最終命名為 ASP.NET Core,表明它不是 ASP.NET 的升級,而是一個重新設計的Web開發框架。而它一個非常重要的變化就是它不再依賴于IIS,而是一個獨立的自寄宿的控制臺應用程序,這也是它可以跨平臺的基石,而本文就來詳細探討一下 ASP.NET Core 的啟動過程。

目錄

本系列文章將會從源碼分析來講解 ASP.NET Core 的運行原理,分為以下幾個章節:

ASP.NET Core 運行原理解剖[1]:Hosting(Current)

ASP.NET Core 運行原理解剖[2]:Hosting補充之配置介紹

ASP.NET Core 運行原理解剖[3]:Middleware-請求管道的構成

ASP.NET Core 運行原理解剖[4]:進入HttpContext的世界(待續)

ASP.NET Core 運行原理解剖[5]:Authentication(待續)

前言

我們先回顧一下以前的 ASP.NET 是怎么來運行的:

ASP.NET 是嚴重依賴于IIS的,System.Web?中有很多方法都是直接調用的 IIS API,并且它還是駐留在IIS進程中的。而 ASP.NET Core 的運行則是一個完全獨立的控制臺程序,它有自己的?Kestrel?Server,可以直接對外部提供服務。

不過?Kestrel?的功能相對較于簡單,所以我們還是需要一個反向代理服務器將?Kestrel?服務器保護起來。而微軟也為我們提供了?UseIISIntegration?方法,方便與IIS進行集成。因此,在 Windows 下,通常還是使用IIS來部署,那么,此時與 ASP.NET 的運行方式又有什么區別呢?

通過上圖,可以很清楚的明白它們的區別。在 ASP.NET Core 中,IIS 是通過 HTTP 的方式來調用我們的 ASP.NET Core 程序。而部署在IIS中時,并不需要我們手動來啟動 ASP.NET Core 的控制臺程序,這是因為IIS新增了一個?AspNetCoreModule?模塊,它負責 ASP.NET Core 程序的啟動與停止,并能監聽 ASP.NET Core 程序的狀態,在我們的應用程序意外崩潰時重新啟動。

下面開始進入正題,進入到 ASP.NET Core 的代碼中去。

WebHost的創建

對于一個程序控制臺程序來說,它的入口點便是?Program?中的?Main?方法,ASP.NET Core 程序自然也不例外:

public class Program{ ?
?public static void Main(string[] args) ? ?{BuildWebHost(args).Run();} ? ?
?
?public static IWebHost BuildWebHost(string[] args) =>WebHost.CreateDefaultBuilder(args).UseStartup<Startup>().Build(); }

WebHost.CreateDefaultBuilder?是在 2.0 中新增的,在?MetaPackages?程序集中,代碼如下:

public static IWebHostBuilder CreateDefaultBuilder(string[] args){ ?
?var builder = new WebHostBuilder().UseKestrel().UseContentRoot(Directory.GetCurrentDirectory()).ConfigureAppConfiguration((hostingContext, config) =>{ ? ? ? ?
?? ?var env = hostingContext.HostingEnvironment; ? ? ? ?
?? ?? ?config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
?? ??.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true); ? ? ? ?
?? ?? ? ?if (env.IsDevelopment()){ ? ? ? ? ? ?
?? ?? ? ?? ?var appAssembly = Assembly.Load(new AssemblyName(env.ApplicationName)); ? ? ? ?
?? ?? ? ?? ? ? ?if (appAssembly != null){config.AddUserSecrets(appAssembly, optional: true);}}config.AddEnvironmentVariables(); ? ? ?
?? ?? ?? ? ?if (args != null){config.AddCommandLine(args);}}).ConfigureLogging((hostingContext, logging) =>{logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));logging.AddConsole();logging.AddDebug();}).UseIISIntegration().UseDefaultServiceProvider((context, options) =>{options.ValidateScopes = context.HostingEnvironment.IsDevelopment();}); ? ?return builder; }

它只是用來簡化我們的代碼,做了一些基本的配置:

  • 注冊?Kestrel?中間件,指定 WebHost 要使用的 Server(HTTP服務器)。

  • 設置?Content?根目錄,將當前項目的根目錄作為 ContentRoot 的目錄。

  • 讀取?appsettinggs.json?配置文件,開發環境下的?UserSecrets?以及環境變量和命令行參數。

  • 讀取配置文件中的?Logging?節點,對日志系統進行配置。

  • 添加?IISIntegration?中間件。

  • 設置開發環境下,?ServiceProvider?的?ValidateScopes?為?true,避免直接在?Configure?方法中獲取?Scope?實例。

  • 然后指定?Startup?類,最后通過?Build?方法創建?WebHost?對象,而WebHostBuilder?的代碼較多,感興趣的可以去看完整代碼:?WebHostBuilder,而在這里我只展示部分代碼片段來幫助理解:

    public IWebHost Build(){ ? ?
    ? ? ? ?var hostingServices = BuildCommonServices(out var hostingStartupErrors); ?
    ? ?var applicationServices = hostingServices.Clone(); ?
    ? ?var hostingServiceProvider = hostingServices.BuildServiceProvider();AddApplicationServices(applicationServices, hostingServiceProvider); }

    Build?中的?BuildCommonServices?方法主要有兩個功能:

    首先在程序集中查找?HostingStartupAttribute:

    if (!_options.PreventHostingStartup) { ? ?var exceptions = new List<Exception>(); ? ?// Execute the hosting startup assembliesforeach (var assemblyName in _options.HostingStartupAssemblies){ ? ? ?
    ? ? ? ?var assembly = Assembly.Load(new AssemblyName(assemblyName)); ? ? ? ? ? ? ? foreach (var attribute in assembly.GetCustomAttributes<HostingStartupAttribute>()){ ? ? ? ? ?
    ? ? ? ? ? ?var hostingStartup = (IHostingStartup)Activator.CreateInstance(attribute.HostingStartupType);hostingStartup.Configure(this);}} }

    HostingStartupAttribute?給我們一個在其它程序集中做一些啟動配置的機會,在我們進行多層開發及模塊化的時候非常有用,下一站會詳細解釋。

    然后便是查找我們的?Startup?類:

    if (!string.IsNullOrEmpty(_options.StartupAssembly)) { ?
    ? ??var startupType = StartupLoader.FindStartupType(_options.StartupAssembly, _hostingEnvironment.EnvironmentName);
    ? ??if (typeof(IStartup).GetTypeInfo().IsAssignableFrom(startupType.GetTypeInfo())){services.AddSingleton(typeof(IStartup), startupType);} ? ?
    ? ?else{services.AddSingleton(typeof(IStartup), sp =>{ ? ? ?
    ? ? ? ? ? ?var hostingEnvironment = sp.GetRequiredService<IHostingEnvironment>(); ? ?
    ? ?? ? ? ?var methods = StartupLoader.LoadMethods(sp, startupType, hostingEnvironment.EnvironmentName); ? ?
    ? ?? ? ? ?return new ConventionBasedStartup(methods);});} }

    首先是判斷是否有?_options.StartupAssembly,對應配置文件中的 "startupAssembly" ,如果我們沒有設置,那便是空的,并不會執行上面代碼。通常我們會使用?UseStartup<Startup>?的方法來注冊?Startup?類,而他們的作用是一樣的,都是將我們的?Startup?類做為一個單例注冊到了 DI 系統。

    而最終?BuildCommonServices?返回一個?IServiceCollection,用于構建?hostingServiceProvider:

    var hostingServices = BuildCommonServices(out var hostingStartupErrors);
    var applicationServices = hostingServices.Clone();
    var hostingServiceProvider = hostingServices.BuildServiceProvider();

    接下來創建?WebHost?:

    public IWebHost Build(){ ? ?
    ? ? ?var host = new WebHost(applicationServices,hostingServiceProvider,_options,_config,hostingStartupErrors);}host.Initialize(); ?
    ? ?return host; }

    這里需要說明的,hostingServiceProvider?是 ASP.NET Core 中的第一個?ServiceProvider,也是根?ServiceProvider,但它是在我們的?Starpup?類執行之前創建的,也就是說并不會包含我們在?ConfigureServices?中注冊的服務(但包含使用?HostingStartupAttribute?注冊的服務)。

    WebHost啟動流程

    在上一步,創建完?WebHost?之后,便調用它的?Run?方法,而?Run?方法再去調用?WebHost?的?StartAsync?方法,開始 ASP.NET Core 的啟動工作,主要包含以下幾個步驟:

    1. 初始化,構建 RequestDelegate

    RequestDelegate?是我們的應用程序處理請求,輸出響應的整個過程,也就是我們的 ASP.NET Core 請求管道。

    而它有如下定義:

    public delegate Task RequestDelegate(HttpContext context);

    這里不再對?RequestDelegate?進行過多的介紹,以后會詳細解釋。

    1.1. 調用 Startup 中的?ConfigureServices?方法

    在前面介紹過,我們的 Startup 類已經注冊到了 ASP.NET Coer 的 DI 系統中,因此可以直接從 DI 中獲取:

    private IStartup _startup;
    private IServiceProvider _applicationServices;_startup = _hostingServiceProvider.GetRequiredService<IStartup>();_applicationServices = _startup.ConfigureServices(_applicationServiceCollection);

    這里使用的?_hostingServiceProvider?是我們在 WebHost 中創建的根?ServieProvider。

    1.2. 初始化 Http Server

    Server 是一個HTTP服務器,負責HTTP的監聽,接收一組?FeatureCollection?類型的原始請求,并將其包裝成?HttpContext?以供我們的應用程序完成響應的處理。

    public interface IServer : IDisposable{IFeatureCollection Features { get; }Task StartAsync<TContext>(IHttpApplication<TContext> application, CancellationToken cancellationToken); ?
    ? ?Task StopAsync(CancellationToken cancellationToken); }

    而上面注冊的?Kestrel?便是默認的?Server?:

    public static IWebHostBuilder UseKestrel(this IWebHostBuilder hostBuilder){hostBuilder.UseLibuv(); ?
    ? ?return hostBuilder.ConfigureServices(services =>{services.AddTransient<IConfigureOptions<KestrelServerOptions>, KestrelServerOptionsSetup>();services.AddSingleton<IServer, KestrelServer>();}); }

    Server的初始化主要是配置要監聽的地址:

    private void EnsureServer(){ ? ?
    ? ?if (Server == null){Server = _applicationServices.GetRequiredService<IServer>(); ? ? ? ?var serverAddressesFeature = Server.Features?.Get<IServerAddressesFeature>(); ? ? ?
    ? ? ? ?var addresses = serverAddressesFeature?.Addresses; ? ?
    ? ?? ?if (addresses != null && !addresses.IsReadOnly && addresses.Count == 0){ ? ? ? ?
    ? ?? ? ? ? ?var urls = _config[WebHostDefaults.ServerUrlsKey] ?? _config[DeprecatedServerUrlsKey]; ? ? ? ?
    ? ?? ? ?? ?if (!string.IsNullOrEmpty(urls)){serverAddressesFeature.PreferHostingUrls = WebHostUtilities.ParseBool(_config, WebHostDefaults.PreferHostingUrlsKey); ? ? ? ? ? ? ? ?foreach (var value in urls.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries)){addresses.Add(value);}}}} }

    Addresses 默認是通過在?launchSettings.json?中來查找的。

    1.3. 創建 IApplicationBuilder

    IApplicationBuilder 用于構建應用程序的請求管道,也就是生成?RequestDelegate,有如下定義:

    public interface IApplicationBuilder{IServiceProvider ApplicationServices { get; set; }IFeatureCollection ServerFeatures { get; }IDictionary<string, object> Properties { get; } ?
    ? ??RequestDelegate Build(); ? ?IApplicationBuilder New(); ? ?IApplicationBuilder Use(Func<RequestDelegate, RequestDelegate> middleware); }

    而它的創建過程是通過?ApplicationBuilderFactory?來創建的:

    var builderFactory = _applicationServices.GetRequiredService<IApplicationBuilderFactory>();
    ? ?var builder = builderFactory.CreateBuilder(Server.Features); builder.ApplicationServices = _applicationServices;

    IApplicationBuilderFactory 的默認實現 ApplicationBuilderFactory:

    public IApplicationBuilder CreateBuilder(IFeatureCollection serverFeatures){ ? ?return new ApplicationBuilder(_serviceProvider, serverFeatures); }

    ApplicationBuilder 的實現方式就不在這里多說了,在講中間件的時候再來細說。

    1.4. 配置 IApplicationBuilder

    我們比較的熟悉的是在?Startup?類的?Configure?方法中對?IApplicationBuilder?進行配置,其實還有一個?IStartupFilter?也可以用來配置?IApplicationBuilder,并且在?Startup?類的Configure?方法之前執行:

    var startupFilters = _applicationServices.GetService<IEnumerable<IStartupFilter>>(); Action<IApplicationBuilder> configure = _startup.Configure;
    foreach (var filter in startupFilters.Reverse()) {configure = filter.Configure(configure); }configure(builder);

    然后調用?IApplicationBuilder?的?Build?方法,便完成了?RequestDelegate?的創建:

    private RequestDelegate BuildApplication(){... ? ?return builder.Build(); }

    2. 啟動 Server,監聽請求并響應

    Server 本身是并不清楚 HttpContext 的細節的,因此它需要接收一個?IHttpApplication 類型的參數,來負責 HttpContext 的創建,由如下定義:

    public interface IHttpApplication<TContext> { ?
    ?TContext CreateContext(IFeatureCollection contextFeatures); ?
    ?Task ProcessRequestAsync(TContext context); ? ?
    void DisposeContext(TContext context, Exception exception); }

    它的默認實現是?HostingApplication?類,而?ProcessRequestAsync?方法則調用我們上面創建的?RequestDelegate?委托,來完成對?HttpContext?的處理:

    public class HostingApplication : IHttpApplication<HostingApplication.Context> { ?
    ?private readonly RequestDelegate _application; ?
    ?public Task ProcessRequestAsync(Context context) ? ?{ ? ?
    ?? ?return _application(context.HttpContext);} }

    最后啟動 Server:

    var httpContextFactory = _applicationServices.GetRequiredService<IHttpContextFactory>();
    var hostingApp = new HostingApplication(_application, _logger, diagnosticSource, httpContextFactory);
    await Server.StartAsync(hostingApp, cancellationToken).ConfigureAwait(false);

    Server 會綁定一個監聽端口,注冊HTTP連接事件,最終交給?Http2Stream<TContext>?來處理,通過上面的?hostingApp?來切入到我們的應用程序中,完成整個請求的處理:

    public class Http2Stream<TContext> : Http2Stream{ ?
    ? ? ?private readonly IHttpApplication<TContext> _application; ?
    ? ? ?public override async Task ProcessRequestAsync() ? ?{... ? ? ?
    ?? ? ? ?var context = _application.CreateContext(this); ? ?
    ?? ? ? ?try{ ? ? ? ? ?
    ?? ? ? ? ? ?await _application.ProcessRequestAsync(context);...} ? ? ?
    ?? ? ? ?finally{_application.DisposeContext(context, _applicationException);...}...} }

    3. 啟動 HostedService

    HostedService?為我們提供一個注冊后臺運行服務的機會,它會在隨著我們的 ASP.NET Core 程序啟動而啟動,并在 ASP.NET Core 停止時進行優雅的關閉,有如下定義:

    public interface IHostedService{ ?
    ??Task StartAsync(CancellationToken cancellationToken);
    ??Task StopAsync(CancellationToken cancellationToken); }

    而它是通過?HostedServiceExecutor?來執行的:

    public class HostedServiceExecutor{ ?
    ??private readonly IEnumerable<IHostedService> _services; ?
    ??public async Task StartAsync(CancellationToken token) ? ?{ ?
    ?? ? ? ?await ExecuteAsync(service => service.StartAsync(token));} ? ?
    ?? ? ? ?
    ??public async Task StopAsync(CancellationToken token) ? ?{ ?
    ?? ? ? ?await ExecuteAsync(service => service.StopAsync(token));} ?
    ?? ? ? ?
    ?private async Task ExecuteAsync(Func<IHostedService, Task> callback) ?
    ?
    { ? ? ? ?foreach (var service in _services){ ? ? ? ? ?
    ? ? ? ? ??await callback(service);}} }

    WebHost 會調用?HostedServiceExecutor?的?StartAsync?,從而完成對 HostedService 的啟動:

    _applicationLifetime = _applicationServices.GetRequiredService<IApplicationLifetime>() as ApplicationLifetime; _hostedServiceExecutor = _applicationServices.GetRequiredService<HostedServiceExecutor>();// Fire IApplicationLifetime.Started

    _applicationLifetime?.NotifyStarted();// Fire IHostedService.Start
    await _hostedServiceExecutor.StartAsync(cancellationToken).ConfigureAwait(false);

    這里還有對?IApplicationLifetime?啟動事件的觸發,以后會介紹一下?IApplicationLifetime?的用途。

    到此?WebHost?的整個啟動過程介紹完畢。

    總結

    本文粗略地介紹了一下 ASP.NET Core 中?WebHost?創建及啟動,它也是 ASP.NET Core 中的宿主,包含 HttpServer 的啟動與監聽,而其中也涉及到了很多關鍵點,對我們以后的開發非常有用,由于篇幅有限,下一章再來介紹一些本文沒有解釋清楚的概念。

    參考文章:

    Publishing-and-Running-ASPNET-Core-Applications-with-IIS

    相關文章:?

    • .NET Core 2.0 正式發布信息匯總

    • .NET Standard 2.0 特性介紹和使用指南

    • .NET Core 2.0 的dll實時更新、https、依賴包變更問題及解決

    • .NET Core 2.0 特性介紹和使用指南

    • Entity Framework Core 2.0 新特性

    • 體驗 PHP under .NET Core

    • .NET Core 2.0使用NLog

    • 升級項目到.NET Core 2.0,在Linux上安裝Docker,并成功部署

    • 解決Visual Studio For Mac Restore失敗的問題

    • ASP.NET Core 2.0 特性介紹和使用指南

    • .Net Core下通過Proxy 模式 使用 WCF

    • .NET Core 2.0 開源Office組件 NPOI

    • ASP.NET Core Razor頁面 vs MVC

    • Razor Page–Asp.Net Core 2.0新功能 ?Razor Page介紹

    • MySql 使用 EF Core 2.0 CodeFirst、DbFirst、數據庫遷移(Migration)介紹及示例

    • .NET Core 2.0遷移技巧之web.config配置文件

    • asp.net core MVC 過濾器之ExceptionFilter過濾器(一)

    • ASP.NET Core 使用Cookie驗證身份

    • ASP.NET Core MVC – Tag Helpers 介紹

    • ASP.NET Core MVC – Caching Tag Helpers

    • ASP.NET Core MVC – Form Tag Helpers

    • ASP.NET Core MVC – 自定義 Tag Helpers

    • ASP.NET Core MVC – Tag Helper 組件

    原文地址:http://www.cnblogs.com/RainingNight/p/hosting-in-asp-net-core.html


    .NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

    總結

    以上是生活随笔為你收集整理的ASP.NET Core 运行原理解剖[1]:Hosting的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    欧美老女人xx | 日韩女同一区二区三区在线观看 | 天天爽天天爽夜夜爽 | 99精品国产成人一区二区 | 日韩欧美一区二区在线观看 | 在线视频99| 字幕网av | 久久午夜网 | 热久久影视| 国产大尺度视频 | 一二区精品 | 99视频一区二区 | 中文字幕亚洲情99在线 | 欧美成人999 | 五月天中文在线 | 国产精品久久久久久久久免费 | 久久视频免费 | 亚洲综合色视频 | 五月婷婷色综合 | 麻豆视频国产精品 | 亚洲欧洲av在线 | 青青网视频| 综合久久久久久久 | 免费观看完整版无人区 | 九九热re | 亚洲免费在线 | 97精品视频在线 | 狠狠操夜夜 | 国产成人精品久久久久 | 久久久久久国产精品 | 视频在线观看亚洲 | 国产色婷婷精品综合在线手机播放 | 热九九精品 | 日本精品一 | 波多野结衣电影一区二区 | 久久精品成人 | 日韩中字在线观看 | 日韩精品aaa | 久久精品一 | av在线电影网站 | 国产不卡片 | 在线免费高清一区二区三区 | 欧美日韩视频免费 | 九九九九热精品免费视频点播观看 | 国产精品毛片一区二区在线 | 欧美精品视 | 久久久久www | 日日干夜夜骑 | 久久99国产精品二区护士 | 91在线播 | 欧美久久九九 | 夜夜摸夜夜爽 | 国产色爽 | 国外成人在线视频网站 | 国产精品大片在线观看 | 午夜精品久久久久久久99 | 免费影视大全推荐 | 日韩精品1区2区 | 草久在线观看 | 久久久久久久久久久精 | 久久精品久久久精品美女 | 国产精品一级在线 | 色婷五月| 免费不卡中文字幕视频 | 中文字幕在线不卡国产视频 | 免费看污网站 | 久久精品视频在线免费观看 | 狠狠干成人综合网 | 久久精品国产亚洲a | 欧美精品久久久久久久久久久 | 江苏妇搡bbbb搡bbbb | 丁香花中文字幕 | 一级片黄色片网站 | 久久这里有 | 亚洲片在线 | 久久这里只有精品9 | 久草视频视频在线播放 | 在线91观看 | 高清国产在线一区 | 福利一区二区三区四区 | 亚洲国产中文字幕 | 久草精品国产 | 欧美一级性视频 | 国产精品99久久久久久久久 | 亚洲国产视频在线 | 亚洲黄色小说网址 | 日韩夜夜爽 | 国产成人一区二区三区在线观看 | 免费色网站 | 91亚洲在线观看 | 91精品久久久久久久久久入口 | 国产精品18久久久久久久久久久久 | 国产在线第三页 | av在线免费在线观看 | 99精品免费久久久久久日本 | 成人小电影在线看 | 国产精品99免费看 | 91精品成人 | 日韩电影中文字幕在线 | 久草在线91| 成人免费在线视频 | 97国产大学生情侣白嫩酒店 | a在线观看免费视频 | 欧美乱码精品一区二区 | 在线中文字幕网站 | 中文字幕在线视频免费播放 | 国产精品丝袜久久久久久久不卡 | 国产中年夫妇高潮精品视频 | 亚洲精品午夜aaa久久久 | 91麻豆精品国产自产在线 | 国产视频一区在线播放 | 天天艹天天爽 | 91福利国产在线观看 | www.91av在线 | 久在线观看视频 | 在线视频 91 | 青草视频免费观看 | 波多野结衣电影一区二区三区 | 在线免费观看黄网站 | 日女人免费视频 | www.夜色321.com| 国产91电影在线观看 | 91视频xxxx| 日韩欧美在线第一页 | 国产一级二级在线播放 | 国产一区欧美二区 | 又黄又刺激 | 免费看一级特黄a大片 | 日韩a级黄色 | 国产精品国产自产拍高清av | 精品国模一区二区三区 | 日日夜日日干 | 免费看黄在线观看 | 综合激情久久 | 99热亚洲精品 | 国产精品欧美一区二区三区不卡 | 免费精品国产 | 国产精品久久久久亚洲影视 | 国产精品久久久久久久久久免费 | 伊人午夜| 欧美九九九 | 色资源中文字幕 | 国产精品美女久久久免费 | 中文字幕在线观看免费高清完整版 | 日韩免费观看一区二区 | 五月天色婷婷丁香 | 黄色精品久久 | 国产原创91 | 最新av在线网址 | 国产精品av免费在线观看 | 天天干天天干天天 | 美女免费视频一区二区 | 国产一区二区精 | 伊人热| 激情综合电影网 | 麻豆传媒一区二区 | 久久久免费 | 亚洲欧洲国产视频 | 午夜视频久久久 | 日韩精品中文字幕一区二区 | 国产精品 久久 | 亚州av成人 | 亚洲精品乱码久久久久久9色 | 日日久视频 | 黄色一级免费 | 国产最新在线视频 | 亚洲综合视频在线观看 | 免费看国产视频 | 精品在线观看免费 | 五月婷网站| 二区三区在线视频 | 日韩视频三区 | 婷婷色网视频在线播放 | 日韩精品免费在线播放 | 色婷婷天天干 | 国产一区视频在线播放 | 欧美精品你懂的 | avcom在线 | 国产成人av在线影院 | 国产99精品在线观看 | 中文字幕免费观看全部电影 | 综合网婷婷 | 久久99精品久久只有精品 | 国产丝袜网站 | 久久久久免费 | 久久人人看| 一二区av| 欧美日韩精品国产 | www色片 | 人人搞人人干 | 最近中文字幕高清字幕免费mv | 国产午夜不卡 | 日本99热 | av中文字幕在线电影 | av网站在线免费观看 | 国产一区在线精品 | 天天天天爱天天躁 | 人人插人人费 | 国产高清在线不卡 | 青青草久草在线 | 国产一级免费片 | 精品国产综合区久久久久久 | 日日草天天草 | 久久天堂影院 | 欧美一级性视频 | 正在播放日韩 | 在线黄av | 久草视频资源 | 日韩av高潮 | 日韩精品视频免费在线观看 | 精品在线小视频 | 国产成人久久 | 精品99免费| 国内成人精品2018免费看 | 久久福利 | 国产黄a三级三级三级三级三级 | 国产成人精品三级 | 一区二区三区四区免费视频 | 成人午夜电影网 | 久久 国产一区 | 色综合天天狠天天透天天伊人 | av网站在线观看免费 | 国产精品久久嫩一区二区免费 | 黄网站污| 日韩大片免费观看 | 五月天九九 | 特级毛片aaa | 天天色官网 | 国产精品美女www爽爽爽视频 | 国产美女在线精品免费观看 | 国产视频综合在线 | 精品久久久久久国产91 | 亚洲午夜久久久久 | 国产精品乱码一区二三区 | 天天干天天干天天 | 成人在线黄色电影 | 欧美性爽爽 | 国产精品乱码久久久久久1区2区 | 日韩久久精品一区二区三区 | 四虎国产精品成人免费影视 | 国产精品都在这里 | 精品视频123区在线观看 | 不卡av在线 | 久久高清片 | 免费在线观看一级片 | 国产精品国产三级国产专区53 | 特级毛片网 | 人人超碰在线 | 啪啪激情网 | 天天干天天做天天操 | 天天色宗合 | 五月天久久久久久 | 久久歪歪 | 国产网红在线 | 毛片精品免费在线观看 | 日本精油按摩3 | 亚洲毛片视频 | 在线观看视频一区二区三区 | 国产精品亚洲精品 | 久久精品视频4 | 色婷婷视频在线观看 | 久久精品欧美日韩精品 | 日韩精品在线播放 | 欧美日韩国产综合一区二区 | 久久国产露脸精品国产 | 免费a v观看| 亚洲精品高清在线观看 | 日韩欧美在线不卡 | 日韩一三区 | 精品国产一区二区三区久久久蜜臀 | 成人国产精品入口 | 99久久精品免费看国产 | 国产精品久久久久一区二区 | 国产精品99久久久精品免费观看 | 欧美有色 | 成年人免费av | 免费婷婷| 91成人破解版 | avlulu久久精品 | 欧美a级成人淫片免费看 | 特片网久久| 在线观看亚洲电影 | 天天激情站 | 精品美女久久久久 | 成年人网站免费在线观看 | 国产精品一二 | 国模精品一区二区三区 | 久久天 | 国产九九九视频 | 91在线www| 成人av在线影视 | 天堂av在线7 | 免费在线观看日韩视频 | 五月婷婷操 | 五月网婷婷 | 婷婷丁香导航 | 国产色视频一区二区三区qq号 | 精品国产免费看 | 精品欧美一区二区精品久久 | 欧美不卡在线 | 国产精品黑丝在线观看 | 国产三级久久久 | 9999在线观看 | www.天天操.com | 色中色亚洲 | 欧美日韩中文在线 | 五月天天色 | 国产精品99久久久久久久久久久久 | 在线看片成人 | 69国产盗摄一区二区三区五区 | 午夜在线免费观看视频 | 日韩精品 在线视频 | av 一区二区三区四区 | 黄色特一级片 | 麻花天美星空视频 | 亚洲精品视频网站在线观看 | 色综合色综合色综合 | 麻豆传媒电影在线观看 | 天天干天天射天天插 | 国产日韩欧美网站 | 97人人模人人爽人人喊中文字 | 日本在线观看一区二区 | av一本久道久久波多野结衣 | 亚洲精品2区 | 在线观看麻豆av | 久久av影院 | 精品乱码一区二区三四区 | 最新午夜 | 国产精品99久久久久人中文网介绍 | 国产精品99久久久久久宅男 | 天天干视频在线 | 中文字幕在线观看1 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 国产在线永久 | 在线亚洲高清视频 | 亚洲精品中文在线资源 | 99久热在线精品视频成人一区 | www.97色.com | 粉嫩av一区二区三区四区 | 色多多污污 | 天干啦夜天干天干在线线 | 日韩精品你懂的 | 一区二区三区在线不卡 | 国产黄色成人av | 国产精品中文久久久久久久 | av在线播放快速免费阴 | 欧洲色吧 | 91自拍成人 | 精品a在线| 91亚洲在线| 欧美日视频 | 日韩午夜av | 91丨九色丨蝌蚪丰满 | 国产亚洲无| 欧美乱码精品一区 | 色综合久久综合中文综合网 | 在线观看www.| 一级免费黄色 | 91精品在线观看视频 | 99热这里是精品 | 日本精品一区二区三区在线播放视频 | 五月av在线| 国产清纯在线 | 欧美成人播放 | 久久99免费视频 | 欧美日韩国产成人 | 国产天天爽 | 亚洲码国产日韩欧美高潮在线播放 | 伊人亚洲综合 | 亚洲精品久久久蜜桃直播 | 亚洲欧洲精品在线 | 91精品国产乱码久久 | 91片黄在线观 | 在线免费观看羞羞视频 | 天天看天天干天天操 | 中中文字幕av在线 | av成人免费在线 | 很污的网站 | 国产99久久九九精品免费 | 中文字幕高清av | 久久精品99国产国产精 | 免费观看国产视频 | www.91国产 | 在线观看免费视频 | 国产老太婆免费交性大片 | 一级免费片 | 国产一区播放 | www.777奇米 | 久草国产在线观看 | 国产精品va在线观看入 | 91污视频在线观看 | 美女免费网站 | 亚洲电影一级黄 | 国产一区二区精品久久91 | 国产一区二区不卡在线 | 夜夜躁日日躁狠狠躁 | 国产成人av电影在线 | 精品一区二区在线播放 | 久久丁香| 国产精品视频免费看 | 色网站免费在线看 | 午夜美女福利直播 | 亚洲国产成人av网 | 成片视频免费观看 | 久久人人爽人人爽人人片av免费 | 亚洲精品视频网站在线观看 | 国产99中文字幕 | 91视频高清完整版 | 亚洲第一区在线观看 | 韩日精品在线 | 91亚洲永久精品 | 国产黄色视 | 国产中文字幕在线播放 | 奇米影视在线99精品 | 91视频下载 | av丝袜在线 | 成年人在线观看免费视频 | 成人av在线影院 | 91精品在线免费 | 国产成人久久 | 久久久久久久久久免费 | 久久久香蕉视频 | 99久久er热在这里只有精品66 | 狠狠色丁香九九婷婷综合五月 | 亚洲 中文 欧美 日韩vr 在线 | 狠狠色综合网站久久久久久久 | 天天艹日日干 | 亚色视频在线观看 | 国产精彩在线视频 | 色婷婷综合久久久中文字幕 | 亚洲九九| 色资源中文字幕 | 成人av av在线 | 中文字幕av影院 | 男女啪啪免费网站 | 久久精品美女视频网站 | 久久一区二区免费视频 | 麻豆视频免费播放 | 国产系列在线观看 | av丝袜美腿 | 欧美极品久久 | 午夜精品麻豆 | 狠狠撸电影 | 国产 日韩 在线 亚洲 字幕 中文 | 精品视频在线视频 | 免费成人结看片 | 色妞久久福利网 | 亚洲精品九九 | 深爱婷婷激情 | 国产综合91 | 亚洲国产日本 | 久久久久久久久久久久久久免费看 | 最近中文字幕大全 | 国产一区二区久久久 | 一级a毛片高清视频 | 国产高清在线免费 | 日韩91av| 香蕉视频在线免费看 | 精品一区二区视频 | 激情丁香久久 | 中文字幕av专区 | 福利区在线观看 | 精品播放 | 狠狠干狠狠色 | 日韩精品一区二区三区视频播放 | 激情综合啪啪 | 亚洲va欧美va | 香蕉久草 | www四虎影院 | 日韩av网站在线播放 | 国产一级免费播放 | 91精品办公室少妇高潮对白 | 久草在线资源网 | 成人久久18免费网站麻豆 | 久久久久高清毛片一级 | 久久这里 | 一本大道久久精品懂色aⅴ 五月婷社区 | 国产中文视频 | 免费中文字幕视频 | 91九色在线视频观看 | 97超碰中文| 中文字幕在线视频国产 | 99久久久国产免费 | 国产99久久久国产精品免费二区 | 成人四虎影院 | 国产一卡久久电影永久 | 国产中文a| 91在线公开视频 | 日日操天天操夜夜操 | 国产精品久久久久久久久婷婷 | 久久久91精品国产一区二区精品 | 亚洲永久国产精品 | 精品久久久久久国产 | 玖玖爱国产在线 | 五月天激情视频在线观看 | 国产一区视频在线观看免费 | 国产精品大尺度 | 欧美日韩在线免费观看 | 国产亚洲精品免费 | 婷婷电影在线观看 | 日韩一级理论片 | 99re8这里有精品热视频免费 | 99色在线观看 | 精品一区二区在线播放 | 亚洲精品高清一区二区三区四区 | 久久久久久久久久福利 | 91精品国产乱码久久桃 | 成人一区二区三区在线 | 国产自产在线视频 | 黄色av免费电影 | 亚洲国产精品成人va在线观看 | 久草视频免费播放 | 欧美日韩综合在线观看 | 亚洲黄色一级视频 | 中国一级片在线 | 国产中文在线字幕 | 日日躁夜夜躁aaaaxxxx | 国产免费黄视频在线观看 | 狠狠色丁婷婷日日 | 色婷婷狠狠18 | 天天干人人 | 日韩中文字幕国产精品 | 91久久国产精品 | 97超碰资源站| av中文字幕日韩 | 亚洲欧洲久久久 | 欧美成人中文字幕 | 欧美日韩一区二区三区不卡 | 久久97精品 | 亚洲一二区视频 | 精品国产一区二区三区久久 | 在线观看视频日韩 | 久久久久久久久久久免费视频 | 久久久福利影院 | 婷婷在线五月 | 欧美a级片免费看 | 4438全国亚洲精品观看视频 | 精品国产诱惑 | 国产精品久久久影视 | 欧美日韩久久久 | 18女毛片 | 久久艹久久 | 最近av在线| 成年人在线看片 | 97在线看| 狠狠躁夜夜躁人人爽超碰91 | 一区二区三区精品在线视频 | 亚洲涩涩涩涩涩涩 | 一区二区三区影院 | 久久精品亚洲一区二区三区观看模式 | 天堂在线v| 国产一区二区三区四区大秀 | 中文字幕日韩国产 | 成年人在线免费看视频 | 九九热免费视频在线观看 | 精品国产一区二区三区日日嗨 | 午夜av电影院 | 成人黄色资源 | 精品国模一区二区三区 | 99免费在线视频 | 色综合久久88色综合天天人守婷 | 在线三级av | 手机av网站| 国产aaa大片 | 美女网站在线观看 | 福利视频导航网址 | 夜夜视频 | 久久国产网 | 国产高清视频在线观看 | 又黄又爽又湿又无遮挡的在线视频 | 狠狠躁夜夜躁人人爽视频 | 免费看三级 | 日韩电影一区二区在线 | 久久不卡av | 欧美一二区在线 | 日韩一区二区免费视频 | 青草视频网 | 五月天婷婷在线播放 | 天天操狠狠操网站 | 深夜男人影院 | 免费 在线 中文 日本 | 中文字幕在线观看亚洲 | 人成免费网站 | 91免费观看视频网站 | 久久99爱视频| 亚洲91网站 | 亚洲一级片在线观看 | 欧美日韩网址 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 不卡av电影在线 | 奇米影视777四色米奇影院 | 国产成人av福利 | 超碰在线最新地址 | 精品久久久久久久久久 | 另类老妇性bbwbbw高清 | 久久人视频 | 国产网红在线 | 91综合视频在线观看 | 色多多在线观看 | 特级黄录像视频 | 九九热在线观看 | 色橹橹欧美在线观看视频高清 | 一区二区三区高清在线观看 | 亚州av网站 | 91精品在线免费视频 | 亚洲视频 一区 | 久久综合久久综合久久 | 久久大片| 激情视频久久 | 欧美日韩中文国产 | 1区2区视频 | 国产不卡在线看 | 色综合天天色综合 | 国产成人av网站 | 免费看一级一片 | 国产毛片久久 | 国产精品一区二区吃奶在线观看 | 高清日韩一区二区 | 日日综合网| 婷婷日韩| 中文字幕免费高清av | 国产日本在线观看 | 有码中文字幕 | 97人人爽人人| 在线观看av片 | www.com久久久 | 成人在线观看av | 婷婷色五 | 日韩欧美在线观看 | 免费三级影片 | 成人av在线直播 | 美女国产精品 | 成人久久毛片 | 精品国产一区二区三区在线 | 毛片网在线播放 | 在线国产91 | 最新久久久 | 精品超碰 | 激情综合狠狠 | 夜夜视频欧洲 | 天天操天天艹 | 欧美乱码精品一区二区 | 国产成人精品免高潮在线观看 | 日日爽视频 | 日韩高清观看 | 国产午夜三级一二三区 | 91精品免费 | 欧美成人基地 | 在线观看成人小视频 | 免费在线观看毛片网站 | 国内精品免费久久影院 | 精品国产一区二区三区四 | www.婷婷色 | 麻豆视频免费播放 | 一区二区三区视频网站 | 国产一区二区手机在线观看 | 在线日本看片免费人成视久网 | 日韩亚洲欧美中文字幕 | 国产视频亚洲视频 | 成人性生交视频 | 亚洲精品免费在线播放 | 日韩av免费在线看 | 午夜免费福利视频 | 349k.cc看片app| 久久久久麻豆v国产 | 狠狠狠色丁香婷婷综合久久五月 | 欧美亚洲国产一卡 | 欧美日韩午夜爽爽 | 久久久久久久网站 | 91丨九色丨蝌蚪丰满 | 中文字幕日本在线观看 | 国产精品美女久久 | 中文字幕av在线电影 | 开心色激情网 | 精品亚洲二区 | 国产精品欧美久久久久无广告 | 人人操日日干 | 日本黄色免费电影网站 | 99热精品在线观看 | 国产欧美日韩精品一区二区免费 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 天天爽夜夜爽精品视频婷婷 | 97精品国产 | 国产精品一区二区在线播放 | 黄色一级大片在线免费看国产一 | 丰满少妇在线观看资源站 | 国产精品6999成人免费视频 | 国产97在线观看 | 热久久免费国产视频 | 91在线入口 | 欧美一级电影免费观看 | 青青河边草免费直播 | 久精品在线观看 | 亚洲免费av电影 | 麻豆av电影 | 久久免费毛片视频 | 狠狠天天 | 视频一区在线免费观看 | 亚洲美女视频在线 | 99精品久久99久久久久 | 日韩欧美精选 | 狠狠五月婷婷 | 一区二区三区高清在线观看 | 精品91视频 | 亚洲一级片 | 久久伊人精品天天 | 天天干,天天射,天天操,天天摸 | 日韩av成人在线观看 | 在线精品视频免费观看 | 久久久久久久久黄色 | 久久视频99 | www.久久91 | 毛片在线播放网址 | 亚洲国产日韩在线 | 91视频 - 114av| 欧美a在线看 | 91爱爱视频 | 国产高清黄 | 天天射网| 少妇啪啪av入口 | 日韩精品欧美一区 | 亚洲国产日韩在线 | 午夜影视一区 | 国产精品成人自产拍在线观看 | 国产精品私人影院 | 狠狠躁日日躁 | 在线国产片 | 国产a级精品 | 69精品久久久 | 91在线精品秘密一区二区 | 婷婷六月综合亚洲 | 精品国产美女 | 午夜久久久久久久久久久 | 国产精品欧美久久久久天天影视 | 日日夜夜精品免费 | 在线精品一区二区 | 色网av | www免费看片com | 波多野结衣视频在线 | 亚洲激情在线视频 | 日本成人免费在线观看 | 久操中文字幕在线观看 | 久久久国产精品成人免费 | 欧美精品三级在线观看 | 日韩影片在线观看 | 国产精品美女久久久久久网站 | 最新国产精品亚洲 | 久久最新| 日日操日日插 | 人人舔人人爱 | 国产日韩欧美在线观看视频 | 伊人久久国产 | 亚洲mv大片欧洲mv大片免费 | 国产精品久久视频 | 黄色av影视 | 丰满少妇在线观看网站 | 久久理论电影网 | 久久综合久久久 | 色婷婷激情综合 | 在线观看亚洲精品 | 81国产精品久久久久久久久久 | 亚洲视频在线观看网站 | 国产资源站 | 草莓视频在线观看免费观看 | 黄色av在 | 日本激情中文字幕 | 久久欧美综合 | 国产精品久久婷婷六月丁香 | 四虎在线免费观看 | 天天操网| 久久久久久久国产精品影院 | 69视频在线 | 中文av影院| 国产精品网站 | 成人av在线亚洲 | 成人黄色大片 | 久久久久久毛片精品免费不卡 | 色婷婷综合久久久中文字幕 | 天堂网一区二区 | 欧美久久九九 | 丁香av在线 | 欧美日韩三级在线观看 | 免费一级毛毛片 | 五月天综合婷婷 | 欧美亚洲成人免费 | 一区二区三区免费在线 | 操操操日日日干干干 | 日韩成人精品一区二区 | 美女黄濒 | 日韩资源在线 | 欧美色图另类 | 国产中文字幕视频在线观看 | 探花视频在线观看免费版 | 国产成人精品日本亚洲999 | 日韩高清在线看 | 国产精品成人一区二区三区吃奶 | 中午字幕在线观看 | 天天色天天综合网 | 午夜影视av| 日韩理论片| 婷婷久久精品 | 81精品国产乱码久久久久久 | 免费人成网ww44kk44 | caobi视频| 欧美a级在线 | 久久影视一区 | 亚洲成人av电影 | 久久久久高清 | 欧美另类亚洲 | 亚洲高清在线视频 | 国产成人精品久久久久蜜臀 | www亚洲国产 | 欧美韩国日本在线 | 欧美夫妻性生活电影 | 999久久久精品视频 日韩高清www | 久久久午夜电影 | 激情婷婷久久 | 国内视频1区| 欧美一级久久 | 日韩精品免费一线在线观看 | 国产精品福利在线观看 | 色视频网站在线 | 欧美性生活久久 | 91成人短视频在线观看 | 国产一区二区三区免费在线观看 | 中文字幕 二区 | 天天色天天操综合网 | 精品不卡视频 | 欧美午夜剧场 | 麻豆成人精品视频 | 黄色片网站 | av 一区二区三区 | 亚洲视频第一页 | 日日夜夜精品视频天天综合网 | 欧美片网站yy | 日韩精品一区二区三区在线播放 | 伊人热| 亚洲精品99久久久久久 | 久久婷婷开心 | 国产爽妇网 | 久久99热精品这里久久精品 | 国产网站色| 日本激情中文字幕 | 色综合久久久久久久 | 一二三区视频在线 | 久久久久久久影视 | 日韩在线观看视频一区二区三区 | 99精品国产99久久久久久福利 | 日韩com | 天天干,天天操 | 91精品视频免费观看 | 久久成人一区 | 免费看的黄色网 | 国产a级精品 | 国产91综合一区在线观看 | 中文字幕在线观看资源 | 免费观看高清 | 天天干天天做 | 91精品国产高清自在线观看 | 成人黄色av免费在线观看 | 天天做天天射 | 亚洲精品国产第一综合99久久 | 日韩精品一区二区三区视频播放 | 黄色毛片大全 | 免费看毛片网站 | 亚洲一级黄色av | 欧美精品久久久久久久久久丰满 | 日本h视频在线观看 | 欧美片一区二区三区 | 99久久er热在这里只有精品66 | 国产黄色片免费看 | 最新日韩在线 | 久色网 | 四虎在线免费观看 | 黄色三级在线看 | 天天艹天天干天天 | 欧美激情第八页 | 黄色亚洲片 | 九九爱免费视频在线观看 | 久久久久久久久久久影院 | 91一区二区三区在线观看 | 免费在线观看亚洲视频 | 成年人免费av| 婷婷射五月 | 国产色秀视频 | 在线免费视频 你懂得 | a视频免费看 | 亚洲电影第一页av | 99精品国产一区二区三区麻豆 | 国产精品1区2区在线观看 | 亚洲免费成人av电影 | 久久久久免费看 | 亚洲欧美视频在线观看 | 成片免费观看视频 | 日韩在线免费小视频 | 国产精品18久久久久久久久久久久 | 99久久综合国产精品二区 | 99在线视频免费观看 | 欧美亚洲久久 | 久久精品99北条麻妃 | 精品国产_亚洲人成在线 | 欧美 日韩 国产 中文字幕 | 色欧美成人精品a∨在线观看 | 人人爽人人爽人人爽学生一级 | a在线观看免费视频 | 国产精品久久久久久久久久久杏吧 | 天天色天天操综合网 | 国产精品av免费 | 久久综合日| 国产精品久久99综合免费观看尤物 | 99一区二区三区 | 超碰97人人在线 | 最近免费中文字幕大全高清10 | 国产精品视频999 | 精品视频久久 | 狠狠干激情 | 亚洲精品在线观看网站 | 激情五月综合网 | 久草青青在线观看 | 中文字幕日韩电影 | 一级片视频在线 | 国产不卡片 | 天天视频色版 | 日韩高清成人 | 精品国产一区二区三区男人吃奶 | 成全免费观看视频 | 久久精品精品电影网 | 激情av一区二区 | 欧美十八 | 在线免费观看国产 | 欧美成人精品在线 | 欧美日韩国产精品一区二区亚洲 | 国产黄色av影视 | 亚洲成人国产精品 | 色悠悠久久综合 | 蜜臀av在线一区二区三区 | 免费亚洲黄色 | 国产精品久久片 | 久久久www成人免费毛片麻豆 | 人人插超碰 | 国产在线精品一区二区三区 | 精品国产色 | 91在线porny国产在线看 | 91视频免费播放 | 日本精品久久久久中文字幕5 | 韩国av在线 | 国语精品久久 | 97在线观看免费 | 日韩字幕 | 91精品视频一区 | 视频国产精品 | 久久新 | 91精品久久久久久久久久入口 | 狠狠色婷婷丁香六月 | 五月天久久综合 | 在线观看色网 | 91高清完整版在线观看 | 国产精品手机在线播放 | 00av视频| 久久久久9999亚洲精品 | 四虎国产永久在线精品 | 韩日av在线 | www视频在线播放 | 精品视频国产一区 | 国产一级在线看 | 中文字幕久久精品 | 69xxxx欧美 | 色一色在线| 蜜臀av在线一区二区三区 | 国产精品一区二区久久国产 | 日韩美av在线 | 美女网站免费福利视频 | 又色又爽又黄 | www.久久久.cum | av品善网 | 91视频在线国产 | 在线看日韩av | 视频二区在线视频 | 久久久久中文字幕 | 五月开心六月伊人色婷婷 | 成人免费在线观看av | 国产护士av| 天天射天| 99re亚洲国产精品 | 精品国产自 | 日日干夜夜骑 | 黄色的视频 | 免费合欢视频成人app | 国产一二区免费视频 | 免费成人在线观看 | 欧美另类高清 | 久久黄页 | 天天se天天cao天天干 | 成人在线观看网址 | 久久久综合香蕉尹人综合网 | 日本午夜在线观看 | 亚洲精品婷婷 | 97国产在线视频 |