http2: enable net/http wrapping when go >= 1.27

When building with Go 1.27 or newer, use an HTTP/2
client and server which are implemented in terms of net/http.

The original source of truth for the Go HTTP/2 implementation
was the x/net/http2 package. A copy of this package was included
in the standard library.

In Go 1.27, the source of truth of the HTTP/2 implementation
has moved entirely into the standard library. There are no
supported features of the HTTP/2 implementation which require
importing x/net/http2, and most users should just use net/http
directly.

We still support existing code which imports x/net/http2.
To avoid maintaining two divergent HTTP/2 implementations,
x/net/http2 (when used with a recent enough version of Go)
now just wraps net/http.

For now, users may revert to the the pre-Go 1.27 implementation
by setting the build tag "http2legacy":

  go build -tags=http2legacy ...

For golang/go#78508

Change-Id: I6efeddc4f3bcba9388c19cbcd1e9b8a56a6a6964
Reviewed-on: https://go-review.googlesource.com/c/net/+/774440
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Nicholas Husin <nsh@golang.org>
Reviewed-by: Nicholas Husin <husin@google.com>
31 files changed
tree: d3259a8cf1ea4b55c70e473dff3fecfcc1b45882
  1. bpf/
  2. context/
  3. dict/
  4. dns/
  5. html/
  6. http/
  7. http2/
  8. http3/
  9. icmp/
  10. idna/
  11. internal/
  12. ipv4/
  13. ipv6/
  14. lif/
  15. nettest/
  16. netutil/
  17. proxy/
  18. publicsuffix/
  19. quic/
  20. route/
  21. trace/
  22. webdav/
  23. websocket/
  24. xsrftoken/
  25. .gitattributes
  26. .gitignore
  27. codereview.cfg
  28. CONTRIBUTING.md
  29. go.mod
  30. go.sum
  31. LICENSE
  32. PATENTS
  33. README.md
README.md

Go Networking

Go Reference

This repository holds supplementary Go networking packages.

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://go.dev/doc/contribute.

The git repository is https://go.googlesource.com/net.

The main issue tracker for the net repository is located at https://go.dev/issues. Prefix your issue with “x/net:” in the subject line, so it is easy to find.