OSS 支持HTTP/2 已知影响-阿里云开发者社区

开发者社区> 阿里云存储服务> 正文

OSS 支持HTTP/2 已知影响

简介: 为了OSS 更好的访问体验,OSS计划升级支持HTTP/2。目前发现低版本Go语言应用存在缺陷导致HTTP/2请求处理异常,已知影响面如下(如果您访问OSS的方式,是使用OSS官方SDK,则无需关心以下内容): 使用Go语言应用使用HTTPS 访问OSS服务并且客户端开启支持HTTP/2 的,建议将Go版本升级至Go1.8 及以上版本。

为了OSS 更好的访问体验,OSS计划升级支持HTTP/2。目前发现低版本Go语言应用存在缺陷导致HTTP/2请求处理异常,已知影响面如下(如果您访问OSS的方式,是使用OSS官方SDK,则无需关心以下内容):

  1. 使用Go语言应用使用HTTPS 访问OSS服务并且客户端开启支持HTTP/2 的,建议将Go版本升级至Go1.8 及以上版本。
    (如果使用了AliyunOSS 官方提供的Go 语言SDK 则无需关心此问题)
  2. 使用Docker Registry(部署为Registry或Mirror)并使用OSS作为镜像存储的用户(https://hub.docker.com/_/registry/),
    建议将Registry版本升级至2.6.0 及以上版本,升级步骤为: "用新镜像启动容器"。

缺陷原因:HTTP/2 的 :path pseudo header RFC 协议规定是不支持absoluteURI 的,低版本Go语言应用存在缺陷,可能会发送:path 字段为absoluteURI 的请求,因此会造成H2 请求发生stream error: protocol error 错误,导致请求失败。
缺陷详情:详见 https://github.com/golang/go/issues/16847
修复情况:目前go 语言及使用go 语言的Docker Registry已经在新版本Fix 了这个问题
Go:
Fix: https://github.com/c3mb0/net/commit/98a0f4b48863877e4e357441e80ab56d7269a206
目前在 release-branch.go1.8 已经包含这个修复。
Docker Registry:
在2.6.0之前版本存在问题,在2.6.0及后续版本修复了这个问题。
修复版本:Go1.8 及后续版本,Docker Registry 2.6.0 及后续版本。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

阿里云存储基于飞天盘古2.0分布式存储系统,产品多种多样,充分满足用户数据存储和迁移上云需求。

官方博客
链接