Go使用https

一、服务端

1. 生成私钥和证书

以上两个步骤,参考:Go http2 和 h2c

2. 代码

go 复制代码
package main

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

const idleTimeout = 5 * time.Minute
const activeTimeout = 10 * time.Minute

func main() {
    var srv http.Server
    //http2.VerboseLogs = true
    srv.Addr = ":8080"
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("hello http2"))
    })
    http2.ConfigureServer(&srv, &http2.Server{})
    go func() {
        log.Fatal(srv.ListenAndServeTLS("server.crt", "server.key"))
    }()
    select {}
}

二、客户端

三、浏览器

1、开启了h2的网站

为了方便介绍后面的检测h2的插件和检测有没有开h2的方法,这边给出了几个已经开启了h2的一些网站地址

2、检测插件

  • HTTP/2 and SPDY indicator

当访问开启h2的网站

3、检测方法

方法一、HTTP/2 and SPDY indicator插件

方法二、谷歌浏览器:

  • Console
    • window.chrome.loadTimes()
    • window.chrome.loadTimes().connectionInfo
    • window.chrome.loadTimes().npnNegotiatedProtocol

开启了http1.1的网站

开启了http2.0的网站

四、参考资料

相关推荐
Yvonne爱编码3 分钟前
JAVA EE初阶---DAY 2 计算机网络
java·开发语言·计算机网络·算法·java-ee·php
子豪-中国机器人7 分钟前
Python 阶段性综合强化训练(新版)
开发语言·python·语音识别
z落落9 分钟前
C# WinForm TreeView 树形控件+ListView控件+菜单栏
开发语言·c#
码云数智-园园9 分钟前
码云数智网站SEO设置指南:如何让百度搜索到你的网站
开发语言
赴生-10 分钟前
C++进阶 智能指针
开发语言·c++
chao18984414 分钟前
GNSS软件接收机 MATLAB 实现(GPS L1 CA码)
开发语言·matlab
迷茫运维路15 分钟前
【client-go源码学习记录一】调用链精读-从kubeconfig到ListPods
golang·client-go
清水白石00816 分钟前
让对象像函数一样工作:深入理解 Python `__call__` 的作用与实战场景
开发语言·python
AI科技星37 分钟前
氢原子基态能级跃迁紫外频段光子频率计算
开发语言·网络·量子计算·agi·拓扑学
devilnumber44 分钟前
Java Lambda 表达式 200 条常见问题、坑点、易错点、规范清单
java·开发语言