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

為什么有HTTP協議,還要有websocket協議

網絡 通信技術
這是由于HTTP協議設計之初,考慮的是看看網頁文本的場景,能做到客戶端發(fā)起請求再由服務器響應,就夠了,根本就沒考慮網頁游戲這種,客戶端和服務器之間都要互相主動發(fā)大量數據的場景。

?平時我們打開網頁,比如購物網站某寶。都是點一下列表商品,跳轉一下網頁就到了商品詳情。

從HTTP協議的角度來看,就是點一下網頁上的某個按鈕,前端發(fā)一次HTTP請求,網站返回一次HTTP響應。

這種由客戶端主動請求,服務器響應的方式也滿足大部分網頁的功能場景。

但有沒有發(fā)現,這種情況下,服務器從來就不會主動給客戶端發(fā)一次消息。

就像你喜歡的女生從來不會主動找你一樣。

但如果現在,你在刷網頁的時候右下角突然彈出一個小廣告,提示你【一個人在家偷偷才能玩哦】。

求知,好學,勤奮,這些刻在你DNA里的東西都動起來了。

你點開后發(fā)現。

長相平平無奇的古某提示你"道士9條狗,全服橫著走"。

影帝某輝老師跟你說"系兄弟就來砍我"。

來都來了,你就選了個角色進到了游戲界面里。

這時候,上來就是一個小怪,從遠處走來,然后瘋狂拿木棒子抽你。

你全程沒點任何一次鼠標。服務器就自動將怪物的移動數據和數據源源不斷發(fā)給你了。

這….太暖心了。

感動之余,問題就來了,

像這種看起來服務器主動發(fā)消息給客戶端的場景,是怎么做到的?

在真正回答這個問題之前,我們先來聊下一些相關的知識背景。

使用HTTP不斷輪詢

其實問題的痛點在于,怎么樣才能在用戶不做任何操作的情況下,網頁能收到消息并發(fā)生變更。

最常見的解決方案是,網頁的前端代碼里不斷定時發(fā)HTTP請求到服務器,服務器收到請求后給客戶端響應消息。

這其實時一種偽服務器推的形式。

它其實并不是服務器主動發(fā)消息到客戶端,而是客戶端自己不斷偷偷請求服務器,只是用戶無感知而已。

用這種方式的場景也有很多,最常見的就是掃碼登錄。

比如某信公眾號平臺,登錄頁面二維碼出現之后,前端網頁根本不知道用戶掃沒掃,于是不斷去向后端服務器詢問,看有沒有人掃過這個碼。而且是以大概1到2秒的間隔去不斷發(fā)出請求,這樣可以保證用戶在掃碼后能在1到2s內得到及時的反饋,不至于等太久。

圖片

使用HTTP定時輪詢

但這樣,會有兩個比較明顯的問題

  • 當你打開F12頁面時,你會發(fā)現滿屏的HTTP請求。雖然很小,但這其實也消耗帶寬,同時也會增加下游服務器的負擔。
  • 最壞情況下,用戶在掃碼后,需要等個1~2s,正好才觸發(fā)下一次http請求,然后才跳轉頁面,用戶會感到明顯的卡頓。

使用起來的體驗就是,二維碼出現后,手機掃一掃,然后在手機上點個確認,這時候卡頓等個1~2s,頁面才跳轉。

圖片

不斷輪詢查看是否有掃碼

那么問題又來了,有沒有更好的解決方案?

有,而且實現起來成本還非常低。

長輪詢

我們知道,HTTP請求發(fā)出后,一般會給服務器留一定的時間做響應,比如3s,規(guī)定時間內沒返回,就認為是超時。

如果我們的HTTP請求將超時設置的很大,比如30s,在這30s內只要服務器收到了掃碼請求,就立馬返回給客戶端網頁。如果超時,那就立馬發(fā)起下一次請求。

這樣就減少了HTTP請求的個數,并且由于大部分情況下,用戶都會在某個30s的區(qū)間內做掃碼操作,所以響應也是及時的。

