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

絕了,Go HTTP/2 終于要進入標準庫了!!!

開發 前端
從 Go 1.6 開始,net/http?包就提供了對 HTTP/2 的透明支持。但這個支持方式有點特別——HTTP/2 的真正實現其實在?golang.org/x/net/http2?包里,標準庫只是把它打包進來。

絕了。最近 Go 社區有個重磅消息,HTTP/2 終于要正式進入標準庫了!

這事兒說起來挺有意思的。很多同學可能都遇到過這樣的尷尬場景:想配置一下 HTTP/2 的參數,結果發現必須要導入 golang.org/x/net/http2 這個官方的 ”外部“ 包。

圖片圖片

前兩天剛哭訴完 HTTP/3 被擱置。今天我們再來聊聊 Go 團隊為什么終于肯把 HTTP/2 搬進標準庫,以及這背后的故事。

背景:一個別扭的設計

從 Go 1.6 開始,net/http 包就提供了對 HTTP/2 的透明支持。但這個支持方式有點特別——HTTP/2 的真正實現其實在 golang.org/x/net/http2 包里,標準庫只是把它打包進來。

為什么要這么做呢?主要是為了避免循環依賴的問題。http2 包依賴 net/http,而 net/http 又要用 http2,這就形成了一個死循環。

Go 團隊用了一個叫 bundle 的工具,把整個 http2 包合并成一個單獨的文件(h2_bundle.go),然后塞進 net/http 里。

圖片圖片

這個設計在早期是有好處的:

  • 可以在 Go 發布周期之外更新 HTTP/2 實現
  • 快速迭代,不受兼容性承諾約束
  • 用戶可以自己選擇 HTTP/2 的版本

有什么問題?

但現在問題越來越多了。

1、關系太復雜了net/httph2_bundle.gogolang.org/x/net/http2 三者之間的關系讓人頭大,新手看了直接懵。

2、修 bug 太麻煩了:每次要給 HTTP/2 打安全補丁,都得在多個版本之間來回折騰,backport 的流程異常復雜。

3、配置不方便:想調個 HTTP/2 參數?對不起,必須導入外部包。而且導入之后,不光配置變了,連實現都換了,這就很尷尬。

4、開發受限:HTTP/1 和 HTTP/2 的代碼分別在不同的倉庫,想要同時改動兩邊的邏輯,幾乎不可能原子化完成。

舉個例子,之前有個 issue #52459,說的是 HTTP/1 和 HTTP/2 都有自己的重試邏輯,導致請求可能被重試多次。

圖片圖片

最簡單的解決方案是搞一個統一的重試循環,但因為代碼分散在兩個倉庫,實現起來困難重重。

提案:是時候搬家了

Go 團隊提出了一個大膽的計劃:把 HTTP/2 徹底搬進標準庫。

圖片圖片

具體來說,就是把 golang.org/x/net/http2 的實現挪到 net/http/internal/http2 里。

這是個內部包(internal),普通用戶不能直接導入。所有新的開發都會在標準庫里進行。

那老的 x/net/http2 包怎么辦呢?

Go 團隊的計劃是這樣的:

  1. 在過渡期內,繼續給 x/net/http2 包提供 bug 修復。
  2. 更新 x/net/http2,讓它在新版本 Go 里直接調用標準庫的實現。
  3. 等所有還在維護的 Go 版本都不再使用舊的 vendor 版本后,正式廢棄 x/net/http2

這個方案很巧妙。既保證了平滑過渡,又能讓新代碼享受到統一實現的好處。

新的配置方式

搬進標準庫之后,最直觀的變化就是配置方式變了。以前我們要這樣寫:

import (
    "net/http"
    "golang.org/x/net/http2"
)

func main() {
    server := &http.Server{
        Addr: ":8080",
    }

    // 必須調用這個函數來配置 HTTP/2
    http2.ConfigureServer(server, &http2.Server{
        MaxConcurrentStreams: 250,
        IdleTimeout: 5 * time.Minute,
    })
}

現在可以直接在 net/http 里配置了:

import (
    "net/http"
    "time"
)

