亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 課堂 > 網(wǎng)絡(luò)協(xié)議 > 正文

HTTP協(xié)議Keep-Alive模式詳解和HTTP頭字段總結(jié)

2020-02-18 18:57:11
字體:
供稿:網(wǎng)友
這篇文章主要介紹了HTTP協(xié)議Keep-Alive模式詳解和HTTP頭字段總結(jié),需要的朋友可以參考下
 
 

1、什么是Keep-Alive模式?

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


http 1.0中默認(rèn)是關(guān)閉的,需要在http頭加入"Connection: Keep-Alive",才能啟用Keep-Alive;http 1.1中默認(rèn)啟用Keep-Alive,如果加入"Connection: close ",才關(guān)閉。目前大部分瀏覽器都是用http1.1協(xié)議,也就是說默認(rèn)都會(huì)發(fā)起Keep-Alive的連接請(qǐng)求了,所以是否能完成一個(gè)完整的Keep- Alive連接就看服務(wù)器設(shè)置情況。

2、啟用Keep-Alive的優(yōu)點(diǎn)

從上面的分析來看,啟用Keep-Alive模式肯定更高效,性能更高。因?yàn)楸苊饬私?釋放連接的開銷。下面是RFC 2616 上的總結(jié):
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)還指出:?jiǎn)斡脩艨蛻舳伺c任何服務(wù)器或代理之間的連接數(shù)不應(yīng)該超過2個(gè)。一個(gè)代理與其它服務(wù)器或代碼之間應(yīng)該使用不超過2 * N的活躍并發(fā)連接。這是為了提高HTTP響應(yīng)時(shí)間,避免擁塞(冗余的連接并不能代碼執(zhí)行性能的提升)。