圖片

長輪詢

比如,某度云網盤就是這么干的。所以你會發(fā)現一掃碼,手機上點個確認,電腦端網頁就秒跳轉,體驗很好。

圖片

長輪詢的方式來替代

真一舉兩得。

像這種發(fā)起一個請求,在較長時間內等待服務器響應的機制,就是所謂的長訓輪機制。我們常用的消息隊列RocketMQ中,消費者去取數據時,也用到了這種方式。

圖片

RocketMQ的消費者通過長輪詢獲取數據

像這種,在用戶不感知的情況下,服務器將數據推送給瀏覽器的技術,就是所謂的服務器推送技術,它還有個毫不沾邊的英文名,comet技術,大家聽過就好。

上面提到的兩種解決方案,本質上,其實還是客戶端主動去取數據。

對于像掃碼登錄這樣的簡單場景還能用用。

但如果是網頁游戲呢,游戲一般會有大量的數據需要從服務器主動推送到客戶端。

這就得說下websocket了。

websocket是什么

我們知道TCP連接的兩端,同一時間里,雙方都可以主動向對方發(fā)送數據。這就是所謂的全雙工。

而現在使用最廣泛的HTTP1.1,也是基于TCP協議的,同一時間里,客戶端和服務器只能有一方主動發(fā)數據,這就是所謂的半雙工。

也就是說,好好的全雙工TCP,被HTTP用成了半雙工。

為什么?

這是由于HTTP協議設計之初,考慮的是看看網頁文本的場景,能做到客戶端發(fā)起請求再由服務器響應,就夠了,根本就沒考慮網頁游戲這種,客戶端和服務器之間都要互相主動發(fā)大量數據的場景。

所以為了更好的支持這樣的場景,我們需要另外一個基于TCP的新協議。

于是新的應用層協議websocket就被設計出來了。

大家別被這個名字給帶偏了。雖然名字帶了個socket,但其實socket和websocket之間,就跟雷峰和雷峰塔一樣,二者接近毫無關系。

圖片

websocket在四層網絡協議中的位置

怎么建立websocket連接

我們平時刷網頁,一般都是在瀏覽器上刷的,一會刷刷圖文,這時候用的是HTTP協議,一會打開網頁游戲,這時候就得切換成我們新介紹的websocket協議。

為了兼容這些使用場景。瀏覽器在TCP三次握手建立連接之后,都統(tǒng)一使用HTTP協議先進行一次通信。

  • 如果此時是普通的HTTP請求,那后續(xù)雙方就還是老樣子繼續(xù)用普通HTTP協議進行交互,這點沒啥疑問。
  • 如果這時候是想建立websocket連接,就會在HTTP請求里帶上一些特殊的header頭。
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Key: T2a6wZlAwhgQNqruZ2YUyg==\r\n

這些header頭的意思是,瀏覽器想升級協議(Connection: Upgrade),并且想升級成websocket協議(Upgrade: websocket)。

同時帶上一段隨機生成的base64碼(Sec-WebSocket-Key),發(fā)給服務器。

如果服務器正好支持升級成websocket協議。就會走websocket握手流程,同時根據客戶端生成的base64碼,用某個公開的算法變成另一段字符串,放在HTTP響應的 Sec-WebSocket-Accept? 頭里,同時帶上101狀態(tài)碼,發(fā)回給瀏覽器。

HTTP/1.1 101 Switching Protocols\r\n
Sec-WebSocket-Accept: iBJKv/ALIW2DobfoA4dmr3JHBCY=\r\n
Upgrade: websocket\r\n
Connection: Upgrade\r\n

http狀態(tài)碼=200(正常響應)的情況,大家見得多了。101確實不常見,它其實是指協議切換。

圖片

base64轉為新的字符串

之后,瀏覽器也用同樣的公開算法將base64碼轉成另一段字符串,如果這段字符串跟服務器傳回來的字符串一致,那驗證通過。

圖片

對比客戶端和服務端生成的字符串

