日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 課堂 > 網絡協議 > 正文

HTTP協議Keep-Alive模式詳解和HTTP頭字段總結

2020-10-24 11:54:05
字體:
來源:轉載
供稿:網友

1、什么是Keep-Alive模式?

我們知道HTTP協議采用“請求-應答”模式,當使用普通模式,即非KeepAlive模式時,每個請求/應答客戶和服務器都要新建一個連接,完成 之后立即斷開連接(HTTP協議為無連接的協議);當使用Keep-Alive模式(又稱持久連接、連接重用)時,Keep-Alive功能使客戶端到服 務器端的連接持續有效,當出現對服務器的后繼請求時,Keep-Alive功能避免了建立或者重新建立連接。


http 1.0中默認是關閉的,需要在http頭加入"Connection: Keep-Alive",才能啟用Keep-Alive;http 1.1中默認啟用Keep-Alive,如果加入"Connection: close ",才關閉。目前大部分瀏覽器都是用http1.1協議,也就是說默認都會發起Keep-Alive的連接請求了,所以是否能完成一個完整的Keep- Alive連接就看服務器設置情況。

2、啟用Keep-Alive的優點

從上面的分析來看,啟用Keep-Alive模式肯定更高效,性能更高。因為避免了建立/釋放連接的開銷。下面是RFC 2616 上的總結:
By opening and closing fewer TCP connections, CPU time is saved in routers and hosts (clients, servers, proxies, gateways, tunnels, or caches), and memory used for TCP protocol control blocks can be saved in hosts.
HTTP requests and responses can be pipelined on a connection. Pipelining allows a client to make multiple requests without waiting for each response, allowing a single TCP connection to be used much more efficiently, with much lower elapsed time.
Network congestion is reduced by reducing the number of packets caused by TCP opens, and by allowing TCP sufficient time to determine the congestion state of the network.
Latency on subsequent requests is reduced since there is no time spent in TCP's connection opening handshake.
HTTP can evolve more gracefully, since errors can be reported without the penalty of closing the TCP connection. Clients using     future versions of HTTP might optimistically try a new feature, but if communicating with an older server, retry with old   semantics after an error is reported.
RFC 2616 (P47)還指出:單用戶客戶端與任何服務器或代理之間的連接數不應該超過2個。一個代理與其它服務器或代碼之間應該使用不超過2 * N的活躍并發連接。這是為了提高HTTP響應時間,避免擁塞(冗余的連接并不能代碼執行性能的提升)。

3、回到我們的問題(即如何判斷消息內容/長度的大小?)

Keep-Alive模式,客戶端如何判斷請求所得到的響應數據已經接收完成(或者說如何知道服務器已經發生完了數據)?我們已經知道 了,Keep-Alive模式發送玩數據HTTP服務器不會自動斷開連接,所有不能再使用返回EOF(-1)來判斷(當然你一定要這樣使用也沒有辦法,可 以想象那效率是何等的低)!下面我介紹兩種來判斷方法。
3.1、使用消息首部字段Conent-Length

故名思意,Conent-Length表示實體內容長度,客戶端(服務器)可以根據這個值來判斷數據是否接收完成。但是如果消息中沒有Conent-Length,那該如何來判斷呢?又在什么情況下會沒有Conent-Length呢?請繼續往下看……

3.2、使用消息首部字段Transfer-Encoding

當客戶端向服務器請求一個靜態頁面或者一張圖片時,服務器可以很清楚的知道內容大小,然后通過Content-length消息首部字段告訴客戶端 需要接收多少數據。但是如果是動態頁面等時,服務器是不可能預先知道內容大小,這時就可以使用Transfer-Encoding:chunk模式來傳輸 數據了。即如果要一邊產生數據,一邊發給客戶端,服務器就需要使用"Transfer-Encoding: chunked"這樣的方式來代替Content-Length。

chunk編碼將數據分成一塊一塊的發生。Chunked編碼將使用若干個Chunk串連而成,由一個標明長度為0 的chunk標示結束。每個Chunk分為頭部和正文兩部分,頭部內容指定正文的字符總數(十六進制的數字 )和數量單位(一般不寫),正文部分就是指定長度的實際內容,兩部分之間用回車換行(CRLF) 隔開。在最后一個長度為0的Chunk中的內容是稱為footer的內容,是一些附加的Header信息(通常可以直接忽略)。 Chunk編碼的格式如下:

