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

深入分析 Tomcat 原理

開發(fā) 架構(gòu)
隨著互聯(lián)網(wǎng)發(fā)展,往往更多的是需要?jiǎng)討B(tài)的交互。所以 Sun 公司推出了 Servlet 技術(shù):servlet 規(guī)范!目前最新是 Servlet 4.0 ,它支持 HTTP2.0!

早期Web容器早期的 Web 應(yīng)用主要用于瀏覽新聞等靜態(tài)頁面,HTTP 服務(wù)器(比如 Apache、Nginx)向?yàn)g覽器返回靜態(tài) HTML,瀏覽器負(fù)責(zé)解析 HTML,將結(jié)果呈現(xiàn)給用戶。

Servlet規(guī)范

隨著互聯(lián)網(wǎng)發(fā)展,往往更多的是需要?jiǎng)討B(tài)的交互。所以 Sun 公司推出了 Servlet 技術(shù):servlet 規(guī)范!目前最新是 Servlet 4.0 ,它支持 HTTP2.0!

符合 Servlet 規(guī)范的 Web 流程:由 Servlet 容器來創(chuàng)建和管理 Servlet,客戶端的請(qǐng)求 會(huì)被封裝成 ServletRequest 和 ServletResponse,其本質(zhì)上就是對(duì)通信協(xié)議的封裝。

Tomcat簡(jiǎn)介

Tomcat 就是一個(gè) Servlet 容器,實(shí)現(xiàn)了對(duì) Servlet 和 JavaServer Page(JSP)的支持。同時(shí),它還具有 HTTP 服務(wù)器的功能。所以,「Tomcat = HTTP服務(wù)器 + Servlet容器」,一般我們給這種組件稱為:「輕量級(jí)web容器」!

Tomcat架構(gòu)

Tomcat-Server

  • 「Server」:一個(gè) Server 就是一個(gè) Tomcat 實(shí)例,下載 Tomcat 壓縮包,執(zhí)行 /bin/startup.sh,就可以啟動(dòng)一個(gè) Tomcat 實(shí)例。
  • 「Service」:一個(gè)對(duì)外服務(wù)的整體,它包括多個(gè) Connector 和一個(gè) Engine。同時(shí),一個(gè) Server 可以配置多個(gè) Service。實(shí)際上 Service 只是將組件組合到一起,本身并沒有實(shí)現(xiàn)什么功能。

Tomcat-連接器

連接器,啟動(dòng) ServerSocket,負(fù)責(zé)監(jiān)聽 Socket 請(qǐng)求,將數(shù)據(jù)轉(zhuǎn)換成 Tomcat Request,交給 Engine 處理。一個(gè) Service 可以有多個(gè) Connector,表示它可以監(jiān)聽多個(gè)端口。

Tomcat-容器

即 Servlet 容器,它是 Tomcat 容器的最頂層組件,它會(huì)管理多個(gè)虛擬主機(jī) Host,一個(gè) Service 只能有一個(gè) Engine,但是一個(gè) Engine 可以配置多個(gè) Host。Tomcat 的 Servlet 容器是具有明顯的分層架構(gòu)的。

  • 「Host」:虛擬主機(jī),默認(rèn)為 localhost,也就是 127.0.0.1。也可以配置不同的 IP 地址,訪問不同的 IP 地址就可以訪問到不同的虛擬主機(jī)。一個(gè) Host 可以部署多個(gè) Context。
  • 「Context」:應(yīng)用程序,一般會(huì)把我們實(shí)現(xiàn)的 Servlet 應(yīng)用打包成 war,放到 Tomcat 的 webapps 目錄下,Tomcat 會(huì)將其解壓并部署映射成一個(gè) Context 組件,表示一個(gè)應(yīng)用上下文。一個(gè) Context 可以管理多個(gè) Wrapper,畢竟一個(gè) web 應(yīng)用肯定有多個(gè) Servlet。
  • 「Wrapper」:這個(gè)組件 Tomcat 配置文件并沒有,因?yàn)樗窃?web.xml 配置,它就是 Servlet。確切地說,是 Tomcat 用 Wrapper 包裹了我們自己實(shí)現(xiàn)的 Servlet。一個(gè)請(qǐng)求最終就會(huì)到 Wrapper 來執(zhí)行。

Tomcat生命周期管理