就這樣經歷了一來一回兩次HTTP握手,websocket就建立完成了,后續(xù)雙方就可以使用webscoket的數據格式進行通信了。

圖片

建立websocket連接.drawio

websocket抓包

我們可以用wireshark抓個包,實際看下數據包的情況。

圖片

客戶端請求升級為websocket

上面這張圖,注意畫了紅框的第2445?行報文,是websocket的第一次握手,意思是發(fā)起了一次帶有特殊Header的HTTP請求。

圖片

服務器同意升級為websocket協議

上面這個圖里畫了紅框的4714?行報文,就是服務器在得到第一次握手后,響應的第二次握手,可以看到這也是個HTTP類型的報文,返回的狀態(tài)碼是101。同時可以看到返回的報文header中也帶有各種websocket?相關的信息,比如Sec-WebSocket-Accept。

圖片

兩次HTTP請求之后正式使用websocket通信

上面這張圖就是全貌了,從截圖上的注釋可以看出,websocket和HTTP一樣都是基于TCP的協議。經歷了三次TCP握手之后,利用HTTP協議升級為websocket協議。

你在網上可能會看到一種說法:"websocket是基于HTTP的新協議",其實這并不對,因為websocket只有在建立連接時才用到了HTTP,升級完成之后就跟HTTP沒有任何關系了。

這就好像你喜歡的女生通過你要到了你大學室友的微信,然后他們自己就聊起來了。你能說這個女生是通過你去跟你室友溝通的嗎?不能。你跟HTTP一樣,都只是個工具人。

這就有點"借殼生蛋"的那意思。

圖片

HTTP和websocket的關系

websocket的消息格式

上面提到在完成協議升級之后,兩端就會用webscoket的數據格式進行通信。

數據包在websocket中被叫做幀。

我們來看下它的數據格式長什么樣子。

圖片

websocket報文格式

這里面字段很多,但我們只需要關注下面這幾個。

opcode字段:這個是用來標志這是個什么類型的數據幀。比如。

等于1時是指text類型(string)的數據包

等于2是二進制數據類型([]byte)的數據包

等于8是關閉連接的信號

payload字段:存放的是我們真正想要傳輸的數據的長度,單位是字節(jié)。比如你要發(fā)送的數據是字符串"111"?,那它的長度就是3。

圖片

另外,可以看到,我們存放payload長度的字段有好幾個,我們既可以用最前面的7bit?, 也可以用后面的7+16bit或7+64bit。

那么問題就來了。

我們知道,在數據層面,大家都是01二進制流。我怎么知道什么情況下應該讀7bit,什么情況下應該讀7+16bit呢?

websocket會用最開始的7bit做標志位。不管接下來的數據有多大,都先讀最先的7個bit,根據它的取值決定還要不要再讀個16bit或64bit。

  • 如果最開始的7bit的值是 0~125,那么它就表示了 payload 全部長度,只讀最開始的7個bit就完事了。

圖片

payload長度在0到125之間

  • 如果是126(0x7E)。那它表示payload的長度范圍在 126~65535 之間,接下來還需要再讀16bit。這16bit會包含payload的真實長度。

圖片

payload長度在126到65535之間

  • 如果是127(0x7F)。那它表示payload的長度范圍>=65536,接下來還需要再讀64bit。這64bit會包含payload的長度。這能放2的64次方byte的數據,換算一下好多個TB,肯定夠用了。

圖片

payload長度大于等于65536的情況

payload data字段:這里存放的就是真正要傳輸的數據,在知道了上面的payload長度后,就可以根據這個值去截取對應的數據。

大家有沒有發(fā)現一個小細節(jié),websocket的數據格式也是  數據頭(內含payload長度) + payload data 的形式。

之前寫的《既然有HTTP協議,為什么還要有RPC》提到過,TCP協議本身就是全雙工,但直接使用純裸TCP去傳輸數據,會有粘包的"問題"。為了解決這個問題,上層協議一般會用消息頭+消息體的格式去重新包裝要發(fā)的數據。

