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

每一個web開發者都應該了解的HTTP/2

開發 前端
我認為每一個 web 開發者都應該對這個支撐了整個 Web 世界的 HTTP 協議有所了解,這樣才能幫助你更好的完成開發任務。在這篇文章中,我將討論什么是 HTTP,它是怎么產生的,它的地位,以及我們應該怎么使用它。

[[172535]]

自從我寫了上一篇博文之后,就再也找不到空閑時間寫文章了。今天我終于可以抽出時間寫一些關于 HTTP 的東西。

我認為每一個 web 開發者都應該對這個支撐了整個 Web 世界的 HTTP 協議有所了解,這樣才能幫助你更好的完成開發任務。

在這篇文章中,我將討論什么是 HTTP,它是怎么產生的,它的地位,以及我們應該怎么使用它。

HTTP 是什么

首先我們要明白 HTTP 是什么。HTTP 是一個基于 TCP/IP 的應用層通信協議,它是客戶端和服務端在互聯網互相通訊的標準。它定義了內容是如何通過互聯網進行請求和傳輸的。HTTP 是在應用層中抽象出的一個標準,使得主機(客戶端和服務端)之間的通信得以通過 TCP/IP 來進行請求和響應。TCP 默認使用的端口是 80,當然也可以使用其它端口,比如 HTTPS 使用的就是 443 端口。

HTTP/0.9 - 單行協議 (1991)

HTTP 最早的規范可以追溯到 1991 年,那時候的版本是 HTTP/0.9,該版本極其簡單,只有一個叫做 GET的請求方式。如果客戶端要訪問服務端上的一個頁面,只需要如下非常簡單的請求:

  1. GET /index.html 

服務端對應的返回類似如下:

  1. (response body) 
  2. (connection closed) 

就這么簡單,服務端捕獲到請求后立馬返回 HTML 并且關閉連接,在這之中

  • 沒有頭信息(headers)
  • 僅支持 GET 這一種請求方法
  • 必須返回 HTML

如同你所看到的,當時的 HTTP 協議只是一塊基礎的墊腳石。

HTTP/1.0 - 1996

在 1996 年,新版本的 HTTP 對比之前的版本有了極大的改進,同時也被命名為 HTTP/1.0。

與 HTTP/0.9 只能返回 HTML 不同的是,HTTP/1.0 支持處理多種返回的格式,比如圖片、視頻、文本或者其他格式的文件。它還增加了更多的請求方法(如 POST 和 HEAD),請求和響應的格式也相應做了改變,兩者都增加了頭信息;引入了狀態碼來定義返回的特征;引入了字符集支持;支持多段類型(multi-part)、用戶驗證信息、緩存、內容編碼格式等等。