「Tomcat 設(shè)計(jì)眾多組件來保證高內(nèi)聚低耦合,保證可擴(kuò)展性」。但是,組件數(shù)量多也會(huì)帶來其它問題,比如組件的管理,在啟動(dòng)、關(guān)閉和銷毀需要涉及多個(gè)組件的操作。Tomcat 設(shè)計(jì)了 LifeCycle 接口,它定義生命周期鉤子函數(shù):init()、start()、stop() 和 destroy(),組件都實(shí)現(xiàn)這個(gè)接口,定義自己的處理邏輯。并且,上層組件在觸發(fā)自己生命周期鉤子函數(shù)的同時(shí),會(huì)觸發(fā)它管理的下層組件的鉤子函數(shù)。其實(shí)國(guó)外設(shè)計(jì)框架很喜歡設(shè)計(jì)這個(gè) LifeCycle 接口,新版 Apache Dubbo 也加入了這一特性。

Tomcat 在實(shí)現(xiàn)組件生命周期管理,充分利用了「組合模式、觀察者模式和模板模式」。

  • 「組合模式」:Tomcat 通過組合模式,用上層組件來管理它下一級(jí)組件,每個(gè)組件都是這樣的管理方式。這樣暴露給用戶的是,只需要對(duì)一個(gè)組件進(jìn)行訪問,則可以達(dá)到一個(gè)完整系統(tǒng)調(diào)用的一致性效果。以 Tomcat 最頂級(jí)的組件 Server 來看,它的 init() 方法:
  • 「觀察者模式」:Tomcat 考慮自身的可擴(kuò)展性,避免版本升級(jí)就得修改生命周期鉤子函數(shù),它引入了監(jiān)聽器 LifecycleListener 和 LifecycleState。它設(shè)計(jì)了一套貫穿組件生命周期全過程的狀態(tài)集合,例如:當(dāng)組件剛創(chuàng)建則處于 NEW 狀態(tài),調(diào)用了 init() 方法處于 INITIALIZED 狀態(tài)...在調(diào)用生命周期方法的前后,會(huì)改變組件的狀態(tài),而狀態(tài)的改變會(huì)被封裝成為一個(gè)個(gè)事件 LifecycleEvent,由監(jiān)聽器來處理這些事件。
  • 「模板模式」:主要體現(xiàn)了代碼實(shí)現(xiàn)上,實(shí)際上狀態(tài)的轉(zhuǎn)變、事件的創(chuàng)建以及監(jiān)聽器的回調(diào),這些操作其實(shí)沒有必要在每個(gè)組件中自己實(shí)現(xiàn),這會(huì)造成重復(fù)代碼。Tomcat 在實(shí)現(xiàn)這個(gè)功能的時(shí)候,把這些通用邏輯抽象了出來,定義為一個(gè) LifecycleBase 抽象類,它會(huì)定義骨架方法,比如 init() 方法。

Tomcat連接器

Tomcat 連接器,用來監(jiān)聽 Socket 連接,將 TCP 底層的字節(jié)流數(shù)據(jù),轉(zhuǎn)換為 Request 和 Response;連接器主要有3個(gè)組件:「EndPoint、Processor、Adapter」。

  • ?「Endpoint」 負(fù)責(zé)提供字節(jié)流給 Processor。
  • 「Processor」 負(fù)責(zé)提供 Tomcat Request 對(duì)象給 Adapter。
  • 「Adapter」 負(fù)責(zé)轉(zhuǎn)換 ServletRequest 對(duì)象給容器。

其中,Tomcat 將 EndPoint 和 Processor 組合到一起,組成了 ProtocolHandler,這其實(shí)就是一種組合設(shè)計(jì)模式的使用。

Tomcat連接器-NioEndpoint