func main() {
    server := &http.Server{
        Addr: ":8080",
        HTTP2: http.HTTP2Config{
            MaxConcurrentStreams: 250,
            MaxDecoderHeaderTableSize: 4096,
            MaxEncoderHeaderTableSize: 4096,
            MaxReadFrameSize: 16384,
            MaxUploadBufferPerConnection: 1 << 20,
            MaxUploadBufferPerStream: 1 << 20,
            SendPingTimeout: 15 * time.Second,
            PingTimeout: 15 * time.Second,
        },
    }

    server.ListenAndServeTLS("cert.pem", "key.pem")
}

是不是清爽多了?不用再導入外部包,所有配置都在標準庫里搞定。

客戶端也是一樣的:

transport := &http.Transport{
    HTTP2: http.HTTP2Config{
        MaxDecoderHeaderTableSize: 4096,
        MaxEncoderHeaderTableSize: 4096,
        MaxReadFrameSize: 16384,
    },
}

client := &http.Client{
    Transport: transport,
}

接下來我們看下 HTTP2Config 的具體字段。

HTTP2Config 配置詳解

新的 HTTP2Config 結構體統一了服務端和客戶端的配置項,核心字段包括:

type HTTP2Config struct {
    // MaxConcurrentStreams 指定對端可以同時打開的流數量
    // 對應 HTTP/2 的 SETTINGS_MAX_CONCURRENT_STREAMS
    // 如果為 0,默認值至少為 100
    MaxConcurrentStreams uint32

    // MaxDecoderHeaderTableSize 設置用于解碼 header 的壓縮表大小
    // 對應 SETTINGS_HEADER_TABLE_SIZE,默認 4096 字節
    MaxDecoderHeaderTableSize uint32

    // MaxEncoderHeaderTableSize 設置用于編碼 header 的壓縮表大小上限
    // 接收到的 SETTINGS_HEADER_TABLE_SIZE 會被限制在這個值
    // 默認 4096 字節
    MaxEncoderHeaderTableSize uint32

    // MaxReadFrameSize 指定愿意接收的最大幀大小
    // 對應 SETTINGS_MAX_FRAME_SIZE
    // 有效值在 16k 到 16M 之間,默認值會被使用
    MaxReadFrameSize uint32

    // MaxUploadBufferPerConnection 是每個連接的初始流控窗口大小
    // HTTP/2 規范不允許小于 65535 或大于 2^32-1
    MaxUploadBufferPerConnection int32

    // MaxUploadBufferPerStream 是每個流的初始流控窗口大小
    // HTTP/2 規范不允許大于 2^32-1
    MaxUploadBufferPerStream int32

    // SendPingTimeout 是在連接空閑時發送 ping 幀做健康檢查的超時時間
    // 如果為 0,不進行健康檢查
    SendPingTimeout time.Duration

    // PingTimeout 是 ping 響應的超時時間,超時后連接會被關閉
    // 如果為 0,使用默認值 15 秒
    PingTimeout time.Duration

    // PermitProhibitedCipherSuites 如果為 true,
    // 允許使用 HTTP/2 規范禁止的加密套件
    PermitProhibitedCipherSuites bool

    // CountError 在發生 HTTP/2 錯誤時被調用
    // 用于監控指標統計,比如 expvar 或 Prometheus
    // errType 只包含 ASCII 字母
    CountError func(errType string)
}

這些配置項涵蓋了 HTTP/2 協議的核心參數,從并發控制、緩沖區大小到健康檢查,基本滿足了日常開發的需求。

協議版本選擇

另一個重要的改進是協議版本選擇。以前想禁用 HTTP/2,得這樣寫:

server := &http.Server{
    TLSNextProto: make(map[string]func(*http.Server, *tls.Conn, http.Handler)),
}

這寫法看起來就很別扭,對吧?新的 API 直觀多了:

server := &http.Server{
    Addr: ":8080",
    Protocols: []http.Protocol{http.HTTP1}, // 只用 HTTP/1
}

想同時支持 HTTP/1 和 HTTP/2,還能指定優先級:

server := &http.Server{
    Addr: ":8080",
    Protocols: []http.Protocol{http.HTTP2, http.HTTP1}, // 優先 HTTP/2
}

核心觀點在于,新的 Protocols 字段讓協議選擇變得清晰明了。列表中的順序代表了優先級,服務端會按這個順序和客戶端協商使用哪個協議。