而消息頭里一般含有消息體的長度,通過這個長度可以去截取真正的消息體。

HTTP協議和大部分RPC協議,以及我們今天介紹的websocket協議,都是這樣設計的。

圖片

消息邊界長度標志

websocket的使用場景

websocket完美繼承了TCP協議的全雙工能力,并且還貼心的提供了解決粘包的方案。它適用于需要服務器和客戶端(瀏覽器)頻繁交互的大部分場景。比如網頁/小程序游戲,網頁聊天室,以及一些類似飛書這樣的網頁協同辦公軟件。

回到文章開頭的問題,在使用websocket協議的網頁游戲里,怪物移動以及玩家的行為是服務器邏輯產生的,對玩家產生的傷害等數據,都需要由服務器主動發(fā)送給客戶端,客戶端獲得數據后展示對應的效果。

圖片

websocket的使用場景

總結

  • TCP協議本身是全雙工的,但我們最常用的HTTP1.1,雖然是基于TCP的協議,但它是半雙工的,對于大部分需要服務器主動推送數據到客戶端的場景,都不太友好,因此我們需要使用支持全雙工的websocket協議。
  • 在HTTP1.1里。只要客戶端不問,服務端就不答。基于這樣的特點,對于登錄頁面這樣的簡單場景,可以使用定時輪詢或者長輪詢的方式實現服務器推送(comet)的效果。
  • 對于客戶端和服務端之間需要頻繁交互的復雜場景,比如網頁游戲,都可以考慮使用websocket協議。
  • websocket和socket幾乎沒有任何關系,只是叫法相似。
  • 正因為各個瀏覽器都支持HTTP協議,所以websocket會先利用HTTP協議加上一些特殊的header頭進行握手升級操作,升級成功后就跟HTTP沒有任何關系了,之后就用websocket的數據格式進行收發(fā)數據。?
責任編輯:武曉燕 來源: 小白debug
相關推薦

2022-07-19 08:01:32

HTTP協議RPC

2023-09-07 08:07:56

goHTTP網絡

2023-10-24 15:15:26

HTTPWebSocket

2021-10-12 18:48:07

HTTP 協議Websocket網絡通信

2019-07-15 14:12:01

UDPIP協議

2022-06-07 08:39:35

RPCHTTP

2023-01-12 09:01:01

MongoDBMySQL

2020-11-25 09:36:17

HTTPRPC遠程

2024-07-11 10:41:07

HTTPSHTTP文本傳輸協議

2022-07-12 08:56:18

公平鎖非公平鎖Java

2022-03-18 10:43:12

WebSocketHTML5TCP 連接

2019-07-04 10:49:13

HTTPWebSocket協議

2021-05-10 08:32:32

Websocket協議http

2020-09-12 13:55:03

HTTP3.0UDP協議

2021-10-18 08:35:50

HTTPSHTTP協議

2020-03-10 08:27:24

TCP粘包網絡協議

2022-12-22 21:01:11

2010-06-17 15:53:41

WAP協議

2020-11-30 15:40:40

技術資訊

2017-05-26 10:35:13

前端HTTP
點贊
收藏

51CTO技術棧公眾號

