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

HTTP史記-從HTTP/1到HTTP/3

網絡 通信技術
HTTP問世之初并沒有作為標準建立,被正式制定為標準是在1996年公布的HTTP/1.0協議。因此,在這之前的協議被稱為HTTP/0.9。

誕生

說起http必然先了解 《萬維網(World Wide Web)》簡稱WWW。

WWW是基于客戶機 <=> 服務器方式 '利用鏈接跳轉站點' 和 '傳輸超文本標記語言(HTML)' 的技術綜合。

1989年仲夏之夜,蒂姆·伯納斯·李成功開發出世界上第一個Web服務器和第一個Web客戶機,這個時候能做的還只是一本電子版的電話號碼簿。

圖片

而HTTP (HyperText Transfer Protocol) 是萬維網的基礎協議,制定了瀏覽器與服務器之間的通訊規則。

通常使用的網絡(包括互聯網)是在TCP/IP協議族的基礎上動作的。而HTTP屬于它的內部的一個子集。

http不斷的實現更多功能,到目前從HTTP 0.9已經演化到了HTTP 3.0。

HTTP/0.9

HTTP問世之初并沒有作為標準建立,被正式制定為標準是在1996年公布的HTTP/1.0協議。因此,在這之前的協議被稱為HTTP/0.9。

request只有一行且只有一個GET命令,命令后面跟著的是資源路徑。

GET /index.$html$

reponse僅包含文件內容本身。

<html>
<body>HELLO WORLD!</body>
</html>

HTTP/0.9沒有header的概念,也沒有content-type的概念,僅能傳遞html文件。同樣由于沒有status code,當發生錯誤的時候是通過傳遞回一個包含錯誤描述的html文件來處理的。

HTTP/1.0

隨著互聯網技術的飛速發展,HTTP協議被使用的越來越廣泛,協議本身的局限性已經不能滿足互聯網功能的多樣性。因此,1996年5月HTTP/1.0誕生,其內容和功能都大大增加了。對比與HTTP/0.9,新的版本包含了以下功能:

  • 在每個request的GET一行后面添加版本號
  • 在response第一行中添加狀態行
  • 在request和response中添加header的概念
  • 在header中添加content-type以此可以傳輸html之外類型的文件
  • 在header中添加content-encoding來支持不同編碼格式文件的傳輸
  • 引入了POST和HEAD命令
  • 支持長連接(默認短連接)
GET /index.html HTTP/1.0
User-Agent: NCSA_Mosaic/2.0 (Windows 3.1)

200 OK
Date: Tue, 15 Nov 1994 08:12:31 GMT
Server: CERN/3.0 libwww/2.17
Content-Type: text/html;charset=utf-8 // 類型,編碼。
<HTML>
A page with an image
<IMG src="/image.gif">
<HTML>

content

簡單的文字頁面自然無法滿足用戶的需求,于是1.0加入了更多的文件類型:

常見Content-Type



text/plan

text/html

text/css

image/jpeg

image/png

image/svg + xml

application/javascript

application/zip

application/pdf

也同樣可以用在html中。

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Content-encoding

由于支持任意數據格式的發送,因此可以先把數據進行壓縮再發送。HTTP/1.0進入了Content-Encoding來表示數據的壓縮方式。

  • Content-Encoding: gzip。【表示采用 Lempel-Ziv coding (LZ77) 壓縮算法,以及32位CRC校驗的編碼方式】。
  • Content-Encoding: compress。【采用 Lempel-Ziv-Welch (LZW) 壓縮算法】。
  • Content-Encoding: deflate?!静捎?zlib 】。

客戶端發送請求帶有表明我可以接受gzip、deflate兩種壓縮方式。

Accept-Encoding: gzip, deflate

服務器在 Content-Encoding 響應首部提供了實際采用的壓縮模式。

Content-Encoding: gzip