如果不設置 Protocols,默認值是 {HTTP2, HTTP1}。但如果你設置了 TLSNextProto 并且里面沒有 "h2" 這個 key,默認值就會變成 {HTTP1}。這樣就保證了向后兼容。

客戶端的用法也是一樣的:

transport := &http.Transport{
    Protocols: []http.Protocol{http.HTTP2, http.HTTP1},
}

client := &http.Client{Transport: transport}

h2c 支持

還有個值得一提的改進是對 h2c(未加密的 HTTP/2)的支持。

以前想用 h2c,要么得在 DialTLS 里返回未加密連接(這名字就很詭異),要么得用 golang.org/x/net/http2/h2c 包。現在直接用協議選擇就行了:

server := &http.Server{
    Addr: ":8080",
    Protocols: []http.Protocol{http.UnencryptedHTTP2},
}

server.ListenAndServe() // 注意不是 ListenAndServeTLS

客戶端也一樣簡單:

transport := &http.Transport{
    Protocols: []http.Protocol{http.UnencryptedHTTP2},
}

client := &http.Client{Transport: transport}
resp, err := client.Get("http://example.com") // http:// 不是 https://

簡單來說,Go 團隊新增了一個 UnencryptedHTTP2 常量,專門用來表示未加密的 HTTP/2 協議。

當 Protocols 同時包含 HTTP1 和 UnencryptedHTTP2 時,服務端和客戶端都會支持 RFC 7540 Section 3.2 定義的 Upgrade: h2c 頭。服務端會把帶 Upgrade: h2c 的 HTTP/1 請求升級到 HTTP/2,客戶端也會發送這個頭。

如果只設置了 UnencryptedHTTP2 而沒有 HTTP1,那么客戶端會對 http:// 開頭的 URL 直接使用 HTTP/2。

向后兼容性保障

Go 核心團隊特別注重向后兼容。現有代碼怎么辦?

如果你在用 http2.ConfigureServer 或 http2.ConfigureTransports,代碼還是能正常工作的。這兩個函數會被更新,在新版本 Go 里自動把 HTTP2 加到 Protocols 列表里。

如果你通過設置 TLSNextProto 為空 map 來禁用 HTTP/2,這種做法也繼續有效。

如果你直接用 http2.Server 或 http2.Transport,照樣沒問題。

對于所有已經發布的 golang.org/x/net/http2 版本,行為會保持不變——選擇了這個包的實現,就會用這個包的,覆蓋標準庫的。

但是很無奈的是,新版本的 golang.org/x/net/http2 在遇到支持非 vendor HTTP/2 的 Go 版本時,會直接調用標準庫的實現。除非你用了標準庫不支持的特性(比如 Server.NewWriteScheduler 或 Transport.ConnPool),否則用的就是標準庫版本。

總之,老代碼不會因為這次改動而出問題。

總結

HTTP/2 進入標準庫這事兒,說白了就是一次技術債償還。當年為了快速迭代選擇了折衷方案,現在該還的債總是要還的。

這次改動帶來的好處很明顯:

  1. 配置更簡單,不用導入外部包就能配置 HTTP/2 參數
  2. 維護更容易,bug 修復不用到處 backport 了
  3. 開發更靈活,HTTP/1 和 HTTP/2 可以一起改,不用擔心跨倉庫的依賴問題
  4. API 更統一,協議選擇、配置方式都變得清晰明了

預計這個改動會在 Go 1.26 落地。

責任編輯:武曉燕 來源: 腦子進煎魚了
相關推薦

2022-11-08 08:29:43

Goslog 庫工具

2025-09-08 09:10:18

Go網絡HTTP/3

2023-05-05 08:51:18

Go語言泛型

2021-12-13 20:09:33

GoElasticsearJava

2025-07-21 11:49:44

GoGit子目錄

2023-12-04 08:46:40

Go標準庫

2014-01-14 09:10:53

GoHTTP內存泄漏

2023-11-01 08:41:24

Go標準庫http

2023-11-02 08:43:08

protocgo兼容

2025-07-01 07:53:47

2019-09-09 08:28:48

互聯網數據磁盤

2023-04-02 23:13:07

Go語言bufio

2025-04-28 05:00:00

2022-03-15 08:10:05

Android二維碼掃描庫

2025-10-28 01:00:00

GoRecordertrace 格式

2024-11-05 08:16:04

HTTP/3HTTP 2.0QUIC