復制代碼
代碼如下:

Chunked-Body = *<strong>chunk </strong>
"0" CRLF
footer
CRLF
chunk = chunk-size [ chunk-ext ] CRLF
chunk-data CRLF</p><p>hex-no-zero = &lt;HEX excluding "0"&gt;</p><p>chunk-size = hex-no-zero *HEX
chunk-ext = *( ";" chunk-ext-name [ "=" chunk-ext-value ] )
chunk-ext-name = token
chunk-ext-val = token | quoted-string
chunk-data = chunk-size(OCTET)</p><p>footer = *entity-header

即Chunk編碼由四部分組成: 1、<strong>0至多個chunk塊</strong> ,2、<strong>"0" CRLF </strong>,3、<strong>footer </strong>,4、<strong>CRLF</strong> <strong>.</strong> 而每個chunk塊由:chunk-size、chunk-ext(可選)、CRLF、chunk-data、CRLF組成。

4、消息長度的總結

其實,上面2中方法都可以歸納為是如何判斷http消息的大小、消息的數量。RFC 2616 對 消息的長度總結如下:一個消息的transfer-length(傳輸長度)是指消息中的message-body(消息體)的長度。當應用了 transfer-coding(傳輸編碼),每個消息中的message-body(消息體)的長度(transfer-length)由以下幾種情況 決定(優先級由高到低):
任何不含有消息體的消息(如1XXX、204、304等響應消息和任何頭(HEAD,首部)請求的響應消息),總是由一個空行(CLRF)結束。
如果出現了Transfer-Encoding頭字段 并且值為非“identity”,那么transfer-length由“chunked” 傳輸編碼定義,除非消息由于關閉連接而終止。
如果出現了Content-Length頭字段,它的值表示entity-length(實體長度)和transfer-length(傳輸長 度)。如果這兩個長度的大小不一樣(i.e.設置了Transfer-Encoding頭字段),那么將不能發送Content-Length頭字段。并 且如果同時收到了Transfer-Encoding字段和Content-Length頭字段,那么必須忽略Content-Length字段。
如果消息使用媒體類型“multipart/byteranges”,并且transfer-length 沒有另外指定,那么這種自定界(self-delimiting)媒體類型定義transfer-length 。除非發送者知道接收者能夠解析該類型,否則不能使用該類型。
由服務器關閉連接確定消息長度。(注意:關閉連接不能用于確定請求消息的結束,因為服務器不能再發響應消息給客戶端了。)
為了兼容HTTP/1.0應用程序,HTTP/1.1的請求消息體中必須包含一個合法的Content-Length頭字段,除非知道服務器兼容 HTTP/1.1。一個請求包含消息體,并且Content-Length字段沒有給定,如果不能判斷消息的長度,服務器應該用用400 (bad request) 來響應;或者服務器堅持希望收到一個合法的Content-Length字段,用 411 (length required)來響應。

所有HTTP/1.1的接收者應用程序必須接受“chunked” transfer-coding (傳輸編碼),因此當不能事先知道消息的長度,允許使用這種機制來傳輸消息。消息不應該夠同時包含 Content-Length頭字段和non-identity transfer-coding。如果一個消息同時包含non-identity transfer-coding和Content-Length ,必須忽略Content-Length 。

5、HTTP頭字段總結

