571
社区成员




quic-go的简单使用和代码分析
https://blog.csdn.net/qq_34499205/article/details/119707403
git clone https://github.com/lucas-clemente/quic-go.git
在搜索框中输入about:config,搜索http3,找到network.http.http3.enabled, 设置为true
这一步是可选的,不执行这一条命令在运行程序时会报错:failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 2048 kiB, got: 416 kiB)。。但不影响程序正确运行。
本代码位于/quic-go/example/echo/echo.go
执行go run echo.go
这是一个简单的echo(回显)程序,客户端向服务器发送foobar,服务器收到后原封不动地返回给客户端,客户端接收到。
2. 运行http3server程序
本代码位于/quic-go/example/main.go
执行go run main.go
代表服务器已经开启,端口位于6121
打开浏览器,按下f12,打开调试工具,选择Network
注意下面的Protocol一列,如果没有这一列,可以右键其他的标签,选中Protocol即可。
在地址栏中输入网址:https://127.0.0.1:6121/demo/tile
可以看到HTTP/3协议
注意如果Firefox认为网址不安全,直接继续访问即可
注意此处的网址必须有前缀https://, 否则依然是http/1.0协议
运行http3client程序
本代码位于/quic-go/example/client/main.go
执行 go run main.go 'https://liudanking.com'
这个网址是一个能够接受quic请求的网址
当然也可以使用上述的http3server
go run main.go 'https://127.0.0.1:6121/demo/tile'
都能够得到回复
go语言的项目构建较为容易,将代码clone到本地后,在项目内运行
go test ./...
在运行测试的同时即可将所需的依赖自动下载到本地
TCP协议需要三次握手,在加上https tls的用时,需要200-300ms才能建立链接,quic在底层基于UDP,不需要三次握手,只需要0-100ms即可建立链接,速度显著快于TCP链接
client 发送请求的函数调用步骤 server处理请求的函数调用步骤
NP 589