一個簡單的 HTTP/1.0 請求大概是這樣的:

  1. GET / HTTP/1.0 
  2. Host: kamranahmed.info 
  3. User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) 
  4. Accept: */* 

正如你所看到的,在請求中附帶了客戶端中的一些個人信息、響應類型要求等內容。這些是在 HTTP/0.9 無法實現的,因為那時候沒有頭信息。

一個對上述請求的響應例子如下所示:

  1. HTTP/1.0 200 OK 
  2. Content-Type: text/plain 
  3. Content-Length: 137582 
  4. Expires: Thu, 05 Dec 1997 16:00:00 GMT 
  5. Last-Modified: Wed, 5 August 1996 15:55:28 GMT 
  6. Server: Apache 0.84 
  7. (response body) 
  8. (connection closed) 

從 HTTP/1.0 (HTTP 后面跟的是版本號)早期開始,在狀態碼 200 之后就附帶一個原因短語(你可以用來描述狀態碼)。

在這個較新一點的版本中,請求和響應的頭信息仍然必須是 ASCII 編碼,但是響應的內容可以是任意類型,如圖片、視頻、HTML、文本或其他類型,服務器可以返回任意內容給客戶端。所以這之后,HTTP 中的“超文本(Hyper Text)”成了名不副實。 HMTP (超媒體傳輸協議(Hypermedia transfer protocol))可能會更有意義,但是我猜我們還是會一直沿用這個名字。

HTTP/1.0 的一個主要缺點就是它不能在一個連接內擁有多個請求。這意味著,當客戶端需要從服務器獲取東西時,必須建立一個新的 TCP 連接,并且處理完單個請求后連接即被關閉。需要下一個東西時,你必須重新建立一個新的連接。這樣的壞處在哪呢?假設你要訪問一個有 10 張圖片,5 個樣式表(stylesheet)和 5 個 JavaScript 的總計 20 個文件才能完整展示的一個頁面。由于一個連接在處理完成一次請求后即被關閉,所以將有 20 個單獨的連接,每一個文件都將通過各自對應的連接單獨處理。當連接數量變得龐大的時候就會面臨嚴重的性能問題,因為 TCP 啟動需要經過三次握手,才能緩慢開始。

三次握手

三次握手是一個簡單的模型,所有的 TCP 連接在傳輸應用數據之前都需要在三次握手中傳輸一系列數據包。

  • SYN - 客戶端選取一個隨機數,我們稱為 x,然后發送給服務器。
  • SYN ACK - 服務器響應對應請求的 ACK 包中,包含了一個由服務器隨機產生的數字,我們稱為 y,并且把客戶端發送的 x+1,一并返回給客戶端。
  • ACK - 客戶端在從服務器接受到 y 之后把 y 加上 1 作為一個 ACK 包返回給服務器。

一旦三次握手完成后,客戶端和服務器之間就可以開始交換數據。值得注意的是,當客戶端發出***一個 ACK 數據包后,就可以立刻向服務器發送應用數據包,而服務器則需要等到收到這個 ACK 數據包后才能接受應用數據包。

請注意,上圖有點小問題,客戶端發回的***一個 ACK 包僅包含 y+1,上圖應該是 ACK:y+1 而不是 ACK:x+1,y+1

然而,某些 HTTP/1.0 的實現試圖通過新引入一個稱為 Connection: keep-alive 的頭信息來克服這一問題,這個頭信息意味著告訴服務器“嘿,服務器,請不要關閉此連接,我還要用它”。但是,這并沒有得到廣泛的支持,問題依然存在。

除了無連接之外,HTTP 還是一個無狀態的協議,即服務器不維護有關客戶端的信息。因此每個請求必須給服務器必要的信息才能完成請求,每個請求都與之前的舊的請求無關。所以,這增加了推波助瀾的作用,客戶端除了需要新建大量連接之外,在每次連接中還需要發送許多重復的數據,這導致了帶寬的大量浪費。

HTTP/1.1 - 1999

HTTP/1.0 經過僅僅 3 年,下一個版本,即 HTTP/1.1 就在 1999 年發布了,改進了它的前身很多問題,主要的改進包括:

  • 增加了許多 HTTP 請求方法,包括 PUT、PATCH、HEAD、OPTIONS、DELETE。
  • 主機標識符 Host 在 HTTP/1.0 并不是必須的,而在 HTTP/1.1 是必須的。
  • 如上所述的持久連接。在 HTTP/1.0 中每個連接只有一個請求并在該請求結束后被立即關閉,這導致了性能問題和增加了延遲。 HTTP/1.1 引入了持久連接,即連接在默認情況下是不關閉并保持開放的,這允許多個連續的請求使用這個連接。要關閉該連接只需要在頭信息加入 Connection: close,客戶通常在***一個請求里發送這個頭信息就能安全地關閉連接。
  • 新版本還引入了“管線化(pipelining)”的支持,客戶端可以不用等待服務器返回響應,就能在同一個連接內發送多個請求給服務器,而服務器必須以接收到的請求相同的序列發送響應。但是你可能會問了,客戶端如何知道哪里是***個響應下載完成而下一個響應內容開始的地方呢?要解決這個問題,頭信息必須有 Content-Length,客戶可以使用它來確定哪些響應結束之后可以開始等待下一個響應。

。值得注意的是,為了從持久連接或管線化中受益, 頭部信息必須包含 Content-Length,因為這會使客戶端知道什么時候完成了傳輸,然后它可以發送下一個請求(持久連接中,以正常的依次順序發送請求)或開始等待下一個響應(啟用管線化時)。

。但是,使用這種方法仍然有一個問題。那就是,如果數據是動態的,服務器無法提前知道內容長度呢?那么在這種情況下,你就不能使用這種方法中獲益了嗎?為了解決這個問題,HTTP/1.1 引進了分塊編碼。在這種情況下,服務器可能會忽略 Content-Length 來支持分塊編碼(更常見一些)。但是,如果它們都不可用,那么連接必須在請求結束時關閉。

  • 在動態內容的情況下分塊傳輸,當服務器在傳輸開始但無法得到 Content-Length 時,它可能會開始按塊發送內容(一塊接一塊),并在傳輸時為每一個小塊添加 Content-Length。當發送完所有的數據塊后,即整個傳輸已經完成后,它發送一個空的小塊,比如設置 Content-Length 為 0 ,以便客戶端知道傳輸已完成。為了通知客戶端塊傳輸的信息,服務器在頭信息中包含了 Transfer-Encoding: chunked。
  • 不像 HTTP/1.0 中只有 Basic 身份驗證方式,HTTP/1.1 包括摘要驗證方式(digest authentication)和代理驗證方式(proxy authentication)。
  • 緩存。
  • 范圍請求(Byte Ranges)。
  • 字符集。
  • 內容協商(Content Negotiation)。
  • 客戶端 cookies。
  • 支持壓縮。
  • 新的狀態碼。
  • 等等。

我不打算在這里討論所有 HTTP/1.1 的特性,因為你可以圍繞這個話題找到很多關于這些的討論。我建議你閱讀 HTTP/1.0 和 HTTP/1.1 版本之間的主要差異,希望了解更多可以讀原始的 RFC。

HTTP/1.1 在 1999 年推出,到現在已經是多年前的標準。雖然,它比前一代改善了很多,但是網絡日新月異,它已經垂垂老矣。相比之前,加載網頁更是一個資源密集型任務,打開一個簡單的網頁已經需要建立超過 30 個連接。你或許會說,HTTP/1.1 具有持久連接,為什么還有這么多連接呢?其原因是,在任何時刻 HTTP/1.1 只能有一個未完成的連接。 HTTP/1.1 試圖通過引入管線來解決這個問題,但它并沒有完全地解決。因為一旦管線遇到了緩慢的請求或龐大的請求,后面的請求便被阻塞住,它們必須等待上一個請求完成。為了克服 HTTP/1.1 的這些缺點,開發人員開始實現一些解決方法,例如使用 spritesheets、在 CSS 中編碼圖像、單個巨型 CSS / JavaScript 文件、域名切分等。

SPDY - 2009

谷歌走在業界前列,為了使網絡速度更快,提高網絡安全,同時減少網頁的等待時間,他們開始實驗替代的協議。在 2009 年,他們宣布了 SPDY。

SPDY 是谷歌的商標,而不是一個縮寫。

顯而易見的是,如果我們繼續增加帶寬,網絡性能開始的時候能夠得到提升,但是到了某個階段后帶來的性能提升就很有限了。但是如果把這些優化放在等待時間上,比如減少等待時間,將會有持續的性能提升。這就是 SPDY 優化之前的協議的核心思想,減少等待時間來提升網絡性能。

對于那些不知道其中區別的人,等待時間就是延遲,即數據從源到達目的地需要多長時間(單位為毫秒),而帶寬是每秒鐘數據的傳輸量(比特每秒)。

SPDY 的特點包括:復用、壓縮、優先級、安全性等。我不打算展開 SPDY 的細節。在下一章節,當我們將介紹 HTTP/2,這些都會被提到,因為 HTTP/2 大多特性是從 SPDY 受啟發的。

SPDY 沒有試圖取代 HTTP,它是處于應用層的 HTTP 之上的一個傳輸層,它只是在請求被發送之前做了一些修改。它開始成為事實標準,大多數瀏覽器都開始支持了。

2015年,谷歌不想有兩個相互競爭的標準,所以他們決定將其合并到 HTTP 協議,這樣就導致了 HTTP/2 的出現和 SPDY 的廢棄。

HTTP/2 - 2015

現在想必你明白了為什么我們需要另一個版本的 HTTP 協議了。 HTTP/2 是專為了低延遲地內容傳輸而設計。主要特點和與 HTTP/1.1 的差異包括:

  • 使用二進制替代明文
  • 多路傳輸 - 多個異步 HTTP 請求可以使用單一連接
  • 報頭使用 HPACK 壓縮
  • 服務器推送 - 單個請求多個響應
  • 請求優先級
  • 安全性

1. 二進制協議

HTTP/2 通過使其成為一個二進制協議以解決 HTTP/1.x 中存在的延遲問題。作為一個二進制協議,它更容易解析,但可讀性卻不如 HTTP/1.x。幀(frames)和流(stream)的概念組成了 HTTP/2 的主要部分。

幀和流

現在 HTTP 消息是由一個或多個幀組成的。HEADERS 幀承載了元數據(meta data),DATA 幀則承載了內容。還有其他類型的幀(HEADERS、DATA、RST_STREAM、SETTINGS、PRIORITY 等等),這些你可以通過 HTTP/2 規范來了解。

每個 HTTP/2 請求和響應都被賦予一個唯一的流 ID,并切分成幀。幀就是一小片二進制數據。幀的集合稱為流,每個幀都有個標識了其所屬流的流 ID,所以在同一個流下的每個幀具有共同的報頭。值得注意的是,除了流 ID 是唯一的之外,由客戶端發起的請求使用了奇數作為流 ID,從來自服務器的響應使用了偶數作為流 ID。

除了 HEADERS 幀和 DATA 幀,另一個值得一提的幀是 RST_STREAM。這是一個特殊的幀類型,用來中止流,即客戶可以發送此幀讓服務器知道,我不再需要這個流了。在 HTTP/1.1 中讓服務器停止給客戶端發送響應的唯一方法是關閉連接,這樣造成了延遲增加,因為之后要發送請求時,就要必須打開一個新的請求。而在 HTTP/2,客戶端可以使用 RST_STREAM 來停止接收特定的數據流,而連接仍然打開著,可以被其他請求使用。

2. 多路傳輸

因為 HTTP/2 是一個二進制協議,而且如上所述它使用幀和流來傳輸請求與響應,一旦建立了 TCP 連接,相同連接內的所有流都可以同過這個 TCP 連接異步發送,而不用另外打開連接。反過來說,服務器也可以使用同樣的異步方式返回響應,也就是說這些響應可以是無序的,客戶端使用分配的流 ID 來識別數據包所屬的流。這也解決了 HTTP/1.x 中請求管道被阻塞的問題,即客戶端不必等待占用時間的請求而其他請求仍然可以被處理。

3. HPACK 請求頭部壓縮

RFC 花了一篇文檔的篇幅來介紹針對發送的頭信息的優化,它的本質是當我們在同一客戶端上不斷地訪問服務器時,許多冗余數據在頭部中被反復發送,有時候僅僅是 cookies 就能增加頭信息的大小,這會占用許多寬帶和增加傳輸延遲。為了解決這個問題,HTTP/2 引入了頭信息壓縮。

不像請求和響應那樣,頭信息中的信息不會以 gzip 或者 compress 等格式壓縮。而是采用一種不同的機制來壓縮頭信息,客戶端和服務器同時維護一張頭信息表,儲存了使用了哈夫曼編碼進行編碼后的頭信息的值,并且后續請求中若出現同樣的字段則忽略重復值(例如用戶代理(user agent)等),只發送存在兩邊信息表中它的引用即可。

我們說的頭信息,它們同 HTTP/1.1 中一樣,并在此基礎上增加了一些偽頭信息,如 :scheme,:host 和 :path。

4. 服務器推送

服務器推送是 HTTP/2 的另一個巨大的特點。對于服務器來說,當它知道客戶端需要一定的資源后,它可以把數據推送到客戶端,即使客戶端沒有請求它。例如,假設一個瀏覽器在加載一個網頁時,它解析了整個頁面,發現有一些內容必須要從服務端獲取,然后發送相應的請求到服務器以獲取這些內容。

服務器推送減少了傳輸這些數據需要來回請求的次數。它是如何做到的呢?服務器通過發送一個名字為 PUSH_PROMISE 特殊的幀通知到客戶端“嘿,我準備要發送這個資源給你了,不要再問我要了。”這個 PUSH_PROMISE 幀與要產生推送的流聯系在一起,并包含了要推送的流 ID,也就是說這個流將會被服務器推送到客戶端上。

5. 請求優先級

當流被打開的時候,客戶端可以在 HEADERS 幀中包含優先級信息來為流指定優先級。在任何時候,客戶端都可以發送 PRIORITY 幀來改變流的優先級。

如果沒有任何優先級信息,服務器將異步地無序地處理這些請求。如果流分配了優先級,服務器將基于這個優先級來決定需要分配多少資源來處理這個請求。

6. 安全性

在是否強制使用 TLS 來增加安全性的問題上產生了大范圍的討論,討論的結果是不強制使用。然而大多數廠商只有在使用 TLS 時才能使用 HTTP/2。所以 HTTP/2 雖然規范上不要求加密,但是加密已經約定俗成了。這樣,在 TLS 之上實現 HTTP/2 就有了一些強制要求,比如,TLS 的***版本為 1.2,必須達到某種級別的***限度的密鑰大小,需要布署 ephemeral 密鑰等等。

到現在 HTTP/2 已經完全超越了 SPDY,并且還在不斷成長,HTTP/2 有很多關系性能的提升,我們應該開始布署它了。

如果你想更深入的了解細節,請訪問該規范的鏈接和 HTTP/2 性能提升演示的鏈接。請在留言板寫下你的疑問或者評論,***如果你發現有錯誤,請同樣留言指出。

這就是全部了,我們之后再見~

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2018-10-16 11:03:19

API開發者AR

2019-05-24 09:04:31

C++編程語言開發

2013-06-26 09:42:52

Web開發URL編碼URL

2025-03-05 09:21:08

2023-08-11 18:11:49

2019-04-16 08:50:56

WebHTTP緩存

2023-11-27 15:49:55

軟件開發系統設計

2023-11-17 14:18:48

開發編程

2025-01-07 10:01:10

2013-08-15 13:48:18

產品產品經理

2022-04-27 09:48:56

JS前端開發

2019-11-20 12:09:01

JavaScriptGitHub工具

2025-08-29 07:00:00

Go并發開發

2021-12-17 10:58:07

Shell腳本語言

2024-09-02 14:30:43

2019-11-23 23:38:51

開發者微服務安全

2013-07-29 11:11:33

C++C++11

2022-10-31 08:02:07

Python函數式編程

2020-06-03 18:10:46

GitHub代碼庫前端

2020-08-07 07:56:50

Ubuntu快捷鍵Windows
點贊
收藏

51CTO技術棧公眾號

gogo在线观看| 国产91av在线播放| 北条麻妃一区二区三区在线观看| 亚洲黄网站在线观看| 国产一区在线观| 无码任你躁久久久久久久| 色狮一区二区三区四区视频| 欧美一区二区三区日韩视频| 霍思燕三级露全乳照| 狠狠v欧美ⅴ日韩v亚洲v大胸| 日本sm残虐另类| 欧美日韩国产成人| 欧美做受xxxxxⅹ性视频| 免费一级欧美在线观看视频| 亚洲国产美国国产综合一区二区| 秋霞在线观看一区二区三区| 精品人妻一区二区三区四区不卡 | 国模一区二区三区白浆| 久久全国免费视频| 国产日韩精品中文字无码| 9l亚洲国产成人精品一区二三| 色哟哟日韩精品| 成年在线观看视频| 成年网站在线| 成人网在线播放| 91精品国产综合久久香蕉最新版| 91国产丝袜播放在线| 午夜影院欧美| 亚洲欧美中文字幕| 久久久久亚洲av无码专区首jn| 中文字幕色婷婷在线视频| 一区二区三区四区在线播放 | 番号集在线观看| 成人av手机在线观看| 成人欧美在线观看| 中文字幕日本视频| 亚洲一区欧美激情| 欧美激情第一页xxx| 亚洲一二三四五六区| 无码日韩精品一区二区免费| 日韩精品一区二区三区中文不卡| 羞羞的视频在线| 户外露出一区二区三区| 欧美日韩在线第一页| 性高湖久久久久久久久aaaaa| 在线视频婷婷| 欧美国产成人精品| 日本一区二区在线视频观看| 日韩精品视频在线观看一区二区三区| 国产经典欧美精品| 成人亚洲欧美一区二区三区| 一级片一区二区三区| 免费观看在线色综合| 日产精品久久久一区二区福利| 久久精品视频久久| 狠狠综合久久av一区二区老牛| 久久国产精品久久久久久久久久| 久久久久久久久久97| 欧美aaaaaaaaaaaa| 日韩一区av在线| 最新日韩免费视频| 成人亚洲一区| 色噜噜狠狠色综合网图区| 日本一区二区视频在线播放| 精品久久电影| 中文日韩在线观看| 亚洲女同二女同志奶水| 99久久99久久精品国产片果冰| 色阁综合伊人av| 国产老头老太做爰视频| 91tv精品福利国产在线观看| 久久国产精品久久久久| 国产一级av毛片| 黄色精品一区| 欧美亚洲国产视频小说| 在线观看精品国产| 乱码第一页成人| 国产精品久久久久久久久久久久| 最近日韩免费视频| 极品少妇xxxx偷拍精品少妇| 亚洲xxxxx电影| 亚洲精品无遮挡| 99re成人在线| 青娱乐一区二区| 日本中文字幕视频在线| 亚洲免费视频中文字幕| 久久精品国产sm调教网站演员| 黄毛片在线观看| 欧美亚洲综合另类| 日韩高清在线一区二区| 77成人影视| 亚洲人成电影网站色| 国产精品久久久免费看| 欧美成人午夜| 青青草原成人在线视频| 一级淫片免费看| 成人av综合一区| 亚洲 国产 欧美一区| 四季久久免费一区二区三区四区| 性感美女久久精品| 激情视频免费网站| 亚洲成人偷拍| 国产一区二区三区视频在线观看| 麻豆91精品91久久久| 久久国产精品毛片| 亚洲xxx大片| 国产精品久久久久久久龚玥菲| 亚洲女人的天堂| 久久国产成人精品国产成人亚洲| 在线免费成人| 亚洲精品视频中文字幕| 亚洲天堂网av在线| 国产日韩亚洲| 99精彩视频在线观看免费| 女人天堂在线| 香港成人在线视频| 亚洲天堂国产视频| 亚洲资源网站| 久久人91精品久久久久久不卡| 曰批又黄又爽免费视频| 91原创在线视频| www.-级毛片线天内射视视| 日韩电影免费观| 精品免费日韩av| 国产91在线播放九色| 亚洲欧美久久| 国产精品久久波多野结衣| 日本综合在线| 欧美在线高清视频| 亚洲最大的黄色网| 欧美国产免费| 亚洲已满18点击进入在线看片| 九色蝌蚪在线| 欧美性xxxxx极品| 国产大尺度视频| 综合一区在线| 国产综合香蕉五月婷在线| 精品电影在线| 日本乱人伦aⅴ精品| 私密视频在线观看| 伊人久久大香线蕉综合热线| 91精品国产99久久久久久红楼| 电影在线高清| 欧美色综合网站| 国产三级av在线播放| 亚洲综合社区| 免费观看国产成人| 手机在线观看av| 亚洲第一精品电影| 日韩精品一区三区| 99视频一区二区| 国产精品无码人妻一区二区在线| 加勒比色老久久爱综合网| 欧美大片在线看免费观看| 精品国产av 无码一区二区三区| 中文字幕一区三区| 国产精品久久久久久9999| 久久精品国内一区二区三区水蜜桃| 国产精品入口尤物| 1024国产在线| 欧美日韩国产大片| 欧美肥妇bbwbbw| 国产精品一区在线观看乱码| 成人手机在线播放| 2020最新国产精品| 91精品91久久久久久| 欧美拍拍视频| 欧美日韩亚洲综合一区 | 亚洲精品国产精华液| 伊人五月天婷婷| 激情欧美丁香| 欧美激情第一页在线观看| 性感美女一区二区在线观看| 中文字幕亚洲综合| 99久久精品日本一区二区免费| 亚洲尤物在线视频观看| 中文成人无字幕乱码精品区| 久久精品卡一| 一区二区精品在线观看| 日韩成人在线看| 97在线视频国产| 国产鲁鲁视频在线观看免费| 欧美日韩国产高清一区| 精品一区二区三区人妻| 国产色产综合产在线视频| 亚洲va在线va天堂va偷拍| 欧美精品一卡| 欧美日韩大片一区二区三区| 亚洲精品伦理| 国产做受高潮69| 国产高清在线| 欧美成人aa大片| 台湾佬中文在线| 国产精品白丝在线| 妖精视频一区二区| 日本在线不卡视频一二三区| 成人在线免费高清视频| 天天久久夜夜| 147欧美人体大胆444| 日本免费久久| 欧美激情乱人伦一区| 成年人视频网站在线| 日韩精品一区二区三区在线播放| 波多野结衣国产| 亚洲视频综合在线| 变态另类丨国产精品| 国产美女精品人人做人人爽| 男人操女人免费软件| 亚洲精品成人无限看| 农村寡妇一区二区三区| 一区视频网站| 国产欧美精品在线| 国产99在线| 欧美巨乳美女视频| av成人手机在线| 日韩电影在线观看中文字幕 | 国产无码精品在线观看| 国产精品久久久久7777按摩| 亚洲精品在线视频免费观看| 精品伊人久久久久7777人| 情侣黄网站免费看| 亚洲私拍自拍| 91国在线高清视频| 日韩大片在线播放| 日韩欧美在线电影| 久久精品国产亚洲5555| 5g国产欧美日韩视频| 狠狠久久综合| 国产精品99蜜臀久久不卡二区| 国产理论在线| 欧美精品xxx| 在线中文字幕电影| 精品久久久av| 在线观看完整版免费| 国产一区二区三区在线播放免费观看 | 成人影院在线观看| 色999日韩欧美国产| 大片免费播放在线视频| 亚洲男人天堂视频| 婷婷开心激情网| 亚洲精品按摩视频| 亚洲免费成人在线| 欧美变态凌虐bdsm| 精品人妻少妇嫩草av无码专区| 欧美精品在线视频| 国产乱子伦精品无码码专区| 欧美日韩国产首页| 91免费视频播放| 欧美精品日韩精品| 97久久人国产精品婷婷| 欧美日韩国产在线观看| 影音先锋黄色网址| 欧美人牲a欧美精品| 中文字幕在线日亚洲9| 欧美日韩黄色影视| 一区二区三区午夜| 欧美久久久久久久久中文字幕| 国产精品国产精品国产专区| 欧美电影一区二区| 午夜精品久久久久久久第一页按摩 | 无码人妻丰满熟妇区毛片| 久久久www| 午夜两性免费视频| 狠狠色综合色综合网络| www.午夜av| 成人午夜精品在线| 少妇精品一区二区| 国产欧美日韩激情| 色撸撸在线视频| 亚洲乱码国产乱码精品精的特点| 国产成人无码aa精品一区| 亚洲一区av在线| 五月婷婷激情视频| 欧美日韩视频第一区| 99国产精品99| 亚洲国产精品成人va在线观看| 亚洲欧美日韩精品永久在线| 亚洲天堂色网站| 国产激情视频在线观看| 欧美夫妻性生活xx| 9i看片成人免费高清| 国产精品一二区| 亚洲电影一区| 免费一区二区三区| 亚洲成人精品| 欧美 日本 亚洲| 美女尤物国产一区| 韩国av中国字幕| 26uuu国产电影一区二区| 91视频免费看片| 亚洲成av人综合在线观看| 日韩av免费播放| 欧美一级二级三级蜜桃| 免费在线一级视频| 久久久精品在线观看| 超碰高清在线| 国产精品综合不卡av| 女同一区二区三区| 青春草在线视频免费观看| 制服诱惑一区二区| 亚洲美女性囗交| 97超碰欧美中文字幕| 久久国产高清视频| 欧美日韩视频在线| 国产精品怡红院| 亚洲欧美一区二区三区四区| 色www永久免费视频首页在线| 热99精品只有里视频精品| 秋霞午夜一区二区三区视频| 青青成人在线| 国产精品毛片| 欧美性猛交乱大交| 中日韩免费视频中文字幕| 久久午夜无码鲁丝片| 3d动漫精品啪啪一区二区竹菊| 四虎精品在线| 久久久久久一区二区三区| 日韩一区二区三区四区五区 | 波多野结衣免费观看| 久久久影视传媒| 日本系列第一页| 日韩精品一区二区三区在线播放| 日本在线免费| 国产va免费精品高清在线观看| 国产精品一区二区中文字幕| 国产美女视频免费| 蜜臀va亚洲va欧美va天堂| 国产精品一区二区入口九绯色| 亚洲一区成人在线| 精品国产免费无码久久久| xvideos成人免费中文版| 性高爱久久久久久久久| 久久国产精品久久| 欧美三区美女| 免费国偷自产拍精品视频| 国产精品久久久久天堂| 怡红院成永久免费人全部视频| 亚洲美女av在线| 亚洲天堂手机| 久久99国产精品99久久| 国产精品美女久久久浪潮软件| 欧美一级片在线免费观看| 亚洲精品综合在线| 国产成人三级一区二区在线观看一| 中日韩午夜理伦电影免费| 成人在线观看免费视频| 亚洲精品成人自拍| 美女性感视频久久| 战狼4完整免费观看在线播放版| 在线观看视频91| 视频免费一区| 91在线视频一区| 一区二区三区国产精华| 国产成人强伦免费视频网站| 亚洲精品国产一区二区精华液| 国产视频在线观看免费| 欧美精品免费在线| 99精品在免费线中文字幕网站一区 | 国产黄色片在线播放| 国产精品视频一区二区三区四| 成人精品天堂一区二区三区| 色一情一区二区| 亚洲女厕所小便bbb| 成人午夜免费在线观看| 久久久伊人欧美| 先锋影音国产精品| 日韩手机在线观看视频| 国产精品欧美久久久久无广告 | 久久99国产精品麻豆| 九九热视频在线免费观看| 日韩一级视频免费观看在线| 久久免费电影| 欧美激情第一页在线观看| 美女在线视频一区| 欧美日韩在线视频免费| 亚洲第一视频网站| 性欧美18一19sex性欧美| 亚洲乱码一区二区三区 | 91免费版黄色| 中文精品在线| 99在线视频免费| 日韩欧美电影一二三| 免费高潮视频95在线观看网站| 日本精品一区二区三区不卡无字幕| 久久国产日韩欧美精品| 国产性一乱一性一伧一色| 亚洲久久久久久久久久久| 色成人综合网| 欧美午夜性视频| 欧美激情一二三区| 亚洲av无码一区二区三区dv| 国产成人久久久精品一区| 一本到12不卡视频在线dvd| 欧美成人三级伦在线观看| 欧美视频一区二区| eeuss鲁一区二区三区| 亚洲在线不卡| 99久久综合色| 国产毛片毛片毛片毛片毛片| 欧美在线国产精品|