ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

如何使用http3

如何使用http3

背景

早就听说http3和quic,但是一直没折腾成功,今天又折腾了一下,终于看到了h3。

条件

  • https(证书必须安全)
  • Alt-Svc响应头(标识开放的对应udp端口)
  • udp端口访问通畅
  • 浏览器竞速(浏览器同时发起tcp和udp请求,哪个快用哪个)

https

证书必须安全,在http2中,不安全依旧能用,后面有张图可以看看。

可以使用mkcert安装本地证书作验证,通过了之后再尝试线上环境。

winget install mkcert
mkcert -install

生成一个新的证书

mkcert localhost 127.0.0.1 ::1

在Caddyfile中

tls ./localhost+2.pem ./localhost+2-key.pem

alt-svc

header Alt-Svc `h3=":8443"; ma=2592000, h3-29=":8443"; ma=2592000`

udp

caddy中,不管怎么配置,他都只开ipv6的端口。导致一直不通
powershell中输入如下命令,可以查看当前开放的udp端口

Get-NetUDPEndpoint | Select-Object LocalAddress, LocalPort, OwningProcess
PS D:\www> Get-NetUDPEndpoint -LocalPort 8443 | Select-Object LocalAddress, LocalPort, OwningProcessLocalAddress LocalPort OwningProcess
------------ --------- -------------
::                8443         81976

浏览器

浏览器就是死活不使用http3。
打开powershell输入如下命令

& "C:\Users\32956\AppData\Local\Google\Chrome\Application\chrome.exe" `--user-data-dir="$env:TEMP\chrome_h3_test" `--origin-to-force-quic-on=127.0.0.1:8443 `--force-quic `--ignore-certificate-errors `"https://127.0.0.1:8443/image-hosts"

如果不行,那么会直接显示无法访问,不会回退到http2。
image

阶段

http只能使用1.1,无法使用http2
image

在http的网站,可以调用https的http2协议接口。
http3是最苛刻的。

其他

假如使用内网穿透服务,需要使用两条隧道,一条tcp、一条udp,配置起来有点烦。

返回列表