「Tomcat 使用 NioEndPoint 基于 java 的 nio 包實(shí)現(xiàn)了 I/O 多路復(fù)用模型」,主要包含了 LimitLatch、Acceptor、Poller、SocketProcessor 和 Executor 共 5 個(gè)組件。它的工作過程如下:

  1. 「LimitLatch」:負(fù)責(zé)控制最大連接數(shù),NIO 模式下默認(rèn)是 10000,達(dá)到這個(gè)閾值后,連接請(qǐng)求被拒絕。它是基于 AQS 實(shí)現(xiàn),原理就跟 Lock 一樣。
  2. 「Acceptor」:獨(dú)立線程,不斷調(diào)用 ServerSocketChannel 的 accept() 方法來接收新連接,一旦有新的連接請(qǐng)求到來,返回 SocketChannel 對(duì)象,然后將其封裝在一個(gè) PollerEvent 對(duì)象中,并將 PollerEvent 對(duì)象壓入 Poller 的 Queue 里(「典型的生產(chǎn)者 - 消費(fèi)者模式」)。
  3. 「Poller」:獨(dú)立運(yùn)行在一個(gè)線程里,底層就是一個(gè) Selector,每個(gè) Poller 線程可能同時(shí)被多個(gè) Acceptor 線程調(diào)用來注冊(cè) PollerEvent。Poller 不斷的通過內(nèi)部的 Selector 對(duì)象向內(nèi)核查詢 Channel 的狀態(tài),一旦可讀就生成任務(wù)類 SocketProcessor 交給 Executor 去處理。
  4. 「SocketProcessor」:實(shí)現(xiàn)了 Runable 接口,主要是調(diào)用 Http11Processor 來處理請(qǐng)求。Tomcat 會(huì)將 Socket 包裝成一個(gè) SocketWrapper,Http11Processor 會(huì)調(diào)用 SocketWrapper 來讀寫數(shù)據(jù)。
  5. 「Executor」:自定義的線程池,負(fù)責(zé)運(yùn)行 SocketProcessor ,會(huì)調(diào)用 Http11Processor 來讀取和解析請(qǐng)求數(shù)據(jù)。Http11Processor 是應(yīng)用層協(xié)議的封裝,它會(huì)調(diào)用容器獲得響應(yīng),再把響應(yīng)通過 Channel 寫出。

Tomcat連接器-Nio2Endpoint

Tomcat 還支持了異步 I/O,基于 Java AIO 實(shí)現(xiàn) - Nio2Endpoint 的組件跟 NioEndpoint 類似,但是 Nio2Endpoint 中沒有 Poller 組件,也就是沒有 Selector。這是因?yàn)樵诋惒?I/O 模式下,Selector 的工作交給內(nèi)核來做了。

  • LimitLatch」:跟 NioEndPoint 一樣,連接控制器,它負(fù)責(zé)控制最大連接數(shù)。
  • 「Nio2Acceptor」:擴(kuò)展了 Acceptor,自己就是處理連接的回調(diào)類,用異步 I/O 的方式來接收新連接后,得到一個(gè) AsynchronousSocketChannel,它會(huì)將其封裝成一個(gè) Nio2SocketWrapper,并創(chuàng)建一個(gè)SocketProcessor 任務(wù)類交給線程池處理。
  • 「Nio2SocketWrapper」:實(shí)際讀取 Channel 內(nèi)的數(shù)據(jù),并提供接口給 Http11Processor 讀寫。但是由于異步 I/O 的性質(zhì),Http11Processor 讀取 Nio2SocketWrapper 時(shí)很有可能內(nèi)核還沒有將數(shù)據(jù)準(zhǔn)備好,為了解決這個(gè)問題,Http11Processor 采用了2次 read 調(diào)用:通過注冊(cè)回調(diào)類 readCompletionHandler。

最后

其實(shí) Tomcat 的實(shí)現(xiàn)細(xì)節(jié)很多,沒辦法一一重現(xiàn),大部分情況下需要自己去對(duì)著源碼跑一遍,像很多實(shí)際運(yùn)用:

  • ContainerBackgroundProcessor,實(shí)現(xiàn)熱更新機(jī)制:熱加載和熱部署。
  • 對(duì)象池技術(shù),典型的以空間換時(shí)間的思路,通過 SynchronizedStack 減少 SocketWrapper 和SocketProcessor 的創(chuàng)建和銷毀。
  • Servlet 3.0 中引入的異步 Servlet,Tomcat 對(duì)其做了支持,它的思想是:讓業(yè)務(wù)線程和 Tomcat I/O 線程分離開,將復(fù)雜耗時(shí)的業(yè)務(wù)計(jì)算移到業(yè)務(wù)線程池中進(jìn)行,釋放 Tomcat的I/O 線程,以便可以及時(shí)響應(yīng)其它請(qǐng)求。
  • 會(huì)話管理...
  • 集群管理...
責(zé)任編輯:姜華 來源: Java架構(gòu)師進(jìn)階編程
相關(guān)推薦

2025-09-16 10:57:31

2009-11-13 13:08:19

2010-09-07 14:21:22

PPPoE協(xié)議

2011-03-23 11:01:55

LAMP 架構(gòu)

2010-03-08 14:53:48

Linux分區(qū)

2023-02-01 08:13:30

Redis內(nèi)存碎片

2011-09-01 13:51:52

JavaScript

2009-12-16 16:39:01

