精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

日韩精品一卡二卡| 国产又黄又猛视频| 精品人妻一区二区三区蜜桃| 一区二区三区四区电影| 日韩欧美一区电影| 九九久久九九久久| 99视频在线观看免费| 一区在线视频观看| 国产午夜精品一区理论片飘花 | 久久久久久久久久久人体 | 国产精品久免费的黄网站| 国产中文字幕一区二区三区| 欧美日韩情趣电影| 超碰免费在线公开| 亚洲xxx在线| 久久一区欧美| 欧美人与性动交| 黄色国产在线观看| 欧洲亚洲精品| 婷婷丁香久久五月婷婷| 亚洲国产成人不卡| 亚洲精品福利网站| 日本伊人午夜精品| 久久久欧美精品| 国产又粗又猛又爽又黄的视频四季| 日韩中文字幕| 91福利在线看| 福利视频一区二区三区四区| 男人的天堂在线视频免费观看 | 国产精品嫩草影院一区二区| 午夜免费激情视频| 欧美色婷婷久久99精品红桃| 日韩精品中文字幕在线不卡尤物| 手机看片福利日韩| av中文资源在线资源免费观看| 中文字幕av一区二区三区| 国产精品久久亚洲7777| 怡春院在线视频| 久久激情久久| 亚州国产精品久久久| 中文字幕人妻一区二| 国产日产精品一区二区三区四区的观看方式| 91精品国产一区二区人妖| 久草精品在线播放| 鲁鲁在线中文| 亚洲国产精品一区二区久久 | 亚洲欧美综合一区二区| 国产一区二区三区在线观看免费视频| 日韩av理论片| 成年人免费高清视频| 狠狠综合久久| 欧美丰满片xxx777| 成人免费视频网站入口::| 欧洲激情综合| 亚洲视频欧美视频| 丰满圆润老女人hd| 日韩有码一区| 亚洲国产精品久久久久| 初高中福利视频网站| 成人在线日韩| 91精品国产福利在线观看| 日本中文字幕精品—区二区| 中文在线аv在线| 欧美日韩国产中文精品字幕自在自线| 国产精品自拍合集| 女囚岛在线观看| 一级做a爱片久久| 国产精品啪啪啪视频| av在线app| 亚洲激情网站免费观看| 欧美日韩dvd| 成人在线免费观看黄色| 亚洲 欧美综合在线网络| 国产无限制自拍| 天堂中文av在线资源库| 欧美午夜宅男影院在线观看| 日本精品一区在线观看| 成年美女黄网站色大片不卡| 亚洲香肠在线观看| 国模无码视频一区二区三区| 天堂中文在线播放| 欧美在线看片a免费观看| 粉嫩虎白女毛片人体| 51一区二区三区| 91精品啪在线观看国产60岁| 日本少妇一区二区三区| 日韩激情精品| 亚洲精品电影在线观看| 女人又爽又黄免费女仆| 成人激情开心网| 精品国产一区二区三区四区在线观看 | 午夜国产小视频| 欧美一级淫片| 久热精品视频在线| 亚洲国产综合久久| 久久久久欧美精品| 国产一区二区香蕉| 后进极品白嫩翘臀在线视频| 久久久久亚洲蜜桃| 中文字幕99| 欧美激情网站| 欧美日本国产视频| 国产伦理在线观看| 亚洲欧洲av| 久久艳片www.17c.com | eeuss影院www在线播放| 国产精品视频yy9299一区| 成人午夜免费剧场| 日韩av影片| 欧美一区二区不卡视频| 亚洲最大的黄色网| 日韩欧美伦理| 欧美老妇交乱视频| 波多野结衣一区二区三区四区| 国产一区二区三区四| 免费国产在线精品一区二区三区| 伊人免费在线| 欧美日韩美女在线观看| 欧美成人三级在线播放| 首页亚洲中字| 九九精品视频在线| 一级黄色在线观看| 丁香六月综合激情| 一区二区不卡在线观看| 天堂а√在线最新版中文在线| 91精品国产一区二区三区香蕉| 日韩中文字幕电影| 国内自拍视频一区二区三区| 国产精品视频一| 天堂a中文在线| 亚洲一区二区三区四区在线免费观看 | 在线观看国产中文字幕| 果冻天美麻豆一区二区国产| 亚洲无限av看| 欧美一级片免费在线观看| 国产高清一区日本| 欧美一区2区三区4区公司二百| 欧洲精品二区| 日韩西西人体444www| 国产aaaaaaaaa| 久久蜜桃资源一区二区老牛| 韩国一区二区三区美女美女秀| 久久综合之合合综合久久| 色婷婷综合中文久久一本| 午夜视频在线免费看| 日韩中文字幕高清在线观看| 日本精品久久久久久久| 色香蕉在线视频| 一区二区成人在线视频| 中文字幕第22页| 爽成人777777婷婷| 国产精品夜色7777狼人| av在线资源站| 在线精品亚洲一区二区不卡| 伊人网在线视频观看| 国产欧美日韩综合一区在线播放| 国产另类自拍| brazzers在线观看| 亚洲精品wwwww| 国产午夜精品无码一区二区| 粉嫩一区二区三区性色av| 51xx午夜影福利| 日韩精品一区国产| 久久久久久久久爱| 人妻妺妺窝人体色www聚色窝| 亚洲国产一区二区视频| 中文字幕天堂av| 在线视频观看日韩| 国产一区免费视频| 国产伦精品一区二区三区视频金莲| 亚洲国产成人精品一区二区 | 国产男女猛烈无遮挡91| 免费的黄网站在线观看| 欧美在线观看视频在线| 毛片aaaaaa| 久久99热国产| 色一情一乱一乱一区91| 欧美午夜在线播放| 欧美激情亚洲视频| 污污视频在线免费看| 狠狠躁夜夜躁人人爽超碰91 | 国产区在线观看成人精品| 国产精品欧美激情在线观看| 精品视频日韩| 91夜夜揉人人捏人人添红杏| 日本高清在线观看| 亚洲经典中文字幕| 天天射天天干天天| 综合激情成人伊人| xxxx黄色片| 美女久久久精品| 免费看日b视频| 亚洲+变态+欧美+另类+精品| 国产精品吊钟奶在线| 精品欧美色视频网站在线观看| 91麻豆精品国产无毒不卡在线观看| 五月天丁香激情| 91免费小视频| 蜜臀av免费一区二区三区| 日韩女优毛片在线| 欧美bbbbbbbbbbbb精品| 国产精品污www在线观看| 欧美激情第四页| 亚洲一区视频| 日本成人黄色免费看| 伊人久久大香线蕉综合影院首页| 久久久久久com| lutube成人福利在线观看| 日韩一区二区三区在线视频| 国产乡下妇女做爰毛片| 国产精品无遮挡| 北京富婆泄欲对白| 久久国产精品露脸对白| 国产v片免费观看| 久久久久久久久国产一区| 久久狠狠久久综合桃花| 成人国产精品久久| 国产91九色视频| 免费在线看电影| 综合国产在线观看| 婷婷开心激情网| 91精品国产全国免费观看| 日本免费在线观看视频| 亚洲综合在线免费观看| 黄大色黄女片18免费| 成人av免费在线| 毛片毛片毛片毛| 亚洲一区日本| 日韩免费在线观看av| 日韩精品1区| 青娱乐一区二区| 欧美日韩麻豆| 国产伦精品一区二区三区视频黑人| 中文成人在线| 国产精品久久久久久久久久久久 | 亚洲嫩模很污视频| 精品人妻一区二区三区四区不卡 | 亚洲一区二区三区日本久久九| 国产成人小视频在线观看| 国产激情视频在线看| 欧美精品免费播放| 超碰免费在线观看| 亚洲毛片在线观看.| 午夜视频免费看| 亚洲国产精品资源| 亚洲一卡二卡在线观看| 色婷婷综合久久久久中文一区二区 | 大桥未久一区二区三区| 久久婷婷蜜乳一本欲蜜臀| 日本精品一区二区三区高清 久久| 欧美黑人巨大videos精品| 97夜夜澡人人双人人人喊| 精品午夜视频| 亚洲精品日产aⅴ| 精品久久亚洲| 亚洲一区中文字幕| 免费观看亚洲天堂| 97久草视频| 自拍偷拍欧美日韩| 成人a在线视频| 北岛玲精品视频在线观看| 日韩av理论片| 全球最大av网站久久| 国产精品久久中文| 欧美黄页免费| 成人91视频| 美日韩黄色大片| 性刺激综合网| 一个色综合网| 久久久久免费看黄a片app| 日韩成人一区二区| 超碰在线资源站| www.日韩av| av免费播放网站| 亚洲综合自拍偷拍| 无码人妻精品一区二区三区9厂 | 国产成人精品一区二三区四区五区 | 色综合激情久久| 国产精品爽爽久久| 亚洲电影免费观看高清完整版在线观看| 欧美日本网站| 欧美成人亚洲成人日韩成人| 免费在线小视频| 国产日韩精品在线| 女人抽搐喷水高潮国产精品| 亚洲精品视频一二三| 伊人蜜桃色噜噜激情综合| 免费一级特黄录像| 成人免费电影视频| 国产日韩精品中文字无码| 偷拍与自拍一区| 亚洲一区二区色| 精品一区电影国产| 黄色成人影院| 国产成人免费av| 国产一区二区三区亚洲| 一区二区三区欧美成人| 亚洲美女一区| 手机看片国产精品| 国产精品午夜在线| 亚洲天堂男人av| 亚洲аv电影天堂网| 在线观看免费版| 日本成熟性欧美| 天堂久久av| 裸体裸乳免费看| 奇米影视7777精品一区二区| 国产美女视频免费观看下载软件| 国产精品激情偷乱一区二区∴| 国产精品suv一区二区三区| 欧美成人aa大片| 日韩理伦片在线| 国产精品第七十二页| 欧美一级三级| 999久久欧美人妻一区二区| 精品一区精品二区高清| 无码人妻丰满熟妇啪啪欧美| 午夜精品123| 亚洲第一视频在线| 久久精品久久久久| 精品女同一区二区三区在线观看| 欧美日韩精品不卡| 国产日韩1区| 亚洲日本久久久| 一区二区三区在线视频免费| 亚洲一区二区人妻| 日韩在线小视频| 丁香久久综合| 翔田千里亚洲一二三区| 奇米色777欧美一区二区| 熟女少妇一区二区三区| 疯狂蹂躏欧美一区二区精品| 日本免费一区视频| 97高清免费视频| 女同一区二区三区| 国产亚洲天堂网| www精品美女久久久tv| 国产成人免费看| 国产丝袜一区二区三区免费视频| 欧美aa免费在线| 欧美精品与人动性物交免费看| 国产日韩欧美一区| 少妇按摩一区二区三区| 91福利在线导航| av在线天堂| 91精品久久久久久久久不口人| 色男人天堂综合再现| 亚洲综合日韩欧美| 亚洲欧洲在线观看av| 国产精品久久久久毛片| 欧美成人午夜激情| 加勒比久久高清| 国产肥臀一区二区福利视频| 久久久精品国产免大香伊| 成年人视频免费| 日韩视频中文字幕| 精品午夜视频| 欧美黑人经典片免费观看| 久久久久久久久久久电影| 波多野结衣黄色网址| 日韩一区二区福利| 日韩欧美一级| 男人亚洲天堂网| 欧美国产禁国产网站cc| 国产人妖一区二区| 久久久久久网站| 国产一区二区精品久| 日本在线播放一区二区| 一区二区在线看| 日韩美女一级视频| 国产精品视频一区二区高潮| 综合一区在线| a级一a一级在线观看| 欧美中文字幕一区| 国产三级在线播放| 久久久福利视频| 麻豆精品视频在线| 国语对白一区二区| 在线成人激情视频| 一区二区在线免费播放| 成人免费视频久久| 亚洲一区二区三区免费视频| 国产在线观看黄| 99视频在线| 欧美aⅴ一区二区三区视频| 久久久99精品| 在线观看欧美日韩国产| 成人搞黄视频| 日本一二区免费| 午夜久久久久久久久久一区二区| yiren22综合网成人| 国产精品视频500部| 男人的j进女人的j一区| 精品午夜福利在线观看| 中文字幕成人精品久久不卡| 国产精品极品在线观看| 污网站在线免费| 色婷婷av一区| av资源在线| 99久久99久久精品|