REST (Representational State Transfer)API和gRPC 是什么,作為兩種主流的通信協(xié)議,各自支撐著無數(shù)的系統(tǒng)和應(yīng)用。REST以其無狀態(tài)性和易于使用的特點(diǎn),長期以來被廣泛應(yīng)用在網(wǎng)絡(luò)服務(wù)的構(gòu)建中。而gRPC 則憑借出色的性能和跨語言兼容性,正逐漸成為現(xiàn)代微服務(wù)架構(gòu)中的首選技術(shù)。
在本文中,我們將一探究竟,深入比較這兩種通信機(jī)制的優(yōu)勢(shì)與不足,探討它們?cè)诓煌瑧?yīng)用場(chǎng)景下的最佳實(shí)踐。我們將以目前云計(jì)算和微服務(wù)趨勢(shì)的最新發(fā)展動(dòng)態(tài)為背景,為讀者提供一個(gè)清晰的視角,以便在項(xiàng)目開發(fā)中做出明智的通信協(xié)議選擇。
gRPC 是什么,它是由 Google 開發(fā)的開源遠(yuǎn)程過程調(diào)用(RPC)框架,它使用 Protocol Buffers(protobuf)作為接口定義語言(IDL)和序列化格式。與傳統(tǒng)的 RESTful API 相比,gRPC 提供了更高效的通信機(jī)制,具有以下顯著優(yōu)勢(shì):
高效的序列化:gRPC 使用 Protocol Buffers 進(jìn)行數(shù)據(jù)序列化,它比 JSON 或 XML 更緊湊,因此傳輸效率更高。
強(qiáng)類型約定:使用 Protocol Buffers 定義接口時(shí),您可以明確指定數(shù)據(jù)的類型和結(jié)構(gòu),這可以在通信時(shí)幫助減少錯(cuò)誤和數(shù)據(jù)不一致性。
多語言支持:gRPC 支持多種編程語言,包括但不限于 Java、Go、Python、C#、Node.js,這使得它成為了跨平臺(tái)、跨語言的通信方案。
雙向流式通信:gRPC 支持雙向流式通信,這意味著客戶端和服務(wù)器可以同時(shí)發(fā)送和接收數(shù)據(jù)流,非常適合構(gòu)建實(shí)時(shí)應(yīng)用程序。
gRPC 是什么,它在許多不同領(lǐng)域都有廣泛的應(yīng)用,包括:微服務(wù)通信、實(shí)時(shí)應(yīng)用程序、移動(dòng)應(yīng)用程序。在許多不同領(lǐng)域都有廣泛的應(yīng)用,包括:
微服務(wù)通信:gRPC 是構(gòu)建微服務(wù)架構(gòu) 的理想選擇,它提供了高效的通信和強(qiáng)類型約定,有助于減少微服務(wù)之間的通信復(fù)雜性。
實(shí)時(shí)應(yīng)用程序:雙向流式通信使 gRPC 成為構(gòu)建實(shí)時(shí)應(yīng)用程序,如游戲、聊天和股票交易系統(tǒng)的理想選擇。
移動(dòng)應(yīng)用程序:gRPC 可以與移動(dòng)應(yīng)用程序集成 ,提供快速、高效的數(shù)據(jù)傳輸,同時(shí)支持多平臺(tái)。
了解gRPC 是什么,以及它如何作為一種現(xiàn)代化的遠(yuǎn)程過程調(diào)用框架,已經(jīng)成為了許多大型互聯(lián)網(wǎng)公司和項(xiàng)目的首選通信方式,是至關(guān)重要的。通過學(xué)習(xí)和掌握 gRPC,您可以更輕松地構(gòu)建可靠的分布式系統(tǒng),提供卓越的用戶體驗(yàn)。
注:更多REST API概念的辨析,請(qǐng)閱讀 REST API常見問題 。
一、REST API是什么
應(yīng)用程序接口 ,它利用HTTP的標(biāo)準(zhǔn)方法 來獲取和操作數(shù)據(jù)資源。REST代表Representational State Transfer,即表述性狀態(tài)轉(zhuǎn)移,是一組設(shè)計(jì)原則,用于構(gòu)建處于網(wǎng)絡(luò)中的分布式軟件系統(tǒng)。
1、概念
REST是一種軟件架構(gòu)風(fēng)格,而不是標(biāo)準(zhǔn)或協(xié)議。它是由Roy Fielding在2000年的博士論文中提出的,旨在利用Web技術(shù)的潛力來設(shè)計(jì)可擴(kuò)展、簡單且可靠的系統(tǒng)。一個(gè)RESTful API是遵循REST原則的Web API ,通過標(biāo)準(zhǔn)HTTP方法展現(xiàn)和操作資源,其中資源通過URI(統(tǒng)一資源標(biāo)識(shí)符)進(jìn)行標(biāo)識(shí),并使用標(biāo)準(zhǔn)的媒體類型比如JSON 或XML 來傳遞資源的狀態(tài)或表述。
2、特點(diǎn)
無狀態(tài)性 :REST API 的一個(gè)核心原則是無狀態(tài),這意味著每次請(qǐng)求必須包含所有必要的信息,服務(wù)器不會(huì)保留任何客戶端請(qǐng)求的上下文信息。這樣做保證了服務(wù)的可靠性、可伸縮性和獨(dú)立性。
統(tǒng)一接口 :客戶端與服務(wù)器的交互遵循統(tǒng)一的接口原則,使得從不同客戶端訪問API變得簡單和一致。統(tǒng)一接口包括資源的標(biāo)識(shí)、通過表述來操縱資源、自描述訊息和超媒體作為應(yīng)用程序狀態(tài)的引擎(HATEOAS)。
客戶端-服務(wù)端分離 :REST架構(gòu)中,客戶端和服務(wù)端的職責(zé)是明確分開。這種分離增加了客戶端和服務(wù)端實(shí)現(xiàn)的靈活性,使得雙方可以獨(dú)立地演進(jìn)和擴(kuò)展。
可見性、可靠性和可伸縮性 :通過無狀態(tài)、分層系統(tǒng)和緩存管理的原則,REST API設(shè)計(jì) 支持了良好的網(wǎng)絡(luò)可見性、可靠性和服務(wù)的可伸縮性。
緩存處理 :REST允許客戶端或者代理服務(wù)器緩存響應(yīng)。正確使用緩存可以減輕服務(wù)器壓力,減少延遲,提高系統(tǒng)整體性能。
層次化系統(tǒng) :REST架構(gòu)中的服務(wù)可以分層組織,每一層可以調(diào)用下一層的服務(wù)。這種結(jié)構(gòu)有助于構(gòu)建一個(gè)由多個(gè)獨(dú)立組件組成的松耦合的系統(tǒng)。
REST API的這些特點(diǎn)使它成為構(gòu)建網(wǎng)絡(luò)應(yīng)用程序的流行選擇,特別是在需要大規(guī)模分布式系統(tǒng)和Web服務(wù)的場(chǎng)合。然而,隨著應(yīng)用需求日益復(fù)雜,REST API的某些局限性也逐漸凸顯,例如在處理大量數(shù)據(jù)和實(shí)時(shí)通信方面。這些挑戰(zhàn)促使了gRPC 等新技術(shù)的出現(xiàn)和發(fā)展,提供了更多的選擇來滿足現(xiàn)代應(yīng)用的需求。
二、grpc是什么
gRPC 是一個(gè)高性能、開源和通用的RPC框架,由Google主導(dǎo)開發(fā),其核心在于使客戶端和服務(wù)器端的通信更快、更穩(wěn)定。它允許開發(fā)者定義服務(wù)的請(qǐng)求和響應(yīng)數(shù)據(jù)(稱為消息)和服務(wù)方法,這些定義在Protocol Buffers(一種語言無關(guān)的接口描述語言)中以.proto文件格式進(jìn)行編寫。
gRPC 是什么?簡單來說,它是一個(gè)由Google開發(fā)的開源RPC框架,旨在為客戶端和服務(wù)器之間的通信提供更快和更穩(wěn)定的方式。通過使用Protocol Buffers,gRPC不僅提高了數(shù)據(jù)傳輸?shù)男?,而且還確保了不同編程語言之間的互操作性。
在gRPC中,開發(fā)者首先需要定義服務(wù)的接口和消息類型,這是通過在.proto文件中使用Protocol Buffers語言來完成的。這些定義包括了服務(wù)方法的名稱、請(qǐng)求消息的結(jié)構(gòu)以及預(yù)期的響應(yīng)消息。gRPC是什么?它是一種讓這些定義自動(dòng)化生成客戶端和服務(wù)器端代碼的機(jī)制,從而簡化了跨語言和跨平臺(tái)服務(wù)的創(chuàng)建和維護(hù)。
gRPC通過HTTP/2進(jìn)行通信,支持雙向流、流控制、頭部壓縮等現(xiàn)代特性,這些特性使得gRPC在微服務(wù)架構(gòu) 和分布式系統(tǒng)中表現(xiàn)出色。此外,gRPC的接口定義語言(IDL)和代碼生成工具鏈?zhǔn)沟盟诙喾N編程語言中都能保持一致性和高效的實(shí)現(xiàn)。
總的來說,gRPC是什么?它是一個(gè)強(qiáng)大的通信框架,能夠滿足現(xiàn)代應(yīng)用程序?qū)Ω咝阅芎涂缯Z言支持的需求。通過使用gRPC ,開發(fā)者可以構(gòu)建快速、可靠且易于維護(hù)的分布式系統(tǒng)。
1、概念
RPC,即遠(yuǎn)程過程調(diào)用 ,是一種計(jì)算機(jī)通信協(xié)議。該協(xié)議允許位于不同地址空間的程序之間進(jìn)行通信,就像調(diào)用本地服務(wù)一樣簡單。gRPC在RPC模型的基礎(chǔ)上構(gòu)建,提供了客戶端應(yīng)用可以直接調(diào)用在不同服務(wù)器上運(yùn)行的方法,而不需要了解底層網(wǎng)絡(luò)通信的細(xì)節(jié)的能力。
2、特點(diǎn)
基于HTTP/2 :gRPC利用HTTP/2協(xié)議傳輸數(shù)據(jù),這使其支持多路復(fù)用、服務(wù)器推送等領(lǐng)先特性,可以在單個(gè)TCP連接上完成多個(gè)請(qǐng)求和響應(yīng),顯著提升性能。
接口定義語言(IDL) :通過Protocol Buffers作為接口定義語言來描述服務(wù)接口和消息結(jié)構(gòu),其具有更小的消息大小和更快的處理速度,是JSON和XML的高效替代品。
跨語言支持 :gRPC支持多種編程語言,使得在不同語言編寫的服務(wù)之間進(jìn)行通信變得可能??梢栽谝粋€(gè)編程語言中編寫服務(wù)端,而客戶端則可以在另一種語言中實(shí)現(xiàn)。
雙向流和鏈接控制 :gRPC支持雙向流,客戶端和服務(wù)器端可以通過流控制來推送消息流,并對(duì)消息傳輸進(jìn)行精細(xì)控制。
強(qiáng)類型 :由于服務(wù)和消息是通過.proto文件預(yù)先定義,gRPC服務(wù)非常嚴(yán)格地遵循協(xié)議規(guī)范,提供了比REST API更嚴(yán)格的類型安全。
靈活度和生產(chǎn)力 :因?yàn)?proto文件定義了服務(wù)契約,所以gRPC框架能夠自動(dòng)生成客戶端和服務(wù)器端代碼,這提升了生產(chǎn)力并減少了人為錯(cuò)誤。
低延遲和高吞吐量 :gRPC使用二進(jìn)制傳輸數(shù)據(jù),相較文本格式數(shù)據(jù),它的編碼、解碼效率更高,保證了更低的延遲和更高的吞吐量。
gRPC作為現(xiàn)代化應(yīng)用程序架構(gòu)和微服務(wù)中的一項(xiàng)關(guān)鍵技術(shù),其設(shè)計(jì)思想結(jié)合了有效的網(wǎng)絡(luò)傳輸和程序語言的多元化,它的出現(xiàn)和發(fā)展,為分布式系統(tǒng)中的服務(wù)間通信提供了新的解決方案 。隨著企業(yè)越來越多地采用微服務(wù)架構(gòu),gRPC展現(xiàn)出其在搭建高效、強(qiáng)類型、跨語言的通信系統(tǒng)上的獨(dú)特優(yōu)勢(shì)。
三、REST API與gRPC的對(duì)比
REST API
gRPC
網(wǎng)絡(luò)傳輸協(xié)議
HTTP/1.1及以上
HTTP/2
數(shù)據(jù)序列化
JSON
ProtoBuf
語言支持
幾乎所有語言
主流語言
性能
√
開發(fā)效率
√
流處理
√
可用性和兼容性
√
網(wǎng)絡(luò)傳輸協(xié)議 :REST API通常運(yùn)行于HTTP/1.1之上,這是其出生時(shí)的互聯(lián)網(wǎng)標(biāo)準(zhǔn)。雖然HTTP/1.1足以處理簡單的請(qǐng)求-響應(yīng)模型,但它在性能上受限于頭部阻塞和僅支持請(qǐng)求級(jí)的單向通信。gRPC則利用HTTP/2作為傳輸協(xié)議,HTTP/2引入了多路復(fù)用和服務(wù)器推送等新特性,支持雙向通信和更小的延遲,特別適合高負(fù)載的環(huán)境和實(shí)時(shí)數(shù)據(jù)處理。
數(shù)據(jù)序列化 :REST API多以JSON為主進(jìn)行數(shù)據(jù)的序列化和反序列化,JSON易于人類閱讀和編寫,但在網(wǎng)絡(luò)傳輸和解析上比二進(jìn)制格式低效。而gRPC采用Protocol Buffers(ProtoBuf)作為其默認(rèn)的接口定義語言和數(shù)據(jù)序列化格式,ProtoBuf在效率和性能上都優(yōu)于JSON格式,因其緊湊的二進(jìn)制格式,在數(shù)據(jù)大小和編解碼速度上都有明顯優(yōu)勢(shì)。
語言支持和生態(tài)系統(tǒng) :REST API憑借其基于HTTP的簡單性,在開發(fā)者生態(tài)中得到了廣泛支持。幾乎所有編程語言都有HTTP庫來調(diào)用REST API ,而REST本身也不限定使用的數(shù)據(jù)格式,甚至可以是純文本或HTML ,增加了靈活性。但是gRPC提供了官方支持的庫在多種編程語言中實(shí)現(xiàn)gRPC通信,但相對(duì)于REST, gRPC的生態(tài)系統(tǒng)還比較年輕。雖然ProtoBuf提供了跨語言的結(jié)構(gòu)數(shù)據(jù)序列化,但這也減少了與已存在HTTP生態(tài)系統(tǒng)的兼容性。
性能 :REST API在易用性 和簡單性上勝過gRPC,但對(duì)于大量數(shù)據(jù)交換 和實(shí)時(shí)性要求高的應(yīng)用場(chǎng)景,它的性能可能成為瓶頸。雖然gRPC由于采用了HTTP/2和ProtoBuf,對(duì)于性能有明顯的優(yōu)勢(shì),特別在微服務(wù)內(nèi)部或者要求低延遲通信的系統(tǒng)中表現(xiàn)出色。
開發(fā)效率 :REST API雖然廣為人知且易于開始,但因?yàn)槠錈o狀態(tài)和無固定契約的特性,可能需要更多的文檔和工具來保證接口的一致性。gRPC利用.proto文件中的強(qiáng)契約,可以自動(dòng)生成客戶端和服務(wù)端代碼,這大幅提升了工程團(tuán)隊(duì)的開發(fā)效率并降低了人為錯(cuò)誤。
流處理 :REST API不內(nèi)置支持 流處理,通常通過輪詢或長輪詢來模擬流,這在效率上并不理想。gRPC支持四種類型的RPC:單一請(qǐng)求/響應(yīng)模式、服務(wù)器端流、客戶端流和雙向流,非常適合需要流控制的應(yīng)用場(chǎng)景。
可用性和兼容性 :REST API的普適性和易用性使其更易被廣泛接納。大多數(shù)的網(wǎng)絡(luò)設(shè)備和服務(wù)器默認(rèn)支持HTTP,因此無需額外配置即可跨越公司防火墻。gRPC盡管在性能上有優(yōu)勢(shì),但由于依賴HTTP/2,它可能需要額外的配置和環(huán)境支持,尤其是在老舊的系統(tǒng)或不支持HTTP/2的網(wǎng)絡(luò)環(huán)境中。
四、總結(jié)
在考量了REST API與gRPC的不同特性之后,我們可以清楚地看到,盡管兩者各有千秋,但選擇合適的通信協(xié)議并不是一件簡單的事情。對(duì)于需求更多在于穩(wěn)定性、普遍適用性及兼容現(xiàn)有Web生態(tài)的系統(tǒng),REST API仍然是一種可靠的選擇。它所具有的簡潔性和成熟的開發(fā)及部署模式,使它在許多場(chǎng)景下依然是最佳選擇,尤其是當(dāng)公開、標(biāo)準(zhǔn)化的Web接口 成為必要時(shí)。而對(duì)于追求最佳性能,以及在多個(gè)微服務(wù)之間需要進(jìn)行密集數(shù)據(jù)交互的場(chǎng)景,gRPC則以其現(xiàn)代化的設(shè)計(jì)和強(qiáng)大的功能展示了非凡的實(shí)力。
五、關(guān)于gRPC 的FAQ
哪些編程語言支持gRPC? gRPC支持多種編程語言和平臺(tái),具體可以查看官方支持列表。
如何開始使用gRPC? 可以通過按照gRPC官網(wǎng)提供的安裝指南開始使用gRPC,或者訪問gRPC GitHub組織頁面,選擇你感興趣的運(yùn)行時(shí)或語言,并按照README指南操作。
gRPC的許可證是什么? gRPC的所有實(shí)現(xiàn)都在Apache 2.0許可證下。
如何為gRPC做出貢獻(xiàn)? gRPC歡迎貢獻(xiàn)者,并且所有的代碼庫都托管在GitHub上。無論是個(gè)人還是企業(yè)貢獻(xiàn)者都需要簽署CLA(貢獻(xiàn)者許可協(xié)議)。如果有關(guān)于gRPC的項(xiàng)目想法,可以閱讀指南并提交。
gRPC的文檔在哪里? gRPC的文檔可以在grpc.io上找到。
gRPC的最新版本是什么? gRPC的最新發(fā)布標(biāo)簽是v1.66.0。
gRPC的發(fā)布周期是多久? gRPC項(xiàng)目以master分支始終穩(wěn)定為目標(biāo)。項(xiàng)目(跨各種運(yùn)行時(shí))努力每6周發(fā)布一次檢查點(diǎn)版本。
gRPC是否支持瀏覽器? gRPC-Web項(xiàng)目已經(jīng)普遍可用,它允許JavaScript應(yīng)用程序通過特殊的代理(默認(rèn)是Envoy)連接到gRPC服務(wù)。
gRPC是否支持我最喜歡的數(shù)據(jù)格式(JSON、Protobuf、Thrift、XML)? 是的,gRPC被設(shè)計(jì)為可擴(kuò)展以支持多種內(nèi)容類型。初始版本包含對(duì)Protobuf的支持,并且有外部支持對(duì)其他內(nèi)容類型如FlatBuffers和Thrift的支持。
gRPC如何在移動(dòng)應(yīng)用開發(fā) 中提供幫助? gRPC和Protobuf為精確定義服務(wù)和自動(dòng)生成可靠的iOS、Android客戶端庫以及提供后端的服務(wù)器提供了一種簡單的方式。客戶端可以利用高級(jí)的流控制和連接特性,這有助于節(jié)省帶寬、通過更少的TCP連接完成更多工作,以及節(jié)省CPU使用和電池壽命。
六、參考鏈接
4 種主流的 API 架構(gòu)風(fēng)格對(duì)比
簡單對(duì)比 RPC 和 Restful API
restful api與 rpc
熱門推薦
一個(gè)賬號(hào)試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊(cè)
免費(fèi)開始試用 →
3000+提示詞助力AI大模型
和專業(yè)工程師共享工作效率翻倍的秘密
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
最新日韩av在线 |
国产精品伊人色 |
国产精品少妇自拍 |
日韩在线播放一区二区 |
欧美综合天天夜夜久久 |
日韩主播视频在线 |
欧美日本乱大交xxxxx |
久久国产精品免费 |
欧美一区二区三区四区久久 |
国产精品久久久久久久岛一牛影视 |
亚洲国产精品一区二区尤物区 |
色婷婷久久久久swag精品 |
国内久久精品视频 |
成人免费视频视频 |
在线视频欧美区 |
国产精品毛片高清在线完整版 |
亚洲日穴在线视频 |
国产日产精品1区 |
91精品欧美福利在线观看 |
久久成人免费电影 |
亚洲一区视频在线 |
在线不卡a资源高清 |
国内精品在线播放 |
中文在线一区二区 |
欧美一区二区三区婷婷月色 |
成人午夜又粗又硬又大 |
午夜激情久久久 |
欧美国产欧美综合 |
天堂影院一区二区 |
亚洲欧洲国产日韩 |
国产成人亚洲综合a∨婷婷 |
制服丝袜亚洲精品中文字幕 |
日韩精品一区二 |
亚洲h精品动漫在线观看 |
91色婷婷久久久久合中文 |
精品国产欧美一区二区 |
老司机免费视频一区二区 |
亚洲色图视频网 |
欧美一区三区二区 |
久久丝袜美腿综合 |
一区二区三区四区蜜桃 |
美女高潮久久久 |
欧美性猛交xxxx乱大交退制版 |
成人精品鲁一区一区二区 |
国产成人av电影在线播放 |
日韩av网站免费在线 |
久久久久高清精品 |
亚洲国产电影在线观看 |
日本不卡视频在线 |
久久久久久久电影 |
精品国产a毛片 |
免费三级欧美电影 |
欧美日本国产一区 |
91视频国产资源 |
95精品视频在线 |
欧美日韩精品欧美日韩精品 |
色一区在线观看 |
亚洲不卡在线观看 |
在线观看日韩一区 |
一区二区三区中文在线观看 |
国产又粗又猛又爽又黄91精品 |
久久久不卡网国产精品二区 |
粉嫩av亚洲一区二区图片 |
国产欧美精品一区 |
成人网男人的天堂 |
日韩在线一二三区 |
中文字幕亚洲精品在线观看 |
91官网在线观看 |
国产经典欧美精品 |
秋霞午夜鲁丝一区二区老狼 |
国产欧美日韩激情 |
日韩欧美国产1 |
亚洲私人影院在线观看 |
国产精品伦一区 |
日本vs亚洲vs韩国一区三区二区 |
久久精品人人做 |
亚洲日本丝袜连裤袜办公室 |
综合自拍亚洲综合图不卡区 |
亚洲精品中文在线观看 |
91麻豆精品国产91久久久 |
欧美探花视频资源 |
成人免费观看av |
欧美性三三影院 |
五月婷婷另类国产 |
国产精品一区二区免费不卡 |
国产99一区视频免费 |
亚洲精品一区二区三区影院
|
日韩欧美国产一区二区在线播放 |
亚洲图片另类小说 |
久久精品噜噜噜成人av农村 |
福利电影一区二区 |
日韩免费成人网 |
国产精品超碰97尤物18 |
视频在线在亚洲 |
91麻豆免费看 |
久久午夜老司机 |
色一情一伦一子一伦一区 |
亚洲第一会所有码转帖 |
欧美一级片免费看 |
国内精品国产成人国产三级粉色 |
欧美日韩一二区 |
欧美绝品在线观看成人午夜影视 |
欧美丰满一区二区免费视频 |
成人激情免费视频 |
日本道在线观看一区二区 |
337p粉嫩大胆噜噜噜噜噜91av |
日韩欧美国产综合在线一区二区三区
|
国产91在线看 |
欧美色图第一页 |
最新日韩av在线 |
国产suv精品一区二区883 |
欧美一区二区三区不卡 |
欧美日韩极品在线观看一区 |
欧美一卡2卡三卡4卡5免费 |
91精品国产综合久久精品app |
中文欧美字幕免费 |
色中色一区二区 |
奇米亚洲午夜久久精品 |
日韩精品专区在线影院重磅 |
国产美女主播视频一区 |
久久久夜色精品亚洲 |
成人av资源站 |
亚洲国产乱码最新视频
|
一区二区成人在线 |
制服丝袜在线91 |
av在线不卡观看免费观看 |
综合久久给合久久狠狠狠97色 |
国产美女一区二区 |
亚洲欧美激情小说另类 |
精品免费日韩av |
在线免费亚洲电影 |
日日夜夜免费精品 |
国产精品二区一区二区aⅴ污介绍 |
欧美日本国产视频 |
www.在线欧美 |
成人av网在线 |
欧美a级一区二区 |
亚洲成a人在线观看 |
久久综合av免费 |
久久九九全国免费 |
国产日韩欧美在线一区 |
欧美第一区第二区 |
日韩精品一区二区三区swag |
91精品久久久久久久91蜜桃 |
在线视频欧美区 |
欧美日韩免费观看一区二区三区
|
国产精品18久久久久久vr |
亚洲国产精品成人久久综合一区 |
在线观看亚洲专区 |
秋霞成人午夜伦在线观看 |
亚洲国产成人va在线观看天堂 |
亚洲免费av网站 |
亚洲欧美视频在线观看视频 |
91精品国产综合久久久蜜臀粉嫩 |
麻豆精品一区二区 |
成人一区在线观看 |
日韩亚洲国产中文字幕欧美 |
欧美大片在线观看一区 |
亚洲天堂免费看 |
成人中文字幕合集 |
亚洲精品一区二区三区四区高清 |
一区二区三区91 |
欧洲在线/亚洲 |
国产欧美精品国产国产专区 |
久久色成人在线 |
亚洲韩国精品一区 |
成人午夜碰碰视频 |
91精品黄色片免费大全 |
亚洲视频电影在线 |
日日摸夜夜添夜夜添亚洲女人 |
成人久久视频在线观看 |
日韩美一区二区三区 |
一区二区三区四区蜜桃 |
欧美激情一区二区三区 |
男男成人高潮片免费网站 |
69久久夜色精品国产69蝌蚪网 |
亚洲美女视频在线观看 |
91在线精品一区二区 |
依依成人综合视频 |
99视频超级精品 |
视频一区二区国产 |
日韩一区二区三区视频在线观看 |
午夜av电影一区 |
欧美一级理论性理论a |
日韩成人伦理电影在线观看 |
91精品国产全国免费观看 |
日韩国产在线观看一区 |
欧美日韩亚洲综合在线 |
亚洲一区二区三区在线看 |
欧美伊人精品成人久久综合97 |
日本色综合中文字幕 |
国产欧美日韩久久 |
欧美精品vⅰdeose4hd |
一区二区三区精品在线观看 |
精品日韩在线一区 |
91久久奴性调教 |
成人精品电影在线观看 |
国产剧情一区二区 |
久久国产精品99精品国产 |
国产欧美精品区一区二区三区
|