2024-05-10 08:47:22

標準庫v2Go

2021-08-13 12:05:15

Goneturl

2025-09-28 00:00:00

ChromeMCP服務器

2019-08-28 16:38:49

finalJava編程語言
點贊
收藏

51CTO技術棧公眾號

www.天天射.com| 欧美三级网色| 国产在线观看你懂的| 国产精品一区二区中文字幕 | 日韩av大全| 国产精品久久久久精| 亚洲高清在线| 中文字幕在线看视频国产欧美| 亚洲欧美手机在线| 色是在线视频| 亚洲欧美一区二区三区极速播放 | jizzjizz欧美69巨大| 91精品在线麻豆| 免费高清在线观看免费| 国产成人无吗| 久久精品视频免费| 9a蜜桃久久久久久免费| 一级黄色av片| 尤物网精品视频| 日韩在线免费av| 久久人人爽人人爽人人片| 日韩福利影视| 一本色道久久综合亚洲精品按摩| 99精品一级欧美片免费播放| 午夜激情小视频| 国产高清视频一区| 国产美女扒开尿口久久久| 亚洲激情视频一区| 亚洲综合五月| 日韩亚洲国产中文字幕| 中文字幕丰满孑伦无码专区| 91精品日本| 7777精品伊人久久久大香线蕉 | 亚洲乱码国产乱码精品天美传媒| 色噜噜在线播放| 国产精品综合网| 国产一区二区丝袜| 中日韩在线观看视频| 亚洲欧美成人综合| 97精品在线视频| 久久精品99国产精| 一区二区电影在线观看| 最新国产成人av网站网址麻豆| 成人性生活免费看| 18国产精品| 日韩区在线观看| 日本一区二区三区在线免费观看| 色诱色偷偷久久综合| 在线中文字幕不卡| 国产熟人av一二三区| 在线免费看h| 欧美日韩国产中文字幕| 全黄性性激高免费视频| bl视频在线免费观看| 亚洲综合av网| 97中文字幕在线| 青春草视频在线| 亚洲国产另类av| 日韩精品 欧美| 桃色av一区二区| 日韩欧美在线视频日韩欧美在线视频 | 日韩一区三区| 中文字幕日韩精品在线| 9.1片黄在线观看| 欧美wwwww| 欧美成年人在线观看| wwwav国产| 在线观看视频日韩| 2025国产精品视频| 国产一级淫片a视频免费观看| 久久九九99| 国产精品尤物福利片在线观看| 曰批又黄又爽免费视频| 韩国av一区二区三区| 18成人在线| 免费观看成年人视频| 91在线观看免费视频| 日产精品久久久一区二区| 日p在线观看| 一区二区三区四区在线播放| 男女猛烈激情xx00免费视频| 亚洲天堂免费电影| 欧美图区在线视频| 永久免费看片在线观看| 久久狠狠久久| 尤物99国产成人精品视频| 特一级黄色录像| 国产精品婷婷| 成人黄色午夜影院| 天天干天天草天天射| 国产清纯在线一区二区www| 国产大尺度在线观看| 91制片在线观看| 欧美日韩性生活| 看全色黄大色黄女片18| 成人免费电影网址| 欧美激情视频一区二区三区不卡| 亚洲欧美自拍视频| 狠狠色综合日日| 好吊色欧美一区二区三区四区| yw在线观看| 亚洲成人在线免费| 狠狠干狠狠操视频| 精品亚洲精品| 超碰97人人做人人爱少妇| 日韩人妻无码一区二区三区99| 喷白浆一区二区| 国产一区二区免费电影| 五月婷婷在线视频| 精品国产1区2区| 日韩av福利在线观看| 国产免费播放一区二区| 欧美激情在线观看| 国产美女永久免费| 国产亚洲精品福利| 一二三四视频社区在线| 欧美日韩黄网站| 中文字幕一区二区三区电影| 国产又黄又粗又爽| 国产成人亚洲综合a∨婷婷| 亚洲国产一区二区三区在线| 国产在线观看www| 日韩欧美国产电影| 成人无码精品1区2区3区免费看| 国产免费成人| 国产精品亚洲不卡a| 麻豆视频在线观看免费| 色综合天天性综合| 亚洲精品乱码久久久久久久| 欧美日韩国产在线一区| 国产专区精品视频| 91在线观看| 在线免费视频一区二区| 黄色工厂在线观看| 国产午夜精品一区二区三区欧美| av一区二区三区四区电影| 免费a级在线播放| 欧美视频在线一区二区三区| 中日韩精品一区二区三区| 亚洲每日更新| 狠狠色综合网站久久久久久久| 亚洲淫性视频| 日韩欧美www| 久久免费精彩视频| 福利一区二区在线| 成人午夜视频免费观看| 亚洲精品一区二区三区中文字幕| 精品激情国产视频| 国产又大又黄又爽| 亚洲乱码国产乱码精品精的特点 | 亚洲一区二区三区网站| 国产欧美一区二区三区沐欲| 日韩手机在线观看视频| 国产成人高清| 国产精品男人的天堂| 超碰国产在线| 欧美日韩一区成人| 三上悠亚作品在线观看| 国产九色精品成人porny| 秋霞在线一区二区| 97久久精品| 91精品国产高清久久久久久久久| 午夜视频免费看| 色香蕉久久蜜桃| 国产又粗又硬视频| 国产在线观看免费一区| 一本大道东京热无码aⅴ| 极品国产人妖chinesets亚洲人妖| 国内精品一区二区三区四区| 欧美女优在线观看| 欧美日韩你懂得| 青青草原国产视频| 91老师片黄在线观看| 另类小说第一页| 欧美一区二区| 精品国产综合区久久久久久| 精品国产第一福利网站| 日韩在线观看免费网站| 黄色小视频免费观看| 色婷婷av一区二区三区大白胸 | 中文字幕人妻无码系列第三区| 亚洲黄网站黄| 日韩性感在线| 视频一区日韩| 国产成人精品av在线| 黄色在线免费| 日韩电影免费观看在线观看| 最新国产中文字幕| 亚洲一区二区三区视频在线 | 亚洲欧美偷拍另类a∨色屁股| 亚洲欧洲日韩综合| 天堂va蜜桃一区二区三区| 欧美日韩一级在线| 日韩精品欧美大片| 91久久久久久久久久久久久| 国产直播在线| 久久视频国产精品免费视频在线| 午夜性色福利视频| 91精品国产色综合久久不卡蜜臀 | 电影一区二区三区| 精品国产区一区二区三区在线观看| 黄色av小说在线观看| 欧美日韩一区二区三区视频| 国产一级二级毛片| 国产精品久久久久久久久久久免费看| 在线观看免费视频黄| 蜜桃视频在线观看一区二区| 自拍日韩亚洲一区在线| 国产精品成人av| 欧美在线一区二区三区四区| 午夜日韩影院| 成人免费福利视频| 欧美日韩不卡| 97avcom| 午夜伦理大片视频在线观看| 欲色天天网综合久久| 欧美 日韩 综合| 91精品国产91综合久久蜜臀| 久久永久免费视频| 五月天亚洲婷婷| 毛片aaaaa| 亚洲三级理论片| 日本视频在线免费| 国产日韩精品一区| 波多野结衣先锋影音| 国产99久久久国产精品潘金| 91精品999| 欧美aⅴ一区二区三区视频| 成年人视频观看| 狠狠88综合久久久久综合网| 永久免费在线看片视频| 日韩国产一区二区| 色狠狠久久av五月综合| 欧美日韩播放| 日本一区二区免费看| 亚洲都市激情| 久久久久久久久久码影片| 精品按摩偷拍| 在线看片中文字幕| 视频一区二区中文字幕| 国产原创中文在线观看| 亚洲午夜激情在线| 国产在线观看欧美| 欧美+日本+国产+在线a∨观看| 亚洲人成77777| av中字幕久久| 一区二区日本| 婷婷久久一区| 国产奶头好大揉着好爽视频| 希岛爱理一区二区三区| 中国人体摄影一区二区三区| 欧美国产偷国产精品三区| 亚洲一区三区| 91精品观看| av日韩在线看| 亚洲三级视频| 日韩中文字幕二区| 蜜臀av一级做a爰片久久| 91插插插插插插插插| 狠狠v欧美v日韩v亚洲ⅴ| 日本成人xxx| av电影天堂一区二区在线| 五月婷婷综合在线观看| 日本一区二区三区国色天香| 少妇高潮惨叫久久久久| 亚洲特黄一级片| 久久免费在线观看视频| 欧美日韩一区二区在线| 成年人视频免费| 5566中文字幕一区二区电影 | 2024最新电影免费在线观看| 欧美男插女视频| 第四色日韩影片| 青青草精品毛片| 久久亚洲国产精品尤物| 亚洲综合在线小说| 欧美日韩看看2015永久免费| 日本视频一区二区不卡| 国产精品伦理久久久久久| 久久亚洲a v| 亚洲激精日韩激精欧美精品| 欧美污视频网站| 久草在线在线精品观看| 91人妻一区二区| 日本一区二区综合亚洲| 永久免费看黄网站| 狠狠躁夜夜躁人人爽天天天天97| 五月激情丁香网| 欧美精品一区二区三区蜜桃视频| 欧美精品少妇| 蜜臀久久99精品久久久无需会员| 69av成人| 91精品免费看| 亚洲日本三级| 99中文字幕在线观看| 欧美亚洲免费| 日本黄色一级网站| 国产亚洲一区二区三区| 久久香蕉精品视频| 欧美亚洲一区二区在线观看| 亚洲经典一区二区三区| 在线观看欧美www| а√天堂资源官网在线资源| 国产精品私拍pans大尺度在线 | 欧美日本韩国国产| 在线观看日韩| 日韩一级免费在线观看| 成人黄色av电影| 天天做夜夜爱爱爱| 色综合久久久久综合| 亚洲第一成人av| 日韩在线观看免费全集电视剧网站| 999福利在线视频| 亚洲a中文字幕| 成人激情在线| 欧美两根一起进3p做受视频| zzijzzij亚洲日本少妇熟睡| 国产高潮流白浆| 欧美亚一区二区| 美国一级片在线免费观看视频| 久久久久久久一| 欧美久久一区二区三区| 中文字幕中文字幕在线中心一区| 久久久噜噜噜久久狠狠50岁| 国产艳妇疯狂做爰视频| 亚洲视频你懂的| 亚洲一区二区激情| 中文字幕日韩精品在线观看| 欧美性xxx| 欧美二区三区在线| 国产精品毛片| 女同性恋一区二区三区| 亚洲一区二区三区中文字幕| 国产99对白在线播放| 精品久久久999| 四虎精品一区二区免费| 天堂av一区二区| 人禽交欧美网站| 亚洲欧美卡通动漫| 制服丝袜国产精品| 激情视频在线观看| 91精品免费视频| 综合视频在线| 国偷自产av一区二区三区麻豆| 亚洲蜜桃精久久久久久久| 国产精品久久久午夜夜伦鲁鲁| 少妇精69xxtheporn| jizz欧美| 中文字幕日韩精品久久| 精品在线一区二区| 亚洲国产成人精品综合99| 日韩免费视频线观看| 欧美人体视频xxxxx| 成人片在线免费看| 99在线精品视频在线观看| 亚洲一级av无码毛片精品| 精品美女国产在线| 男人天堂网在线观看| 国产精品久久电影观看| 欧美xxxxx视频| 伊人av在线播放| 亚洲18色成人| 黄色毛片在线看| 国产欧美日韩精品丝袜高跟鞋| 欧美激情欧美| 日本黄色三级网站| 天天色天天操综合| 国产高清在线| 91欧美精品午夜性色福利在线| 欧美国产专区| 黄色av网址在线观看| 91久久香蕉国产日韩欧美9色| eeuss影院在线观看| 18成人在线| 久久久精品网| 伊人在线视频观看| 亚洲国产精品专区久久| 欧美与亚洲与日本直播| 超级碰在线观看| 91麻豆swag| 国产精品无码天天爽视频| 久久人91精品久久久久久不卡| 国产aⅴ精品一区二区三区久久| 国产精品视频中文字幕| 亚洲国产综合在线| 黄色片视频在线观看| 97久草视频| 喷水一区二区三区| 日韩精品视频免费看| 中文字幕欧美在线| 欧美自拍一区| 国产免费中文字幕| 日韩欧美亚洲成人| 蜜桃成人365av| 四虎永久在线精品免费一区二区| 国产精品一区二区在线观看不卡| 狠狠人妻久久久久久| 久久成人精品一区二区三区| 亚洲人成精品久久久 | 在线观看国产一区二区三区|