国产精品麻豆va在线播放| 91精选在线观看| 欧美一级片免费观看| 中文字幕一区二区免费| 中文av一区| 亚洲精品久久久一区二区三区 | 99在线免费观看视频| 日本在线观看视频网站| 成人久久久久| 亚洲国产另类久久精品| 一区二区三区 欧美| 视频在线观看入口黄最新永久免费国产| 99国产精品99久久久久久| 国产精品免费一区豆花| 日本亚洲欧美在线| 久久精品亚洲人成影院| 日韩精品高清在线观看| 超碰在线免费av| 欧美性xxx| 亚洲午夜成aⅴ人片| 亚洲女人毛片| 免费在线性爱视频| 成人一区二区三区中文字幕| 国产日韩专区在线| 国产免费一区二区三区四区五区 | 久久伊99综合婷婷久久伊| 92国产精品久久久久首页| 69国产精品视频免费观看| 国产精品vip| 久久精品国产综合| 亚洲精品国产熟女久久久| 欧美日韩一本| 精品国产免费人成在线观看| aaa一级黄色片| 日本欧美一区| 色偷偷一区二区三区| 欧美成人精品免费| 18videosex性欧美麻豆| 国产精品久久久一本精品| 欧美一区2区三区4区公司二百| 韩国中文字幕hd久久精品| 国产精品一色哟哟哟| 国产玖玖精品视频| 中文字幕第31页| 久久久久国产一区二区| 国产91精品视频在线观看| 免费网站看av| 国产精品porn| 欧美激情一区二区三区久久久| 日韩av毛片在线观看| 欧美午夜精品一区二区三区电影| 亚洲日本aⅴ片在线观看香蕉| 国产精品第七页| 欧美a大片欧美片| 亚洲国产91色在线| 伊人网综合视频| 里番精品3d一二三区| 亚洲国产成人精品久久| 漂亮人妻被黑人久久精品| 红杏一区二区三区| 日韩电视剧免费观看网站| 免费黄色三级网站| 亚洲自拍都市欧美小说| 亚洲人成伊人成综合网久久久| 久久久久久久久久久国产精品| 综合亚洲色图| 一区二区在线免费视频| 国产白丝一区二区三区| 国产精品久久久久久| 久久资源免费视频| 欧美成人精品一区二区免费看片| 国产一区二区三区四区三区四| 久久99热精品| www.伊人久久| 青青草伊人久久| 亚洲精品欧美日韩| 黄色a在线观看| 91麻豆免费看| 亚洲视频在线观看日本a| 成人在线播放| 婷婷亚洲久悠悠色悠在线播放| 国产极品美女高潮无套久久久| 国产美女久久| 欧美大胆人体bbbb| 免费在线观看你懂的| 成人看的视频| 欧美精品www| 波多野结衣一二区| 国产乱妇无码大片在线观看| 久久久精品有限公司| 69久久夜色| 亚洲国产视频一区| 亚洲精品高清无码视频| 国产欧美日韩电影| 日韩毛片中文字幕| 欧美日韩一级在线观看| 久久精品官网| 91中文字精品一区二区| 看电影就来5566av视频在线播放| 中文字幕一区二区三中文字幕| 日韩视频在线视频| 成人黄色图片网站| 亚洲第一级黄色片| 国产精品18在线| 一本久道久久综合狠狠爱| 国产精品一区专区欧美日韩| 女人18毛片一区二区三区| 国产亚洲人成网站| 青春草国产视频| 国产在视频一区二区三区吞精| 精品久久一区二区三区| 美女av免费看| 午夜亚洲性色福利视频| 91精品国产91久久久久青草| 国产一区电影| 婷婷丁香久久五月婷婷| 欧美性受xxxx黒人xyx性爽| 精品在线播放| 午夜精品一区二区三区在线视 | 涩涩视频在线免费看| 4438x亚洲最大成人网| 欧美狂猛xxxxx乱大交3| 精品福利av| 97免费资源站| 黄色网址在线免费观看| 欧美影院一区二区| 人妻在线日韩免费视频| 国产一区久久| 亚洲综合小说区| 日本暖暖在线视频| 欧美亚洲丝袜传媒另类| 自拍偷拍视频亚洲| 翔田千里一区二区| 精品无人区一区二区三区 | 成人一级毛片| 国产suv精品一区二区| 日韩福利一区二区| 午夜精品久久久久久久久久| 熟妇女人妻丰满少妇中文字幕| 日韩欧美在线中字| 国产精品入口免费视| 国产福利第一视频在线播放| 色综合视频一区二区三区高清| 久久福利小视频| 亚洲精品专区| 久久99精品久久久久久水蜜桃| 超碰97国产精品人人cao| 精品少妇一区二区三区视频免付费| 97在线观看免费高| 激情av综合网| 免费的av在线| 91亚洲精品视频在线观看| 毛片精品免费在线观看| av片免费播放| 亚洲成av人片一区二区| 7788色淫网站小说| 久久亚洲国产精品一区二区| 欧美日产一区二区三区在线观看| sese综合| 色先锋资源久久综合5566| 中文字幕在线2018| 亚洲视频综合在线| 国产免费无码一区二区| 亚洲午夜一级| 免费看污久久久| 秋霞国产精品| 欧美成人激情在线| 蜜桃视频在线观看www| 欧美日韩亚洲国产一区| 非洲一级黄色片| 国产在线国偷精品免费看| 日韩人妻一区二区三区蜜桃视频| eeuss鲁片一区二区三区| 97视频人免费观看| 美国一级片在线免费观看视频 | 亚洲人亚洲人色久| 国产精品久久久久久久久男| 久草资源在线观看| 亚洲成av人片在线观看香蕉| 神马久久久久久久| 亚洲欧洲av在线| 国产精品麻豆入口| 免费看精品久久片| 日韩一级免费看| 天堂一区二区三区四区| 国产女同一区二区| 77thz桃花论族在线观看| 一区二区三区国产在线观看| 国产精品免费无遮挡| 亚洲成人精品一区二区| av网站免费在线看| 国产成人免费视频| 国产a级片免费观看| 中出一区二区| 色噜噜狠狠一区二区三区| 美女精品久久| 国产精品久久不能| 91制片在线观看| 中文字幕亚洲欧美日韩2019| 欧美亚洲精品在线观看| 欧美日韩国产一区| 天天做天天爱夜夜爽| 亚洲色图视频网| 97伦伦午夜电影理伦片| 国产精品白丝jk黑袜喷水| 精品少妇无遮挡毛片| 激情久久久久久| 日本特级黄色大片| 亚洲宅男一区| 国产精品一区二区三区精品| 欧美日韩卡一| 日本视频久久久| 福利在线导航136| 久久精品久久久久久| 九色在线视频| 精品亚洲一区二区| 好吊色视频一区二区| 在线成人免费观看| 最好看的日本字幕mv视频大全 | 亚洲 自拍 另类小说综合图区| 欧美残忍xxxx极端| 日本一区不卡| 日韩精品欧美大片| 成人xxxxx色| 国产日本亚洲| 91在线直播亚洲| 免费视频成人| 国产精品狼人色视频一区| 日韩精品美女| 51精品在线观看| hd国产人妖ts另类视频| 欧美成人激情图片网| 顶级网黄在线播放| 伊人久久久久久久久久久久久| 日本激情一区二区三区| 欧美成人官网二区| а√中文在线资源库| 欧美一级高清片| 一级欧美一级日韩| 欧美浪妇xxxx高跟鞋交| 一区二区不卡视频在线观看| 欧美三级在线看| 曰批又黄又爽免费视频| 欧美制服丝袜第一页| 国产情侣呻吟对白高潮| 欧美揉bbbbb揉bbbbb| 中文字幕一区2区3区| 欧美三级电影网| 国产一区二区在线视频观看| 7777精品伊人久久久大香线蕉最新版| 亚洲字幕av一区二区三区四区| 欧日韩精品视频| 亚洲天堂狠狠干| 6080日韩午夜伦伦午夜伦| 国产免费av观看| 欧美一级高清大全免费观看| 国产女人高潮毛片| 日韩欧美二区三区| 神马久久久久久久久久| 日韩精品亚洲视频| 黄色av网站在线| 色哟哟亚洲精品一区二区| 日本中文字幕在线观看| 久久精品夜夜夜夜夜久久| 污污的视频在线观看| 97在线免费观看视频| 欧美momandson| 国产免费一区二区三区在线观看| 国产精品麻豆| 成人三级视频在线观看一区二区| 精品欠久久久中文字幕加勒比| 极品尤物一区二区三区| 一区二区三区四区在线看| 日韩一区二区三区高清| 亚欧美无遮挡hd高清在线视频| 青青青在线视频播放| 国产精品久久久久久模特| 超碰在线公开97| 国产精品综合在线视频| 国产成人无码一区二区在线观看| 欧美激情一区二区三区在线| 日本在线一级片| 精品久久久久久久久久| 中文字幕1区2区3区| 日韩女优视频免费观看| 四虎成人免费在线| 色天天综合狠狠色| 成人免费网站观看| 国产精品视频久| 丁香综合av| 亚洲高清精品中出| 在线日本成人| 潘金莲激情呻吟欲求不满视频| 成人免费的视频| 国产精品成人在线视频| 亚洲va韩国va欧美va精品| 无码人妻久久一区二区三区不卡| 日韩一区二区麻豆国产| 你懂的在线免费观看| 欧美日韩国产成人在线| 99riav视频一区二区| 国产一级二级三级精品| 91影院成人| 国内外成人激情视频| 国产成人亚洲精品狼色在线| 国产精品一二三区在线观看| 亚洲成av人片在线| 一本到在线视频| 亚洲人成在线观看| jizzjizz中国精品麻豆| 成人网在线免费看| 欧美色女视频| 你懂的av在线| 国产69精品久久久久毛片| 日韩免费av一区| 欧美色综合影院| 欧美白人做受xxxx视频| 久久久久久18| 精品一区二区三区中文字幕在线| 视频一区二区三区在线观看| 亚洲一区免费| 久久人人97超碰精品888| 在线观看日本视频| 欧美顶级少妇做爰| jizzjizz在线观看| 97在线视频国产| 成人h动漫精品一区二区器材| 成年人三级视频| 国模大尺度一区二区三区| 国产又粗又硬视频| 欧洲一区在线电影| 青青草av免费在线观看| 孩xxxx性bbbb欧美| 亚洲国产视频二区| 黄色网在线视频| 国产主播一区二区三区| 日韩一卡二卡在线观看| 欧美日韩黄视频| www在线免费观看| 国产精品久久久久99| 国产一区二区三区电影在线观看 | 青青操视频在线播放| 欧美一区二区人人喊爽| 成人看片免费| 亚洲综合自拍一区| 欧美国产免费| japan高清日本乱xxxxx| 亚洲在线一区二区三区| 亚洲成人一级片| 97视频在线观看免费| 日韩精品免费一区二区三区竹菊| 国产91在线免费| 国产清纯美女被跳蛋高潮一区二区久久w| 国产精品一区无码| 中文字幕日韩精品有码视频| 免费成人黄色网| 粉嫩av一区二区三区天美传媒 | 特级西西人体高清大胆| 欧美日韩一区二区三区在线看| 91在线看黄| 亚洲自拍偷拍在线| 亚洲精品日韩久久| 30一40一50老女人毛片| 欧美视频一二三区| 国产色在线观看| 国产欧美日韩亚洲| 丝瓜av网站精品一区二区| 国产又黄又粗的视频| 91精品国产福利| 高清视频在线观看三级| 日本一区二区三区四区高清视频| 久久se精品一区精品二区| 青青草原在线免费观看| 亚洲成人动漫在线播放| 美女100%一区| 大地资源第二页在线观看高清版| 国产精品996| 黄色片免费观看视频| 色婷婷综合久久久久| 成人av综合网| 噼里啪啦国语在线观看免费版高清版 | 国产精品久久久久久久久久小说 | 牛牛视频精品一区二区不卡| 国产男女激情视频| 综合婷婷亚洲小说| 天天操天天干天天| 国产啪精品视频网站| 亚洲欧洲一区二区天堂久久| www.日本高清视频| 欧美videofree性高清杂交| 午夜精品成人av| 伊人再见免费在线观看高清版 | 国产精品99久久久久久成人| 亚洲国产精品99| 青青草国产一区二区三区| 免费拍拍拍网站| 国产精品久久夜| 性xxxfllreexxx少妇| 91麻豆国产语对白在线观看| 一本色道久久综合亚洲精品不卡 |