HTTP/1.0 缺點

  • 隊頭阻塞(Head-of-Line Blocking? ,每個TCP連接只能發送一個請求。發送數據完畢,連接就關閉,如果還要請求其他資源,就必須再新建一個連接。
  • 默認是短連接,即每個HTTP請求都要使用TCP協議通過三次握手和四次揮手實現。
  • 僅定義了16種狀態碼。

HTTP/1.1

僅僅在HTTP/1.0公布后的幾個月,HTTP/1.1發布了,到目前為止HTTP1.1協議都是作為主流的版本,以至于隨后的近10年時間里都沒有新的HTTP協議版本發布。

對比之前的版本,其主要更新如下:

  • 可以重復使用連接(keep-alive),從而節省時間,不再需要多次打開才能顯示嵌入在單個原始文檔中的資源。
  • 添加了Pipeline,這允許在第一個請求的答案完全傳輸之前發送第二個請求這降低了通信的延遲。
  • chunked機制,分塊響應。
  • 引入了額外的緩存控制機制。
  • 引入了內容協商,包括語言、編碼和類型,客戶端和服務器現在可以就交換哪些內容達成一致。
  • 由于Host標頭,從同一 IP 地址托管不同域的能力允許服務器搭配。

keep-alive

由于建立一個連接的過程需要DNS解析過程以及TCP的三次握手,但在同服務器獲取資源不斷的建立和斷開鏈接需要消耗的資源和時間是巨大的,為了提升連接的效率 HTTP/1.1的及時出現將長連接加入了標準并作為默認實現,服務器端也按照協議保持客戶端的長連接狀態,一個服務端上的多個資源都可以通過這一條連接多個request來獲取。

可以在request header中引入如下信息來告知服務器完成一次request請求后不要關閉連接。

Connection: keep-alive

服務器端也會答復一個相同的信息表示連接仍然有效,但是在當時這只是屬于程序員的自定義行為,在1.0中沒有被納入標準。這其中的提升對于通訊之間的效率提升幾乎是倍增的,

這也為管線化方式(pipelining)打下基礎。

Pipeline (管線化)

HTTP/1.1嘗試通過HTTP管線化技術來解決性能瓶頸,誕生了pipeline機制,如圖從每次response返回結果才能進行下一次request,變為一次連接上多個http request不需要等待response就可以連續發送的技術。

圖片

不幸的是因為HTTP是一個無狀態的協議,一個體積很大的或慢response仍然會阻塞后面所有的請求,每條request無法知道哪條response是返回給他的,服務端只能根據順序來返回response,這就是隊頭阻塞,這導致主流瀏覽器上默認下該功能都是關閉狀態,在http2.0中會解決這個問題。

host頭域

在 HTTP1.0 中認為每臺服務器都綁定一個唯一的 IP 地址,因此,請求消息中的 URL 并沒有傳遞主機名(hostname),1.1中新增的host用來處理一個 IP 地址上面多個虛擬主機的情況。

在請求頭域中新增了Host字段,其用來指定服務器的域名。有了Host字段,在同一臺服務器上就可以搭建不同的網站了,這也為后來虛擬化的發展建好啦地基。

Host: www.alibaba-inc.com

cache機制

Cache不僅可以提高用戶的訪問速率,在移動端設備上還可以為用戶極大節省流量。因此,在HTTP/1.1中新增了很多與Cache相關的頭域并圍繞這些頭域設計了更靈活、更豐富的Cache機制。

Cache機制需要解決的問題包括:

  • 判斷哪些資源可以被Cache及訪問訪問策略。
  • 在本地判斷Cache資源是否已經過期。
  • 向服務端發起問詢,查看已過期的Cache資源是否在服務端發生了變化。

chunked機制

建立好鏈接之后客戶端可以使用該鏈接發送多個請求,用戶通常會通過response header中返回的Content-Length來判斷服務端返回數據的大小。但隨著網絡技術的不斷發展,越來越多的動態資源被引入進來,這時候服務端就無法在傳輸之前知道待傳遞資源的大小,也就無法通過Content-Length來告知用戶資源大小。服務器可以一邊動態產生資源,一邊傳遞給用戶,這種機制稱為“分塊傳輸編碼”(Chunkded Transfer Encoding),允許服務端發送給客戶端的數據分為多個部分,此時服務器端需要在header中添加“Transfer-Encoding: chunked”頭域來替代傳統的“Content-Length。

Transfer-Encoding: chunked

HTTP 緩存機制

相比 HTTP 1.0,HTTP 1.1 新增了若干項緩存機制:

強緩存

強緩存,是瀏覽器優先命中的緩存,速度最快。當我們在狀態碼后面看到 (from memory disk) 時,就表示瀏覽器從內存中讀取了緩存,當進程結束后,也就是 tab 關閉以后,內存里的數據也將不復存在。只有當強緩存不被命中的時候,才會進行協商緩存的查找。

Pragma

Pragma頭域是HTTP/1.0的產物。目前僅作為與HTTP/1.0的向后兼容而定義。它現在僅在請求首部中出現,表示要求所有中間服務器不返回緩存的資源,與Cache-Control: no-cache的意義相同。

Pragma: no-cache

Expires

Expires僅在響應頭域中出現,表示資源的時效性當發生請求時,瀏覽器將會把 Expires  的值與本地時間進行對比,如果本地時間小于設置的時間,則讀取緩存。

Expires 的值為標準的 GMT 格式:

Expires: Wed, 21 Oct 2015 07:28:00 GMT

這里需要注意的是:當header中同時存在Cache-Control: max-age=xx和Expires的時候,以Cache-Control: max-age的時間為準。

Cache-Control

由于 Expires 的局限性, Cache-Control 登場了, 下面說明幾個常用的字段:

  • no-store:緩存不應存儲有關客戶端請求或服務器響應的任何內容。
  • no-cache:在發布緩存副本之前,強制要求緩存把請求提交給原始服務器進行驗證。
  • max-age:相對過期時間,單位為秒(s),告知服務器資源在多少以內是有效的,無需向服務器請求。

協商緩存

當瀏覽器沒有命中強緩存后,便會命中協商緩存,協商緩存由以下幾個 HTTP 字段控制。

Last-Modified

服務端將資源傳送給客戶端的時候,會將資源最后的修改時間以 Last-Modified: GMT 的形式加在實體首部上返回。

Last-Modified: Fri, 22 Jul 2019 01:47:00 GMT

客戶端接收到后會為此資源信息做上標記,等下次重新請求該資源的時候將會帶上時間信息給服務器做檢查,若傳遞的值與服務器上的值一致,則返回 304 ,表示文件沒有被修改過,若時間不一致,則重新進行資源請求并返回 200。

優先級

強緩存 --> 協商緩存Cache-Control  ->  Expires  -> ETag -> Last-Modified。

新增了五種請求方法

OPTIONS:瀏覽器為確定跨域請求資源的安全做的預請求。

PUT:從客戶端向服務器傳送的數據取代指定的文檔的內容。

DELETE :請求服務器刪除指定的頁面。

TRACE:回顯服務器收到的請求,主要用于測試或診斷。

CONNECT:HTTP/1.1 協議中預留給能夠將連接改為管道方式的代理服務器。

新增一系列的狀態碼

可以參考狀態碼大全

Http1.1缺陷

  • 高延遲,帶來頁面加載速度的降低,(網絡延遲問題只要由于隊頭阻塞,導致寬帶無法被充分利用)。
  • 無狀態特性,帶來巨大的Http頭部。
  • 明文傳輸,不安全。
  • 不支持服務器推送消息。

HTTP/2.0

根據時代的發展網頁變得更加復雜。其中一些甚至本身就是應用程序。顯示了更多的視覺媒體,增加了交互性的腳本的數量和大小也增加了。更多的數據通過更多的 HTTP 請求傳輸,這為 HTTP/1.1 連接帶來了更多的復雜性和開銷。為此,谷歌在 2010 年代初實施了一個實驗性協議 SPDY。鑒于SPDY的成功,HTTP/2也采用了SPDY作為整個方案的藍圖進行開發。HTTP/2 于 2015 年 5 月正式標準化。

HTTP/2 與 HTTP/1.1 區別:

  • 二進制幀層。
  • 多路復用協議。可以通過同一連接發出并行請求,從而消除 HTTP/1.x 協議的約束。
  • 頭部壓縮算法HPACK。由于一些請求在一組請求中通常是相似的,因此這消除了傳輸數據的重復和開銷。
  • 它允許服務器通過稱為服務器推送的機制在客戶端緩存中填充數據一張圖來理解HTTP/2 和 HTTP/1.1。

圖片

Header壓縮

HTTP1.x的header帶有大量信息,而且每次都要重復發送,為 HTTP/2 的專門量身打造的 HPACK 便是類似這樣的思路延伸。它使用一份索引表來定義常用的 HTTP Header,通訊雙方各自cache一份header fields表,既避免了重復header的傳輸,又減小了需要傳輸的大小。

圖片

看上去協議的格式和HTTP1.x完全不同了,實際上HTTP2并沒有改變HTTP1.x的語義,只是把原來HTTP1.x的header和body部分用frame重新封裝了一層而已。

多路復用

為了解決HTTP/1.x中存在的隊頭阻塞問題,HTTP/2提出了多路復用的概念。即將一個request/response作為一個stream,并將一個stream根據負載分為多種類型的frame(例如 header frame,data frame等),在同一條connection之上可以混合發送分屬于不同stream的frame,這樣就實現了同時發送多個request的功能,多路復用意味著線頭阻塞將不再是一個問題。

圖片

HTTP/2 雖然通過多路復用解決了 HTTP 層的隊頭阻塞,但仍然存在 TCP 層的隊頭阻塞。

服務端推送 server push

服務可以主動向客戶端發送消息。在瀏覽器剛請求 HTML 的時候,服務端會把某些資源存在一定的關聯性 JS、CSS 等文件等靜態資源主動發給客戶端,這樣客戶端可以直接從本地加載這些資源,不用再通過網絡再次請求,以此來達到節省瀏覽器發送request請求的過程。

圖片

使用服務器推送

Link: </css/styles.css>; rel=preload; as=style,
</img/example.png>; rel=preload; as=image

可以看到服務器initiator中的push狀態表示這是服務端進行主動推送。

圖片

對于主動推送的文件勢必會帶來多余或已經瀏覽器已有一份的文件

客戶端使用一個簡潔的 Cache Digest 來告訴服務器,哪些東西已經在緩存,因此服務器也就會知道哪些是客戶端所需要的。

服務器和客戶端在HTTP/2連接內用于交換幀數據的獨立雙向序列,HTTP/2 在單個 TCP 連接上虛擬出多個 Stream, 多個 Stream 實現對一個 TCP 連接的多路復用, 為了合理地利用傳輸鏈路, 實現在有限資源內達到傳輸性能的最優化。

所有的通信都建立在一個TCP連接上,可以傳遞大量的雙向流通的流。

每個流都有獨一無二的標志和優先級。

每個消息都是邏輯上的請求和相應消息。由一個或者多個幀組成。

來自不同流的幀可以通過幀頭的標志來關聯和組裝起來。

圖片

流的概念提出是為了實現多路復用,在單個連接上實現同時進行多個業務單元數據的傳輸。

二進制幀層

在HTTP/1.x中,用戶為了提高性能建立多個TCP連接.會導致隊頭阻塞和重要TCP連接不能穩定獲得。HTTP/2中的二進制幀層允許請求和響應數據分割為更小的幀,并且它們采用二進制編碼(http1.0基于文本格式)。多個幀之間可以亂序發送,根據幀首部的流(比如每個流都有自己的id)表示可以重新組裝。

圖片

顯然這對二進制的計算機是非常友好,無需再將收到明文的報文轉成二進制,而是直接解析二進制報文,進一步提高數據傳輸的效率。

每一個幀可看做是一個學生,流是小組(流標識符為幀的屬性值),一個班級(一個連接)內學生被分為若干個小組,每一個小組分配不同的具體任務,多個小組任務可同時并行在班級內執行。一旦某個小組任務耗時嚴重,但不會影響到其它小組任務正常執行。

最后我們來看一看理想狀態下http2帶來的提升。

圖片

缺點

  • TCP以及TCP+TLS建立連接的延遲(握手延遲)。
  • http2.0中TCP的隊頭阻塞依然沒有徹底解決,連接雙方的有任一個數據包丟失,或任一方的網絡中斷,整個TCP連接就會暫停,丟失的數據包需要被重新傳輸,從而阻塞該TCP連接中的所有請求,反而在網絡較差或不穩定情況下,使用多個連接表現更好。

HTTP/3.0 (HTTP-over-QUIC)

在限定條件下,TCP下解決隊頭阻塞的問題相當困難,但是隨著互聯網的爆炸式發展,更高的穩定性和安全性需要得到滿足,谷歌在2016年11月國際互聯網工程任務組(IETF)召開了第一次QUIC(Quick UDP Internet Connections)工作組會議,制定的一種基于UDP的低時延的互聯網傳輸層協議,HTTP-over-QUIC于2018年11月更名為HTTP/3。

圖片

0-RTT 握手

tcp中客戶端發送syn包(syn seq=x)到服務器, 服務器接收并且需要發送(SYN seq =y; ACK x+1)包給客戶端,客戶端向服務器發送確認包ACK(seq = x+1; ack=y+1),至此客戶端和服務器進入ESTABLISHED狀態,完成三次握手。

1-RTT

  • 客服端生成一個隨機數 a 然后選擇一個公開的加密數 X ,通過計算得出 a*X = A, 將X 和 A發送給服務端。
  • 客服端生成一個隨機數 b,通過計算得出 b*X = B, 將B發送給服務端。
  • 客戶端使用ECDH生成通訊密鑰 key = aB = a(b*X)。
  • 服務器使用ECDH生成通訊密鑰 key = bA = b(a*X)。
sequenceDiagram
客服端->>服務端: clinet Hello
服務端-->>客服端: Server Hello

所以,這里的關鍵就是 ECDH 算法,a 和 b 是客戶端和服務器的私鑰,是不公開的,即使知道 A、X,通過 A = a*X 公式也是無法推導出 a 的,保證了私鑰的安全性。

0-RTT

0-RTT則是客戶端緩存了 ServerConfig(B=b*X),下次建連直接使用緩存數據計算通信密鑰:

sequenceDiagram
客服端->>服務端: clinet Hello + 應用數據
服務端-->>客服端: ACK
  • 客戶端:生成隨機數 c,選擇公開的大數 X,計算 A=cX,將 A 和 X 發送給服務器,也就是 Client Hello 消息后,客戶端直接使用緩存的 B 計算通信密鑰 KEY = cB = cbX,加密發送應用數據。
  • 服務器:根據 Client Hello 消息計算通信密鑰 key = bA = b(c*X)。

客戶端不需要經過握手直接通過緩存的B生成key就可以發送應用數據。

再來思考一個問題:假設攻擊者記錄下所有的通信數據和公開參數A1,A2,一旦服務器的隨機數 b(私鑰)泄漏了,那之前通信的所有數據就都可以破解了。

為了解決這個問題,需要為每次會話都創建一個新的通信密鑰,來保證前向安全性。

有序交付

QUIC 是基于 UDP 協議的,而 UDP 是不可靠傳輸協議,QUIC 在每個數據包都設有一個 offset 字段(偏移量),接收端根據 offset 字段就可以對異步到達的數據包進行排序了,保證了有序性。

sequenceDiagram
客服端->>服務端: PKN=1;offset=0
客服端->>服務端: PKN=2;offset=1
客服端->>服務端: PKN=3;offset=2
服務端-->>客服端: SACK = 1,3
客服端->>服務端: 重傳:PKN=4;offset=1

隊頭堵塞

HTTP/2 之所以存在 TCP 層的隊頭阻塞,是因為所有請求流都共享一個滑動窗口,而QUIC中給每個請求流都分配一個獨立的滑動窗口。

圖片

A 請求流上的丟包不會影響 B 請求流上的數據發送。但是,對于每個請求流而言,也是存在隊頭阻塞問題的,也就是說,雖然 QUIC 解決了 TCP 層的隊頭阻塞,但仍然存在單條流上的隊頭阻塞。這就是 QUIC 聲明的無隊頭阻塞的多路復用。

連接遷移

連接遷移:當客戶端切換網絡時,和服務器的連接并不會斷開,仍然可以正常通信,對于 TCP 協議而言,這是不可能做到的。因為 TCP 的連接基于 4 元組:源 IP、源端口、目的 IP、目的端口,只要其中 1 個發生變化,就需要重新建立連接。但 QUIC 的連接是基于 64 位的 Connection ID,網絡切換并不會影響 Connection ID 的變化,連接在邏輯上仍然是通的。

圖片

假設客戶端先使用 IP1 發送了 1 和 2 數據包,之后切換網絡,IP 變更為 IP2,發送了 3 和 4 數據包,服務器根據數據包頭部的 Connection ID 字段可以判斷這 4 個包是來自于同一個客戶端。QUIC 能實現連接遷移的根本原因是底層使用 UDP 協議就是面向無連接的。

最后我們一張圖來看一下http的升級。

圖片

責任編輯:武曉燕 來源: 微醫大前端技術
相關推薦

2020-12-04 09:30:18

HTTPWeb前端

2020-03-08 21:22:03

HTTP112

2024-11-05 08:16:04

HTTP/3HTTP 2.0QUIC

2025-07-01 07:53:47

2020-11-27 10:34:01

HTTPHTTPS模型

2021-09-07 05:04:53

HTTPHTTP3.0面試

2019-09-23 08:35:52

2022-07-13 14:12:41

HTTP/3前端

2019-04-12 10:44:39

2020-08-26 07:50:01

HTTP 3網絡協議HTTP

2014-10-22 09:36:41

TCPIP

2019-11-17 22:47:53

HTTP23

2017-09-12 15:26:44

2020-05-22 09:12:46

HTTP3網絡協議

2020-06-01 15:25:20

HTTP3前端

2018-07-12 15:30:03

HTTP緩存機制

2023-10-20 08:14:21

2025-07-08 08:12:31

2023-09-06 12:01:50

HTTP協議信息

2018-04-17 16:29:24

Java面試HTTP
點贊
收藏

51CTO技術棧公眾號

国产精品美女久久久久久| 久久久水蜜桃av免费网站| 欧美日韩第一区日日骚| 在线看成人av电影| 成人精品在线播放| 亚洲毛片在线| 中文字幕成人在线| 国产麻豆剧传媒精品国产| 松下纱荣子在线观看| 国产目拍亚洲精品99久久精品| 91中文在线视频| 日本天堂网在线| 亚洲国产老妈| 亚洲欧美激情另类校园| 色网站在线视频| a一区二区三区| 亚洲欧洲中文日韩久久av乱码| 精品乱色一区二区中文字幕| 亚洲熟妇av乱码在线观看| 国产精品大片| 在线日韩日本国产亚洲| 无码国产精品一区二区免费式直播| 日本韩国欧美| 亚洲精品国产第一综合99久久| 久久国产精品亚洲va麻豆| 中文字幕在线播放av| 日韩一级不卡| 欧美乱人伦中文字幕在线| 日本黄色小视频在线观看| 精品国产影院| 日韩网站在线看片你懂的| 亚洲一区二区蜜桃| 麻豆视频在线看| 一区二区三区影院| 一区二区三区欧美成人| 免费在线毛片| www.亚洲人| 成人在线资源网址| 国产欧美综合视频| 麻豆极品一区二区三区| 国产va免费精品高清在线观看 | 精品美女www爽爽爽视频| 日韩精品视频网站| 欧美在线视频一区二区| 一级aaa毛片| 国产精品xvideos88| xvideos亚洲人网站| 国产精品www爽爽爽| 亚洲免费观看高清完整版在线观| 精品成a人在线观看| 一级黄色高清视频| 91麻豆精品一二三区在线| 在线欧美小视频| 国产真实乱子伦| 欧美极品videos大乳护士| 亚洲成人免费电影| 男女私大尺度视频| av漫画网站在线观看| 亚洲国产精品久久人人爱蜜臀| 日本丰满大乳奶| 3d玉蒲团在线观看| 一区二区视频在线| 青草视频在线观看视频| 欧美人与牲禽动交com| 亚洲一区日韩精品中文字幕| 久久亚洲a v| 国产白丝在线观看| 五月天激情小说综合| 国自产拍偷拍精品啪啪一区二区| 国产中文在线播放| 色综合天天综合狠狠| 日本久久精品一区二区| 久久不卡日韩美女| 欧美一级艳片视频免费观看| 少妇愉情理伦片bd| 国产精伦一区二区三区| 日韩精品免费在线观看| 午夜时刻免费入口| 日本激情一区| 久久99久久99精品中文字幕| 豆国产97在线 | 亚洲| 亚洲一区国产| 国产女人精品视频| 亚洲精品久久久狠狠狠爱| av网站免费线看精品| 欧美裸体网站| 老司机精品视频在线观看6| 椎名由奈av一区二区三区| 福利视频免费在线观看| 亚洲女同av| 欧美精选在线播放| 2一3sex性hd| 国产亚洲第一伦理第一区| 久久视频在线免费观看| 日韩精品成人在线| 久久成人精品无人区| av一本久道久久波多野结衣| 黄色在线免费观看大全| 亚洲女人****多毛耸耸8| 天天夜碰日日摸日日澡性色av| 浪潮色综合久久天堂| 欧美一级在线视频| 最近中文字幕免费| 精品999日本| 国产精品人人做人人爽| 欧美一级免费片| 国产欧美精品国产国产专区| 欧美a级免费视频| 蜜桃精品在线| 亚洲国产精品推荐| 国产精品白丝喷水在线观看| 国产亚洲激情| 91久久精品www人人做人人爽| 你懂的在线观看| 亚洲综合区在线| 国产又黄又猛又粗| 日韩精品社区| 久久久午夜视频| 97精品人妻一区二区三区在线| 91亚洲国产成人精品一区二区三 | 91精品美女在线| 亚洲av电影一区| 亚洲精品高清视频在线观看| 黄色在线视频网| 欧美男男gaytwinkfreevideos| 久久久久久久999精品视频| 亚洲天堂中文在线| 久久精品人人做| 波多野结衣家庭教师在线播放| 国产专区精品| 久久韩国免费视频| 做爰视频毛片视频| 久久久亚洲精品一区二区三区| 国产a级片免费看| 久久精品黄色| 神马国产精品影院av| 日韩成人av毛片| 岛国一区二区三区| 在线观看17c| 国产精品视频一区二区三区综合 | 成人看av片| 欧美日韩视频一区二区| 亚洲自拍偷拍图| 香蕉亚洲视频| 免费国产一区二区| 在线成人av观看| 日韩精品中文字| 久久黄色精品视频| 久久亚洲免费视频| 欧美一级片中文字幕| 一区二区小说| 日韩女优在线播放| 国产一级免费在线观看| 91黄色免费看| 超碰人人人人人人人| 久久成人av少妇免费| 一区二区三区欧美成人| 国产精品免费精品自在线观看| 日韩小视频在线| 国产精品污视频| 亚洲激情第一区| 国产激情第一页| 久久久久99| 亚洲精品8mav| 欧美激情三级| 午夜精品一区二区三区av| 日本激情一区二区三区| 岛国视频午夜一区免费在线观看| 亚洲一区二区观看| 石原莉奈在线亚洲三区| 伊人久久大香线蕉午夜av| 视频欧美精品| 久久免费视频在线| 男女av在线| 91精品国产入口| 日韩av在线电影| 国产精品全国免费观看高清| 男人操女人下面视频| 亚洲区欧美区| 亚洲v国产v| 亚洲国产精品免费视频| 久久久久久久久亚洲| 伦理片一区二区三区| 欧美日韩国产123区| 久久精品国产亚洲av无码娇色| 91影院在线观看| 男生操女生视频在线观看| 欧美日韩调教| 精品在线视频一区二区| 国产伊人久久| 午夜精品99久久免费| melody高清在线观看| 91精品婷婷国产综合久久性色| 福利一区二区三区四区| 中文字幕乱码久久午夜不卡 | 国产成人夜色高潮福利影视| 国产91精品网站| 肉体视频在线| 国产亚洲欧美日韩精品| 成 人片 黄 色 大 片| 色一情一乱一乱一91av| 欧美黄色免费看| 中文字幕国产精品一区二区| 成人做爰www看视频软件| 美女网站视频久久| 亚洲自偷自拍熟女另类| 中文字幕乱码亚洲无线精品一区 | 97在线观看免费观看高清| 欧美成人国产一区二区| 成人免费一区二区三区| 亚洲成人动漫精品| 一区二区三区影视| 国产偷国产偷亚洲高清人白洁| 成人做爰69片免费| 久久精品99国产精品| 欧美日韩激情视频在线观看| 欧美国产另类| 亚洲午夜高清视频| 久久99性xxx老妇胖精品| 高清视频一区| 精品视频在线一区| 国产精品入口免费视| 成人国产二区| 91av视频在线观看| 色老头在线观看| 久久久999国产精品| av在线播放免费| 日韩二区三区在线| 好吊色一区二区| 日韩欧美激情一区| 国产又黄又大又爽| 欧美日韩小视频| 国产免费www| 色爱区综合激月婷婷| 一区二区三区视频免费看| 亚洲一区二区三区四区在线免费观看 | 四虎影视国产精品| 国产精品欧美一区二区| 欧美亚洲韩国| 国产精品99久久久久久www| 理论片午夜视频在线观看| 欧美激情按摩在线| 丝袜美腿av在线| 九九精品视频在线观看| 黄色在线免费| 另类天堂视频在线观看| 国产在线二区| 久久视频精品在线| 国产在线观看免费麻豆| 久久精品国产一区二区电影| 免费网站成人| 久久亚洲精品小早川怜子66| 麻豆网站在线免费观看| 久久久国产视频| 182tv在线播放| 欧美日韩第一视频| 欧美videossex| 8x拔播拔播x8国产精品| 国产在线看片免费视频在线观看| 97超级碰碰碰久久久| 深夜av在线| 国产精品户外野外| 成人国产激情| 91探花福利精品国产自产在线| a一区二区三区亚洲| 91久久极品少妇xxxxⅹ软件| 成人香蕉社区| 免费成人深夜夜行视频| 精品欧美激情在线观看| 在线视频欧美一区| 国产精品va| 免费av观看网址| 丝瓜av网站精品一区二区 | 99免费在线观看| 欧美视频在线视频| 嫩草影院一区二区三区| 精品视频999| 99精品久久久久久中文字幕| 精品对白一区国产伦| 天堂在线中文| 最新的欧美黄色| 精品一性一色一乱农村| 欧美一区二区三区免费视| 在线看欧美视频| 91香蕉亚洲精品| 欧美挤奶吃奶水xxxxx| 色综合久久88色综合天天提莫| 国产韩国精品一区二区三区| 欧美在线观看黄| 久久久久在线| 三上悠亚 电影| 久久精品一区八戒影视| 九九精品视频免费| 亚洲成a人片在线不卡一二三区| 亚洲欧美偷拍视频| 欧美一区二区三区免费| 青青草在线免费观看| 久久久精品一区二区| 波多野一区二区| 91精品久久久久久久久久另类 | 欧美大片在线观看一区| 每日更新在线观看av| 欧美日本黄视频| 91欧美精品| 国产亚洲第一区| 小小影院久久| 久久久噜噜噜www成人网| 国产一区在线看| 91l九色lporny| 午夜av电影一区| 国产绿帽刺激高潮对白| 亚洲欧美国产日韩中文字幕| 91极品在线| 国产精品色视频| 网友自拍区视频精品| 一区二区三区四区免费观看| 日韩精品一级中文字幕精品视频免费观看| 男人的天堂免费| 一区在线播放视频| 青娱乐在线免费视频| 亚洲激情在线视频| 污污的网站在线免费观看| 国产精品久久久久久久久粉嫩av | 欧美日韩亚洲国产另类| 欧美视频自拍偷拍| 日韩毛片在线一区二区毛片| 久久久久国产一区二区三区| 四虎精品在线观看| 午夜精品一区二区在线观看的 | 欧美日韩老妇| 免费欧美一级视频| 99视频在线精品| 日本在线观看中文字幕| 日韩天堂在线观看| 成码无人av片在线观看网站| 国产欧美日韩最新| 日本一区二区在线看| 精品久久久噜噜噜噜久久图片| 99久久久久久| 91蜜桃视频在线观看| 亚洲成人av中文字幕| 国产丝袜在线播放| 国产精品一区二区你懂得| 欧美在线观看天堂一区二区三区| 亚洲36d大奶网| 亚洲欧洲av色图| 91精品国产色综合久久不8| 在线观看国产精品日韩av| 日韩国产激情| 亚洲成人在线视频网站| 日本午夜一本久久久综合| 亚洲自拍偷拍图| 欧美三级欧美一级| 91大神xh98hx在线播放| 国产久一一精品| 91高清一区| 男人添女人荫蒂国产| 亚洲国产一二三| 凸凹人妻人人澡人人添| 91av视频导航| 欧美午夜精彩| 日韩欧美中文在线视频| 一区二区在线观看免费| 欧美一级在线免费观看| 91av在线网站| 狠狠操综合网| 国产精品v日韩精品v在线观看| 亚洲日本一区二区三区| 亚洲卡一卡二卡三| 7777免费精品视频| 郴州新闻综合频道在线直播| 色婷婷一区二区三区av免费看| 最新日韩在线视频| 午夜精品久久久久久久第一页按摩| 久久久免费在线观看| 亚洲成a人片77777在线播放| 国内外免费激情视频| 中文字幕在线视频一区| 亚洲xxxx天美| 日韩av电影在线播放| 天天射成人网| 大尺度做爰床戏呻吟舒畅| 日本黄色一区二区| 麻豆传媒免费在线观看| 国产三区精品| 免费人成黄页网站在线一区二区| 少妇aaaaa| 亚洲精品中文字幕有码专区| 亚洲欧美在线综合| 亚洲中文字幕无码专区| 中文在线免费一区三区高中清不卡| 99这里有精品视频| 91精品国产精品| 无码一区二区三区视频| 99久久免费看精品国产一区| 欧美少妇bbb| 乱馆动漫1~6集在线观看| 手机福利在线视频| 91麻豆产精品久久久久久 | 88xx成人永久免费观看|