Visual Stud

2009-06-10 18:12:38

Equinox動(dòng)態(tài)化OSGi動(dòng)態(tài)化

2009-12-14 14:50:46

Ruby傳參數(shù)

2021-10-29 16:36:53

AMSAndroidActivityMan

2022-08-30 07:00:18

執(zhí)行引擎Hotspot虛擬機(jī)

2022-03-17 10:24:28

JavaJVM

2017-02-27 10:43:07

Javasynchronize

2009-12-22 15:39:36

IPPBX技術(shù)

2011-09-13 09:08:22

架構(gòu)

2018-12-18 10:11:37

軟件復(fù)雜度軟件系統(tǒng)軟件開發(fā)

2013-11-14 17:02:41

Android多窗口

2023-08-07 07:44:44

2021-04-13 12:55:06

SpringMVC解析器接口
點(diǎn)贊
收藏

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

野外做受又硬又粗又大视频√| 触手亚洲一区二区三区| 精品日本12videosex| 欧美日韩黄色影视| 亚洲 欧美 综合 另类 中字| 黄色软件在线观看| 国产美女精品一区二区三区| 97国产在线视频| 在线观看岛国av| 特级毛片在线| 国产欧美精品一区二区色综合朱莉| 成人免费视频a| 97久久久久久久| 香蕉国产精品| 亚洲人成欧美中文字幕| 久久无码人妻一区二区三区| 男人皇宫亚洲男人2020| 亚洲精品写真福利| 亚洲精品高清国产一线久久| 五月天婷婷激情| 天天综合亚洲| 亚洲人a成www在线影院| 手机免费看av片| 色综合视频一区二区三区日韩| 亚洲成人精品影院| 糖心vlog在线免费观看| 成人综合影院| 国产亚洲精久久久久久| 精品乱码一区| 色wwwwww| 香蕉久久夜色精品| 欧美高清在线观看| 国产麻豆a毛片| 精品在线99| 日韩精品免费在线视频观看| 女王人厕视频2ⅴk| 四虎精品在线观看| 欧美三级视频在线播放| 欧美三级午夜理伦三级| 91超碰在线播放| 亚洲资源中文字幕| 欧美a级黄色大片| 麻豆视频在线| 中文字幕亚洲在| 亚洲一区3d动漫同人无遮挡 | 99久久久无码国产精品| 91久久国产综合久久蜜月精品 | 精品噜噜噜噜久久久久久久久试看| 一级在线免费视频| 国产欧美自拍| 欧美日本韩国一区| 色婷婷一区二区三区av免费看| 国产一区二区三区朝在线观看| 色老综合老女人久久久| 国产性生交xxxxx免费| 色香欲www7777综合网| 欧美在线观看视频在线| youjizzxxxx18| 992tv国产精品成人影院| 欧美性色黄大片手机版| 我要看一级黄色大片| 美女色狠狠久久| 欧美蜜桃一区二区三区| 99热一区二区| 国产一区二区三区视频在线| 日韩视频免费观看高清在线视频| 中文字幕 欧美 日韩| 国产精品成人3p一区二区三区| 欧美一二区视频| 男人的天堂影院| 亚洲区小说区| 日韩最新中文字幕电影免费看| 亚洲熟女少妇一区二区| 欧美午夜电影在线观看| 91精品国产色综合| 免费在线不卡av| 久久99精品国产.久久久久久 | 欧美日韩精品一区二区三区在线观看| 日韩av影视综合网| 黄色片在线观看免费| 国产二区精品| 久久久久免费视频| www.com亚洲| 国产一区二区免费在线| 精品久久蜜桃| 免费人成在线观看播放视频| 亚洲国产综合色| 不卡av免费在线| av日韩一区| 日韩高清av一区二区三区| 91社区视频在线观看| 欧美精品一卡| 国产精品久久视频| 免费观看黄一级视频| 国产欧美日韩综合精品一区二区 | 日本一道本视频| 欧美特黄一级| 欧美国产精品v| 国产一区二区日韩| 欧美成欧美va| 老色鬼久久亚洲一区二区| 91久久久在线| 欧美3p视频在线观看| 亚洲精品老司机| 日日碰狠狠躁久久躁婷婷| 高清在线一区二区| 亚洲日本欧美中文幕| 日韩a级片在线观看| 久久一区二区三区超碰国产精品| 91欧美精品午夜性色福利在线| 午夜视频1000| 亚洲综合色自拍一区| 一级黄色香蕉视频| 国产主播性色av福利精品一区| 一区二区三区在线播放欧美| 欧美成人aaaaⅴ片在线看| 美国毛片一区二区三区| 美媛馆国产精品一区二区| 香蕉久久aⅴ一区二区三区| 欧美三电影在线| 国产精品无码久久久久久| 韩国久久久久| 亚洲a中文字幕| 巨大荫蒂视频欧美另类大| 色哟哟一区二区在线观看| 午夜不卡久久精品无码免费| 亚洲一区二区| 成人免费视频网| 免费在线观看av| 欧美艳星brazzers| 国产成人福利在线| 美女被久久久| 蜜桃网站成人| 中文在线а√在线8| 亚洲国语精品自产拍在线观看| 欧美精品色哟哟| 国产一区二区美女诱惑| 日本三级福利片| 在线免费观看亚洲| 日韩在线观看视频免费| 中文字幕av久久爽| 国产精品久久夜| 国产成人黄色网址| 久久香蕉国产| 亚洲a一级视频| 亚洲性图自拍| 日韩免费高清av| 久久久久久久久99| 成人黄色国产精品网站大全在线免费观看 | 国产精品乱子久久久久| 午夜在线观看av| 天天做天天爱综合| 91久久极品少妇xxxxⅹ软件| 亚洲丝袜一区| 精品国产一区二区三区不卡| 国产无码精品在线播放| 欧美二区不卡| 3d蒂法精品啪啪一区二区免费| 超碰在线观看免费版| 欧美一区二区福利在线| 欧美成人精品欧美一| 粉嫩嫩av羞羞动漫久久久| 精品国产av无码一区二区三区| 精品视频高潮| 国产99视频精品免视看7| 国产经典自拍视频在线观看| 欧美日韩一级片网站| 欧美另类videoxo高潮| 国产激情91久久精品导航| 成人免费播放器| 欧美人妖在线| 成人国产精品一区| 久色国产在线| 亚洲欧美日韩第一区| 一级淫片免费看| 一区二区久久久久| 野花视频免费在线观看| 亚洲午夜伦理| 日本一区二区三区视频在线播放| 久久天堂影院| 欧美极品少妇与黑人| 免费在线黄色影片| 欧美精品乱人伦久久久久久| 妺妺窝人体色www在线下载| 91碰在线视频| 久久综合在线观看| 国产偷自视频区视频一区二区| 午夜视频久久久| 51精品国产| 国产精品视频一区二区三区四| 自由的xxxx在线视频| 国产成人av毛片| 亚洲人成电影网| jlzzjlzzjlzz亚洲人| 欧美日韩在线第一页| 91狠狠综合久久久| 26uuu成人网一区二区三区| 手机在线国产视频| 久久国产成人| av在线观看地址| 欧美高清在线| 欧美一级日本a级v片| 日韩在线成人| 国产日产欧美精品| 在线观看爽视频| 粗暴蹂躏中文一区二区三区| 麻豆av电影在线观看| 精品裸体舞一区二区三区| 中文字幕视频二区| 精品久久久久久国产| 一级片一级片一级片| 99精品欧美一区二区蜜桃免费| 特级西西444www| 日本一不卡视频| 欧美黄色免费影院| 亚洲福利电影| 成人在线免费观看视频网站| 成人精品影视| 欧美激情论坛| 神马午夜久久| 国产欧美日韩在线播放| 天堂精品在线视频| 91久久久精品| 亚洲色图图片| 国产精品美女www| 久久人体大尺度| 2019中文字幕在线| 182在线视频观看| 欧美激情视频免费观看| av网站大全在线| 久久精品99国产精品酒店日本| chinese偷拍一区二区三区| 亚洲男人天天操| 无码国产精品96久久久久| 日韩免费在线观看| 成人免费观看在线视频| 日韩一级黄色大片| 99在线精品视频免费观看软件| 欧美男生操女生| 97超碰国产在线| 91麻豆精品91久久久久同性| 一级全黄裸体免费视频| 欧美日韩一二三| 91丨porny丨在线中文 | 精品亚洲自拍| 狠狠色综合色区| 欧美成人一区在线观看| 国产一区二区三区高清视频| 97人人澡人人爽91综合色| www.成人三级视频| 国产成人tv| 麻豆亚洲一区| 日韩理论电影| 最近免费观看高清韩国日本大全| 一本精品一区二区三区| 蜜桃视频一区二区在线观看| 在线不卡亚洲| 欧美在线观看成人| 日韩精品国产欧美| 日本一二区免费| 国产一区二区三区美女| 久久久久99人妻一区二区三区 | 国产肉体xxxx裸体784大胆| 2021国产精品久久精品| 精品无人区无码乱码毛片国产| 欧美激情中文不卡| 国产美女福利视频| 亚洲一卡二卡三卡四卡五卡| 欧美一二三区视频| 欧美亚洲高清一区| 国产男男gay体育生白袜| 亚洲成色999久久网站| 先锋av资源站| 一区二区在线视频播放| 成人在线网址| 7m精品福利视频导航| 精品国产欧美日韩一区二区三区| 91精品免费视频| 加勒比色综合久久久久久久久 | 亚洲精品中文字幕乱码| 加勒比成人在线| 日韩电影一二三区| 女同性αv亚洲女同志| 久久九九久久九九| avtt天堂在线| 日本丶国产丶欧美色综合| 国产理论视频在线观看| 日韩久久免费视频| 麻豆传媒在线免费| 久久久人成影片一区二区三区| 97se综合| 97人人模人人爽人人少妇| 免费毛片在线不卡| av久久久久久| 日韩精品一区第一页| 又黄又爽又色的视频| 久久久夜色精品亚洲| 日本青青草视频| 色先锋资源久久综合| www.成人精品| 国产午夜精品一区二区三区 | 午夜精品在线看| ,一级淫片a看免费| 亚洲美女激情视频| 美女精品视频| 91精品视频在线免费观看| 你懂的一区二区三区| 蜜臀av性久久久久蜜臀av| 日本怡春院一区二区| 日韩免费高清一区二区| 亚洲欧洲综合另类在线| 一区二区视频网站| 神马电影久久| 中文字幕中文字幕在线中心一区| 99国内精品| 国内自拍偷拍视频| 亚洲欧美在线aaa| 中文字幕av网站| 亚洲人成电影在线播放| av不卡高清| 97久久天天综合色天天综合色hd| 日韩欧美网址| av视屏在线播放| xnxx国产精品| 青草视频在线观看免费| 精品99一区二区三区| 色图在线观看| 51午夜精品| 中文字幕日韩一区二区不卡| 自拍偷拍 国产| 国产亚洲福利社区一区| 亚洲成熟少妇视频在线观看| 精品五月天久久| 无遮挡爽大片在线观看视频 | 美女亚洲一区| 精品视频免费在线播放| 成人中文字幕在线| 欧美黄色免费在线观看| 欧美一区二区三区免费观看视频| 在线看av的网址| 国产精品视频大全| 日韩一区二区三区免费播放| 成人免费在线观看视频网站| 国产午夜精品久久久久久久| 男人的天堂av网站| 亚洲最新在线视频| 成人做爰视频www| 亚洲a∨一区二区三区| 麻豆视频一区二区| 成年人二级毛片| 宅男噜噜噜66一区二区66| v片在线观看| 99国产超薄肉色丝袜交足的后果| 伊人情人综合网| 好吊操视频这里只有精品| 五月天一区二区三区| 欧美拍拍视频| 国产精品午夜视频| 久久久久久久久国产一区| 91在线第一页| 亚洲福利一二三区| 四虎成人免费在线| 日韩av一区二区在线观看| 妞干网免费在线视频| 欧美亚洲爱爱另类综合| 毛片一区二区三区| 婷婷在线精品视频| 亚洲国产精品字幕| 成人h在线观看| 狠狠干视频网站| 91在线观看污| 伊人免费在线观看高清版| 欧美xxxx14xxxxx性爽| 老司机精品在线| 国产一伦一伦一伦| 一区二区高清视频在线观看| 色窝窝无码一区二区三区成人网站 | 国语精品免费视频| 日本在线观看不卡视频| 男女做暖暖视频| 日韩精品在线视频观看| 永久免费观看精品视频| 亚洲 自拍 另类小说综合图区| 国产亚洲精品bt天堂精选| 国产黄色av网站| 日产精品久久久一区二区福利| 99久久久国产精品美女| 中文字幕一区二区人妻电影丶| 欧美亚洲高清一区二区三区不卡| 亚洲大胆人体大胆做受1| 欧美一进一出视频| 国产激情视频一区二区三区欧美| 欧美国产成人精品一区二区三区| 久久精品国产综合| 你懂的一区二区三区| 蜜桃色一区二区三区| 欧美日韩在线播放三区四区| av电影免费在线看| 性做爰过程免费播放| 国产亚洲精品bt天堂精选|