mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-22 22:45:27 -05:00
Supporting http/2 with server push #626
Closed
opened 2025-11-02 03:30:47 -06:00 by GiteaMirror
·
18 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#626
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @tony199555 on GitHub (Apr 8, 2017).
Go 1.8 comes with a eagerly anticipated feature: Http/2. One feature of http/2 is server push, which in theory increase the performance of web page delivery.
So I am wondering if by any chance gitea 1.3 will be able to move to go 1.8.
P.S. Since http/2 requires a SSL certificate, do you see that we could also include Let's Encrypt with gitea. I have seen a couple solutions that works with go, i.e. this one from rsc .
@strk commented on GitHub (Apr 8, 2017):
See #1167 for Let's Encrypt integration
@tboerger commented on GitHub (Apr 8, 2017):
We can build the prebuilt binaries with 1.8, but we won't drop support for older go versions as even developers like @strk are still working on 1.6. For the docker image we are using the go version that is available on alpine edge.
@lunny commented on GitHub (Apr 8, 2017):
So that could be a build tag
@tboerger commented on GitHub (Apr 8, 2017):
Not any build tag at all, http2 is part of the stdlib. It's just working with https connections only
@tony199555 commented on GitHub (Apr 9, 2017):
@tboerger After reading more about different version (1.6 - 1.8), I found out that 1.6 actually supports http/2, but not server push, which it is new for 1.8. I guess we could still use http/2 with 1.6 but not server push. Then it should have increase performance AND security by just using http/2 per se.
Reference:
Seven years of Go
@tboerger commented on GitHub (Apr 9, 2017):
I know, but it's up to the user to configure https.
@alexandrestein commented on GitHub (Jan 25, 2018):
When
TLSis enable the communication is stillhttp/1.1in my Chromium debugger.I'm using the
Dockerimage which come withGo1.9.2.It should use
HTTP2by itself because of the gohttppackage, right?@thehowl commented on GitHub (Jan 30, 2018):
Are you proxying through nginx or are you connecting to Gitea directly?
@alexandrestein commented on GitHub (Jan 31, 2018):
Directly.
Does it can be related to my configuration file? I'm using
GZIPfor example.@juppin commented on GitHub (Feb 7, 2018):
HTTP2 is also defined for unencrypted transport... It's called h2c.
I dont know why golang wont implement this in there std lib.
https://github.com/hkwi/h2c
Clould h2c implemented in gitea with the above library?
That would be great :-)
I want to use apache with proxy_http2 as reverse proxy without encryption between gitea and apache.
For me i cloud not use gitea directly, because i use port 80 and 443 for other sites to on my ip too.
@bkcsoft commented on GitHub (Feb 10, 2018):
@juppin No browser allows for unencrypted HTTP2 though. So even if the spec allows it, it's essentally useless for browser usage
@tony199555 commented on GitHub (Feb 10, 2018):
@juppin Well, given the fact that Chrome will begin to block non-https website by showing what insecure https website shows now; and it is now displaying "insecure" on the address bar for the http website, the trend is going to be https for every website. So it does not hurt to use the ssl for proxy, too.
@juppin commented on GitHub (Feb 10, 2018):
But using h2c from gitea to reverse proxy is a very useful usecase...
I do not want to use unecrypted http2 over my public ip.
All my virtual hosts on apache with http on port 80 do only redirect to https.
@alexandrestein commented on GitHub (Feb 12, 2018):
HTTP2main goal is to optimize the network and reduce the latency while keeping the compatibility withHTTP/1.x.If you are proxing to a local network or to the localhost I don't think you will see any significant performance gain.
For me, it's definitely not a "useful usecase".
@tankerkiller125 commented on GitHub (Aug 3, 2018):
Just adding an autmatic Link header would help out even in HTTP1.1 as those of us who do Cache and Pushing through a web server (Caddy for example) can configure them to push assets that are in the Link header, not only that but people who use Cloudflare would also get that extra benefit because Cloudflare also pays attention to the Link header
@Deuchnord commented on GitHub (Jan 8, 2019):
Hey there, just fall onto this old issue…
You may be interested in this new protocol called Mercure, created by @dunglas. It seems very simple to implement on server-side and is powered by HTTP/2 and server push. It is written in Go and has a built-in library for this language. 🙂
Plus, there is a draft RFC for the protocol.
@stale[bot] commented on GitHub (Mar 9, 2019):
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs during the next 2 weeks. Thank you for your contributions.
@stale[bot] commented on GitHub (Mar 23, 2019):
This issue has been automatically closed because of inactivity. You can re-open it if needed.