3、回到我們的問題(即如何判斷消息內(nèi)容/長(zhǎng)度的大?。浚?/strong>

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

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

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

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

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

復(fù)制代碼
代碼如下:

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至多個(gè)chunk塊</strong> ,2、<strong>"0" CRLF </strong>,3、<strong>footer </strong>,4、<strong>CRLF</strong> <strong>.</strong> 而每個(gè)chunk塊由:chunk-size、chunk-ext(可選)、CRLF、chunk-data、CRLF組成。

 

4、消息長(zhǎng)度的總結(jié)

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

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

5、HTTP頭字段總結(jié)

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



注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到網(wǎng)絡(luò)協(xié)議頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
四虎5151久久欧美毛片| 一区二区免费在线播放| av天堂永久资源网| 欧美性猛交xxxx乱大交蜜桃| 亚洲资源网站| 黄网站免费观看| 亚洲第一福利视频在线| 成人动漫在线观看视频| 成人看片免费| 麻豆成人久久精品二区三区红| 国产亚洲精品久| 久久伊人精品一区二区三区| 91麻豆成人精品国产| 成人黄色在线观看| 精品九九久久| 日韩电影在线观看一区二区| 精品视频一区二区三区在线观看| 青青草国产精品视频| 久久婷婷综合国产| www.爱久久.com| 五月天综合网站| 欧美日韩电影一区二区| 全部免费毛片在线播放网站| 精品一区毛片| 国产稀缺真实呦乱在线| 最近2019年日本中文免费字幕| 丝袜久久网站| 日韩中文在线视频| caoporn97免费视频公开| 97精品久久久午夜一区二区三区| 在线观看91| 激情视频极品美女日韩| 91精品国产闺蜜国产在线闺蜜| 国产精品815.cc红桃| 国产又猛又黄的视频| 国产一区二区三区高清视频| 日韩一区二区三区高清| 久久婷婷综合国产| 中文字幕中文字幕在线十八区| 国内精品久久国产| 91亚洲精品一区二区乱码| 亚洲人成网站77777在线观看| 精品国一区二区三区| 久久久久久久蜜桃| 四季av一区二区三区免费观看| 樱桃视频在线观看一区| 经典三级在线视频| heyzo国产| 国产三级自拍视频| 免费看日b视频| asian性开放少妇pics| 日韩精品一二| 黄色大片在线看| 欧美在线国产精品| 免费vip影院| 亚洲精品国产福利| 91午夜国产| 日本视频一二三区中文字幕| 黄色大秀av大片| 欧美77777| 91网站最新网址| 嫩草影院一区二区三区| 成人激情春色网| 亚洲第一激情av| 校园春色 亚洲| 日日噜噜噜噜久久久精品毛片| 国产精品第七页| eeuss免费天堂影院| av中文在线资源| 自拍偷拍亚洲欧美| 色av男人的天堂免费在线| 日本韩国精品一区二区在线观看| 精品人妻无码一区二区三区蜜桃一| 欧美性videos| 日本三级理论片| 999久久久免费精品国产牛牛| 9.1国产丝袜在线观看| 国产深夜男女无套内射| 99在线精品视频免费观看20| 亚洲欧美日韩一区二区三区在线观看| 91丨九色丨蝌蚪丨老板| 久久香蕉精品| 四虎精品成人影院观看地址| 欧美一区自拍| 亚洲一区二区久久| 国产精品国产三级在线观看| 手机看片一区二区| 亚洲综合激情五月| 欧美xxxxx18| 欧洲午夜精品久久久| 五月天一区二区三区| 午夜在线视频| 91精品一区二区三区蜜桃| 九九久久成人| 永久久久久久| 青青久在线视频免费观看| 色999久久久精品人人澡69| 狠狠色噜噜狠狠狠狠色吗综合| 日韩中文字幕亚洲精品欧美| 国产在线视频综合| 免费偷拍视频网站| 成人精品一区二区三区| 国产又粗又硬又长| 欧美日韩亚洲自拍| 欧美精品久久久久久| 97超碰在线播放| 欧美一区三区四区| 2019亚洲日韩新视频| 国产精品老女人视频| 日本调教视频在线观看| 在线欧美日韩精品| 91av在线看| 手机在线观看日韩av| 一个人看的www视频在线免费观看| 成年人国产在线观看| 欧美乱大交xxxxx| 日韩的一区二区| 人妻互换一二三区激情视频| 天天免费亚洲黑人免费| 人妻无码久久一区二区三区免费| 一级黄色片在线观看| 国产原创一区二区三区| 欧美经典影片视频网站| 91精品国产高清久久久久久久久| 人交獸av完整版在线观看| 国产剧情一区| 国产精品综合色区在线观看| 男女小视频在线观看| 日本成人黄色| 欧美精选在线| 岛国av在线不卡| 亚洲毛片一区二区三区| 亚洲精品综合久久中文字幕| 极品尤物av久久免费看| 成人午夜免费福利| 日韩一区二区高清视频| 国产91对白刺激露脸在线观看| 蜜臀久久精品久久久久| 在线观看日韩专区| 99re精彩视频| 高清国语自产在线观看| www亚洲天堂| 无码av天堂一区二区三区| 一区二区三区|亚洲午夜| 意大利激情丛林无删减版dvd| 在线观看免费视频a| 男的插女的下面视频| 九九热免费在线观看| 日本边添边摸边做边爱的第三级| 91传媒免费观看| 久久夜色精品一区| 精品国产一区二区三区av性色| 99精品视频在线免费播放| 尤物视频网址| 国产在线视频自拍| 91中文在线| 午夜精品久久久久久久99黑人| 国产免费观看高清视频| 亚洲国产一区二区a毛片| hitomi一区二区三区精品| 一区二区三区在线免费观看视频| 两个人看的免费完整在线观看| 国产a级片网站| 亚洲av熟女高潮一区二区| 亚洲日本一区二区| 久久五月婷婷丁香社区| 成人免费xxxxx在线观看| 在线免费看91| 国产裸舞福利在线视频合集| 在线免费看黄色片| 秋霞网一区二区| 美女黄色丝袜一区| 妞干网免费在线视频| 91极品女神私人尤物在线播放| 黄视频免费在线看| 污污视频网站免费观看| 99国产超薄丝袜足j在线观看| 欧美综合天天夜夜久久| 天堂一区在线观看| 久久aⅴ乱码一区二区三区| 7777狠狠狠琪琪电影| 中文字幕日韩一区二区三区不卡| 欧美精品久久99久久在免费线| www.麻豆av.com| 国产精品av一区二区三区| 1024在线看片你懂得| 欧美日韩另类在线| 亚洲永久精品国产| 欧美黄色一级网站| 日韩伦理在线电影| 蜜臀99久久精品久久久久小说| 黄色a级三级三级三级| 青青草视频在线免费播放| 日日骚一区二区三区| 啪啪国产精品| 午夜激情在线| 久久狠狠高潮亚洲精品| 午夜cr在线观看高清在线视频完整版| 日本人体一区二区| 欧美一区二视频在线免费观看| 日本天码aⅴ片在线电影网站| 中文字幕国产视频| 国产亚洲精品美女久久久| 夜夜躁狠狠躁日日躁av| 欧美亚洲日本在线| 国产9色视频| 日本xxxxxxx免费视频| 在线色视频网| 亚洲熟妇av日韩熟妇在线| 久久久一区二区三区不卡| 亚洲永久免费观看| 亚洲综合大片69999| 久久精品久久精品亚洲人| 久久久伊人欧美| 亚洲美女又黄又爽在线观看| 黄视频在线播放| 欧美日韩调教| 一本一道久久a久久精品蜜桃| 欧美日韩dvd在线观看| 成年人在线免费观看视频网站| 国产馆av播放| 日日狠狠久久偷偷综合色| 日韩欧美中文字幕在线播放| 亚洲成人网在线| 99re视频这里只有精品| 麻豆久久久久| 91在线无精精品白丝| 真实国产乱子伦对白在线| 午夜欧美激情| 国产chinese中国hdxxxx| 欧美色xxx| 尤物视频网址| 黄色精品视频在线观看| 99re只有精品| 欧美日韩国产成人高清视频| 少妇大叫太大太粗太爽了a片小说| 欧美影院三区| 精品中文视频在线| 岛国av中文字幕| 久久伊人精品一区二区三区| 国产在线精品日韩| 日韩成人免费在线| 中文日韩在线观看| 国产69精品久久久久9999| 成人精品亚洲| 国产亚洲人成a在线v网站| 成年人在线免费观看视频网站| 黄污网站在线观看| 美女av一区| 国产视频亚洲视频| 福利视频999| 国产精品女同一区二区三区| 日本性视频网| 久久久久久这里只有精品| 欧美视频一区二区三区| 国产欧美精品一区二区色综合| 国产精品久久久久久久蜜臀| 国产成人免费视频网站视频社区| 久久精品免费观看| 亚洲第一精品网站| 亚洲黄色成人久久久| 欧美一级免费看| 一不卡在线视频| 欧美成人高清电影在线| 欧美日韩中文字幕在线观看| 最新av网站在线观看| 国产探花视频在线播放| 在线视频亚洲| 日本高清久久一区二区三区| 免费在线观看视频| 特黄aaaaaaaaa真人毛片| 欧美国产激情视频| 日韩精品在线免费观看| 国产婷婷色一区二区三区在线| 极品国产人妖chinesets亚洲人妖| 久久久精品午夜少妇| 国产一区视频导航| 日韩一区精品视频| 91九色精品国产一区二区| 日韩综合第一页| 午夜激情电影在线播放| 国产福利小视频| 亚洲字幕成人中文在线观看| 欧美肉大捧一进一出免费视频| 欲求不满中文字幕| 在线电影院国产精品| 天堂在线第六区| 亚洲综合色成人| av电影在线免费观看| 久久精品人人做人人爽电影| 亚洲国产精品成人| av在线加勒比| 91久久偷偷做嫩草影院| 国产小视频一区| 亚洲婷婷丁香| 亚洲免费黄色网| 日韩视频在线直播| 无码人妻丰满熟妇区毛片蜜桃精品| 欧美亚洲综合一区| 欧美乱大交xxxxx另类| 日韩中文一区二区| 欧美精品亚洲一区二区在线播放| 在线观看的av| 午夜精品一区二区三区在线| 亚洲经典一区二区| 日本免费一二三区| 在线视频欧美一区| 国产成人永久免费视频| 久久人人97超碰人人澡爱香蕉| 欧洲成人免费视频| 韩国av一区二区三区四区| 日本韩国欧美精品大片卡二| 国产在线精品一区二区不卡了| 欧美一级欧美一级在线播放| 国产精品区一区二区三含羞草| 午夜视频www| 国产毛片在线看| 国产精品50p| 日韩精品一级| 欧美日韩国产在线| 亚洲激情电影中文字幕| 日韩精品视频中文字幕| 亚洲精品小视频在线观看| 日本少妇xxxx| 国产在线视频资源| 热久久免费国产视频| 日本道免费精品一区二区三区| 免费观看国产精品|