最后我總結下HTTP協議的頭部字段。
1、 Accept:告訴WEB服務器自己接受什么介質類型,/ 表示任何類型,type/* 表示該類型下的所有子類型,type/sub-type。
2、 Accept-Charset: 瀏覽器申明自己接收的字符集 Accept-Encoding: 瀏覽器申明自己接收的編碼方法,通常指定壓縮方法,是否支持壓縮,支持什么壓縮方法(gzip,deflate) Accept-Language:瀏覽器申明自己接收的語言 語言跟字符集的區別:中文是語言,中文有多種字符集,比如big5,gb2312,gbk等等。
3、 Accept-Ranges:WEB服務器表明自己是否接受獲取其某個實體的一部分(比如文件的一部分)的請求。bytes:表示接受,none:表示不接受。
4、 Age:當代理服務器用自己緩存的實體去響應請求時,用該頭部表明該實體從產生到現在經過多長時間了。
5、 Authorization:當客戶端接收到來自WEB服務器的 WWW-Authenticate 響應時,用該頭部來回應自己的身份驗證信息給WEB服務器。
6、 Cache-Control:請求:no-cache(不要緩存的實體,要求現在從WEB服務器去取) max-age:(只接受 Age 值小于 max-age 值,并且沒有過期的對象) max-stale:(可以接受過去的對象,但是過期時間必須小于 max-stale 值) min-fresh:(接受其新鮮生命期大于其當前 Age 跟 min-fresh 值之和的緩存對象) 響應:public(可以用 Cached 內容回應任何用戶) private(只能用緩存內容回應先前請求該內容的那個用戶) no-cache(可以緩存,但是只有在跟WEB服務器驗證了其有效后,才能返回給客戶端) max-age:(本響應包含的對象的過期時間) ALL: no-store(不允許緩存)
7、 Connection:請求:close(告訴WEB服務器或者代理服務器,在完成本次請求的響應后,斷開連接,不要等待本次連接的后續請求了)。 keepalive(告訴WEB服務器或者代理服務器,在完成本次請求的響應后,保持連接,等待本次連接的后續請求)。 響應:close(連接已經關閉)。 keepalive(連接保持著,在等待本次連接的后續請求)。 Keep-Alive:如果瀏覽器請求保持連接,則該頭部表明希望 WEB 服務器保持連接多長時間(秒)。例如:Keep-Alive:300
8、 Content-Encoding:WEB服務器表明自己使用了什么壓縮方法(gzip,deflate)壓縮響應中的對象。例如:Content-Encoding:gzip
9、Content-Language:WEB 服務器告訴瀏覽器自己響應的對象的語言。
10、Content-Length: WEB 服務器告訴瀏覽器自己響應的對象的長度。例如:Content-Length: 26012
11、Content-Range: WEB 服務器表明該響應包含的部分對象為整個對象的哪個部分。例如:Content-Range: bytes 21010-47021/47022
12、Content-Type: WEB 服務器告訴瀏覽器自己響應的對象的類型。例如:Content-Type:application/xml
13、ETag:就是一個對象(比如URL)的標志值,就一個對象而言,比如一個 html 文件,如果被修改了,其 Etag 也會別修改,所以ETag 的作用跟 Last-Modified 的作用差不多,主要供 WEB 服務器判斷一個對象是否改變了。比如前一次請求某個 html 文件時,獲得了其 ETag,當這次又請求這個文件時,瀏覽器就會把先前獲得的 ETag 值發送給WEB 服務器,然后 WEB 服務器會把這個 ETag 跟該文件的當前 ETag 進行對比,然后就知道這個文件有沒有改變了。
14、 Expired:WEB服務器表明該實體將在什么時候過期,對于過期了的對象,只有在跟WEB服務器驗證了其有效性后,才能用來響應客戶請求。是 HTTP/1.0 的頭部。例如:Expires:Sat, 23 May 2009 10:02:12 GMT
15、 Host:客戶端指定自己想訪問的WEB服務器的域名/IP 地址和端口號。例如:Host:rss.sina.com.cn
16、 If-Match:如果對象的 ETag 沒有改變,其實也就意味著對象沒有改變,才執行請求的動作。
17、 If-None-Match:如果對象的 ETag 改變了,其實也就意味著對象也改變了,才執行請求的動作。
18、 If-Modified-Since:如果請求的對象在該頭部指定的時間之后修改了,才執行請求的動作(比如返回對象),否則返回代碼304,告訴瀏覽器 該對象沒有修改。例如:If-Modified-Since:Thu, 10 Apr 2008 09:14:42 GMT
19、 If-Unmodified-Since:如果請求的對象在該頭部指定的時間之后沒修改過,才執行請求的動作(比如返回對象)。
20、 If-Range:瀏覽器告訴 WEB 服務器,如果我請求的對象沒有改變,就把我缺少的部分給我,如果對象改變了,就把整個對象給我。瀏覽器通過發送請求對象的 ETag 或者 自己所知道的最后修改時間給 WEB 服務器,讓其判斷對象是否改變了。總是跟 Range 頭部一起使用。
21、 Last-Modified:WEB 服務器認為對象的最后修改時間,比如文件的最后修改時間,動態頁面的最后產生時間等等。例如:Last-Modified:Tue, 06 May 2008 02:42:43 GMT
22、 Location:WEB 服務器告訴瀏覽器,試圖訪問的對象已經被移到別的位置了,到該頭部指定的位置去取。例如:Location:http://i0.sinaimg.cn/dy/deco/2008/0528/sinahome_0803_ws_005_text_0.gif</a>
23、 Pramga:主要使用 Pramga: no-cache,相當于 Cache-Control: no-cache。例如:Pragma:no-cache
24、 Proxy-Authenticate: 代理服務器響應瀏覽器,要求其提供代理身份驗證信息。Proxy-Authorization:瀏覽器響應代理服務器的身份驗證請求,提供自己的身份信息。
25、 Range:瀏覽器(比如 Flashget 多線程下載時)告訴 WEB 服務器自己想取對象的哪部分。例如:Range: bytes=1173546-
26、 Referer:瀏覽器向 WEB 服務器表明自己是從哪個 網頁/URL 獲得/點擊 當前請求中的網址/URL。例如:Referer:http://www.sina.com/</a>
27、 Server: WEB 服務器表明自己是什么軟件及版本等信息。例如:Server:Apache/2.0.61 (Unix)
28、 User-Agent: 瀏覽器表明自己的身份(是哪種瀏覽器)。例如:User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.14) Gecko/20080404 Firefox/2、0、0、14
29、 Transfer-Encoding: WEB 服務器表明自己對本響應消息體(不是消息體里面的對象)作了怎樣的編碼,比如是否分塊(chunked)。例如:Transfer-Encoding: chunked
30、 Vary: WEB服務器用該頭部的內容告訴 Cache 服務器,在什么條件下才能用本響應所返回的對象響應后續的請求。假如源WEB服務器在接到第一個請求消息時,其響應消息的頭部為:Content- Encoding: gzip; Vary: Content-Encoding那么 Cache 服務器會分析后續請求消息的頭部,檢查其 Accept-Encoding,是否跟先前響應的 Vary 頭部值一致,即是否使用相同的內容編碼方法,這樣就可以防止 Cache 服務器用自己 Cache 里面壓縮后的實體響應給不具備解壓能力的瀏覽器。例如:Vary:Accept-Encoding
31、 Via: 列出從客戶端到 OCS 或者相反方向的響應經過了哪些代理服務器,他們用什么協議(和版本)發送的請求。當客戶端請求到達第一個代理服務器時,該服務器會在自己發出的請求里面添 加 Via 頭部,并填上自己的相關信息,當下一個代理服務器收到第一個代理服務器的請求時,會在自己發出的請求里面復制前一個代理服務器的請求的Via 頭部,并把自己的相關信息加到后面,以此類推,當 OCS 收到最后一個代理服務器的請求時,檢查 Via 頭部,就知道該請求所經過的路由。例如:Via:1.0 236.D0707195.sina.com.cn:80 (squid/2.6.STABLE13)
=============================================================================== HTTP 請求消息頭部實例: Host:rss.sina.com.cn User-Agent:Mozilla/5、0 (Windows; U; Windows NT 5、1; zh-CN; rv:1、8、1、14) Gecko/20080404 Firefox/2、0、0、14 Accept:text/xml,application/xml,application/xhtml+xml,text/html;q=0、9,text/plain;q=0、8,image/png,/;q=0、5 Accept-Language:zh-cn,zh;q=0、5 Accept-Encoding:gzip,deflate Accept-Charset:gb2312,utf-8;q=0、7,*;q=0、7 Keep-Alive:300 Connection:keep-alive Cookie:userId=C5bYpXrimdmsiQmsBPnE1Vn8ZQmdWSm3WRlEB3vRwTnRtW &lt;-- Cookie If-Modified-Since:Sun, 01 Jun 2008 12:05:30 GMT Cache-Control:max-age=0 HTTP 響應消息頭部實例: Status:OK - 200 -- 響應狀態碼,表示 web 服務器處理的結果。 Date:Sun, 01 Jun 2008 12:35:47 GMT Server:Apache/2.0.61 (Unix) Last-Modified:Sun, 01 Jun 2008 12:35:30 GMT Accept-Ranges:bytes Content-Length:18616 Cache-Control:max-age=120 Expires:Sun, 01 Jun 2008 12:37:47 GMT Content-Type:application/xml Age:2 X-Cache:HIT from 236-41.D07071951.sina.com.cn -- 反向代理服務器使用的 HTTP 頭部 Via:1.0 236-41.D07071951.sina.com.cn:80 (squid/2.6.STABLE13) Connection:close

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
va中文字幕| 久久精品久久精品国产大片| 欧美日韩国产专区| 国产999精品在线观看| 国产极品嫩模在线视频一区| 国产日产一区二区三区| 色偷偷一区二区三区| 免费国产h视频在线观看86| 亚洲a中文字幕| 高清1区2区| 国产日韩电影| 亚洲一区视频在线观看视频| 91九色在线看| 深夜福利一区| 日韩中文欧美在线| 91精品国产综合久久福利 | 亚洲第一视频| 在线视频第一页| 亚洲第一视频网站| 黄色国产网站在线播放| 亚洲国产午夜精品| 一级片免费在线| 日韩欧美中文在线| 国产偷国产偷亚洲清高网站 | 欧美亚洲综合视频| 国产高清视频一区二区| 精品日韩在线观看| 日韩视频在线免费看| 欧美日韩亚洲国产综合| 亚洲免费精品视频| 精品久久久精品| 日本不卡视频一区| 91精品国产色综合久久不卡蜜臀| 91精品国产自产在线观看永久∴| 欧美在线视频第一页| 日韩精品视频在线| 91精品观看| 精品国产1区二区| 国产一级网站视频在线| 亚洲二区自拍| 精品久久九九| 中文字幕无线码一区| 日本中文字幕在线观看| 国产中文在线播放| av免费看在线| 在线免费视频一区二区| 日韩免费视频一区二区| 欧美中文字幕视频在线观看| 色综合婷婷久久| 成人ww免费完整版在线观看| 97久久精品| 999在线视频| 91av久久久| 国产一区在线不卡| 欧美三级中文字幕在线观看| 婷婷中文字幕综合| 黄色精品在线观看| 精品视频—区二区三区免费| 红桃视频国产一区| 精品国产综合久久| 国产福利在线看| 日韩中文字幕视频在线观看| 欧美 日韩 国产在线观看| 欧美日韩在线观看成人| 亚洲 欧美综合在线网络| 欧美 日韩 综合| 欧美日韩综合在线| 亚洲免费观看在线观看| 日韩视频1区| 国产亚洲二区| 深夜福利一区二区| 成人久久久久| 国产福利一区二区| 精品国产999| 一二三区精品视频| 国产福利精品导航| 日韩午夜中文字幕| 中文字幕在线观看视频www| 91亚洲国产| 91精品网站| 久久精品欧美日韩精品| 精品日韩欧美| 欧美亚洲国产激情| 国产自产视频| 99色在线视频| 中文字幕不卡三区| 一区二区欧美国产| 国产在线日韩欧美| 日韩一级在线免费观看| 国产一级视频| 久久99久久久久| 欧美日韩综合高清一区二区| 国产网站av| 精品久久久视频| 国产网站av| 一区二区不卡视频在线观看| 中文字幕99| 欧美日韩亚州综合| 国产裸舞福利在线视频合集| 亚洲 欧美 精品| 欧美色视频一区二区三区在线观看| 国产三级中文字幕| 欧美日韩一级黄| 中文字幕五月天| 欧美 日韩 国产 高清| 欧美日韩国产免费观看视频| 亚洲羞羞网站| 国产综合成人久久大片91| 国产一区不卡在线| 国产99对白在线播放| 日韩在线视频免费观看 | 国内精品99| 日韩精品在线观看视频| 欧美色视频一区二区三区在线观看| 欧美性极品xxxx做受| 国产无遮挡在线视频免费观看| 久久精品一级爱片| 中文字幕在线观看精品| 99精品一级欧美片免费播放| 欧美高清一区| 亚洲福利视频专区| 欧美日韩精品欧美日韩精品一| 欧美国产综合视频| 影音先锋一区二区资源站 | 日韩精品视频在线观看网址 | 精品999在线| 日韩精品三级| 91久久精品网| www在线视频| 欧美日韩在线三级| 亚洲第一中文字幕| 精品全国在线一区二区| 91精品国产综合久久香蕉最新版| 精品久久人人做人人爽| 97视频在线| 亚洲免费婷婷| 精品国产欧美日韩不卡在线观看 | 欧美日韩精品欧美日韩精品| 亚洲高清中文字幕| 视频一区二区精品的福利| 国产欧美中文字幕| 在线日韩中文| 日韩欧美国产不卡| 最近高清中文在线字幕在线观看1| 国产农村妇女精品一二区| 中文字幕 欧美日韩| 一区二区在线视频播放| 亚洲免费观看在线观看| 欧美日韩国产一区在线| 亚洲国产欧美久久| 午夜精品一区二区三区免费视频| 一级国产黄色片| 91精品国产丝袜白色高跟鞋| 日韩欧美在线视频日韩欧美在线视频| 精品日韩在线观看| 亚洲三级免费看| 亚洲免费中文字幕| 91精品国产91久久久久久久久| 久久夜色精品国产欧美乱极品| 91久久久久| 精品日韩在线播放| 亚洲免费看av| 日韩欧美国产片| 国产 中文 字幕 日韩 在线| 亚洲黄色一区二区| 日韩在线观看视频一区二区| www在线视频| 一区二区三区在线免费| 国产高清一区| 一区二区三区在线免费| 成人一区二区不卡免费| 亚洲一区在线观看网站| 日韩精品视频在线观看视频| 欧美亚洲综合视频| 欧美日韩亚洲一区| av亚洲免费| 国产日韩三级| 亚洲综合欧美在线| 91久久精品国产91久久| 国产绿帽一区二区三区| a级在线免费观看| 日韩精品一区二区三区视频播放| 亚洲一区中文| 日韩一级精品| 日韩久久精品成人| 国产欧美日韩视频在线| 欧美日韩久久久| 欧洲精品在线一区| 精品激情国产视频| 亚洲综合在线视频| 欧美三级中文字幕| 欧美日韩国产专区| 欧美一级免费观看| 日韩欧美亚洲日产国| 国产视频aaa| 国产视频一二区| 日本精品国语自产拍在线观看| 欧美日韩激情一区二区三区| 久久精品在线免费观看| 99色在线视频| 久久99精品久久久久婷婷| 中文在线中文字幕| 在线黄色国产电影| 日韩 欧美 亚洲| 国产在线一在线二| 国产wwww| 色综合婷婷久久| 亚洲一区资源| 欧美乱大交xxxxx免费| 不卡av免费在线| 色综合影院在线| 91精品在线免费观看| 国产在线二区| 欧美日韩国产高清| 国产 中文 字幕 日韩 在线| 中文字幕日韩在线视频| 欧美日韩精品免费看| 国产一级免费在线观看| 日韩av一区在线| 日韩一级二级三级精品视频| 成人福利一区| 一级片免费在线| 久99久视频| 亚洲社区在线| 亚洲免费福利视频| 久久久另类综合| 一区在线免费| 欧美中文字幕精品| 日韩1区在线| 日韩中文字幕视频在线| 国产网站欧美日韩免费精品在线观看| 一区二区视频国产| 蜜桃久久av一区| 伊人国产视频| 中文字幕在线观看播放| 午夜视频在线观看一区| 中文字幕在线视频网| 精品一区二区三区中文字幕| 国产91久久久久| 久久精品久久久久| 国产在线一在线二| 国产免费不卡av| 亚洲福利在线看| 91蜜桃在线视频| 欧美日韩中文另类| 一区二区三区在线免费| 中文字幕精品视频在线| 欧美日韩一级黄| 国产福利一区在线观看| 一区二区欧美国产| 91精品免费在线观看| 国产伦精品免费视频| 91久久精品国产91久久| 日韩一级在线免费观看| 在线国产91| 精品亚洲永久免费| 日韩欧美三级在线| 日韩欧美在线网址| 美女在线视频一区| 日本不卡视频一区| 欧美日韩中文字幕| 日韩高清不卡一区| 国产丝袜一区二区| 高清1区2区| 欧美国产综合在线V| 午夜伊人狠狠久久| 久本草在线中文字幕亚洲欧美| 国产综合成人久久大片91| 国产三级免费观看| 欧美国产日韩综合| 亚洲狠狠婷婷综合久久久久图片| 亚洲综合日韩中文字幕v在线| 日韩欧美国产三级| 国产调教精品| 国产又粗又猛又爽又黄91精品| 日韩欧美国产一二三区| 黄色国产在线| 亚洲一区激情| 日韩av一区二区在线| 国产日韩av高清| 欧美日韩亚洲综合在线| 成片免费观看| 国产一级免费在线观看| 日韩欧美亚洲国产一区| 日韩欧美不卡| 国产蜜臀在线| 亚洲电影中文字幕在线观看| 在线视频你懂得一区| 欧美日韩午夜在线视频| 日韩av二区| 三级网站免费观看| 欧美日韩午夜精品| 欧美日韩在线网站| www.日韩免费| 日韩欧美三级视频| 中文字幕欧美日韩| 91精品国产综合久久久久| 亚洲一区视频在线观看视频| 91精品在线国产| 免费国产h视频在线观看86| 91精品国产综合久久蜜臀| 欧美日韩精品欧美日韩精品一| 国产一区在线不卡| 精品日韩在线观看| 亚洲国产91精品在线观看| 精品国产乱码久久久久久蜜臀 | 日韩 国产 一区| 天天综合天天| 97久久精品午夜一区二区| 一级日韩一级欧美| 福利一区二区| 国产乱国产乱老熟300部视频| 91xxx在线观看| 午夜精品一区二区三区免费视频| 五月天久久比比资源色| 欧美不卡123| 欧美一卡2卡三卡4卡5免费| 美女免费视频一区| 伊人中文字幕在线观看| 久久99精品久久久久子伦| 精品视频久久| 欧美色视频一区二区三区在线观看| 国产成人精品999在线观看| 亚亚洲欧洲精品| 二区三区中文字幕| 亚洲第一中文字幕| 中文字幕日韩欧美在线视频| 欧美日韩在线播放一区| 日本视频久久久| 国产69精品久久久久孕妇国产69久久| 男人的天堂网av| 日韩精品三级| 精品久久久三级| 国产乱国产乱老熟300部视频| 日韩专区视频网站| 国产高清一级片| 欧美国产三级| 欧美不卡视频一区发布| 久久综合九色欧美综合狠狠| 国产视频一区三区| 亚洲第一页中文字幕| 国产在线黄色| 亚洲成在线观看| 精品全国在线一区二区| 欧美日韩三级视频| 国产激情三区| 亚洲图片小说综合| 国产久卡久卡久卡久卡视频精品 | 亚洲高清中文字幕| 国产欧美 在线欧美| 91精品国产调教在线观看| 亚洲成av人片在线| 欧美高清一级片在线| 日韩在线一区二区视频| 欧美日韩在线综合| 日韩精品视频在线观看网址 | 日韩三级在线播放| 日韩精品在线视频观看| 国产三级视频在线| 三级网站免费观看| 国产小视频在线| 中文字幕在线视频久| 国产 欧美 在线| 亚洲视频一二三四| 国产最新在线| 欧美日韩夫妻久久| 不卡视频一区二区| 在线国产1区| 不卡在线一区二区| 亚洲一区精品在线| 天堂在线视频中文网| 亚洲男人在线| 日韩亚洲欧美中文在线| 91精品国产亚洲| 红桃视频国产一区| 欧美日韩亚洲国内综合网俺| 男人的天堂网av| 欧美日韩亚洲综合| 日韩中文字幕视频在线| 日韩手机在线观看视频| 国产三级中文字幕| 国自产拍在线网站网址视频| 国产乱国产乱300精品| 99日韩精品| 亚洲娇小xxxx欧美娇小| 欧美日韩午夜在线| 亚洲制服丝袜一区| 最近中文字幕第一页| 亚洲第一中文字幕在线观看| 日韩精品免费视频一区二区三区| 日韩久久久精品| 在线观看一区日韩| 午夜亚洲一区| 日韩视频一区二区在线观看| 国产欧美日韩中文久久| 欧美在线视频第一页| 一区三区二区视频| 久久网站免费观看| 精品婷婷伊人一区三区三| 亚洲国产综合久久|