Comments (9)
Not planned yet. There is nothing stopping an application from returning a 103 though. How would you envision the use case?
from agoo.
The use-case I envision is a Rack application that plans to include some CSS and JS via <style>
and <script>
(normal stuff) using early hints to tell the browser to start downloading those files before the full response has been rendered. As I understand it, that's the primary use-case for early hints.
I can't find anything official in the Rack repository, but there's some support across Ruby projects that I've linked to below, as well as the RFC. The Puma PR may be the most interesting.
- Here's the RFC.
- Here's the merged PR to Puma.
- Here's the corresponding Rails PR adding support to Rails.
- I guess Passenger is still thinking about it.
- Falcon evidently supports it, though I've never used it.
I think the biggest difference between real early hints and just returning a 103 is that a single request would produce 2 responses: one 103 with early hints Link
headers and the other with the full response (e.g. from a Rack application).
from agoo.
Okay, its a feature that might go into the rack spec in the future. Lets leave this issue open for now and time permitting and a bit more research into rack plans and then it will get done.
from agoo.
Sounds good, thank you!
from agoo.
We are currently using nginx with the http2_push_preload directive. This will turn Link headers into push promises. This is a much simpler and more compatible mechanism than sending a 103 IMO
http://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_push_preload
from agoo.
@ianks that's really cool, thanks for the info! I didn't even know Nginx could do that to be honest. I don't have direct access to the reverse proxy's configuration file so I can't do that myself, but it's definitely good to know.
from agoo.
Highly suggest it. Much easier to setup than h2o
from agoo.
Please try the early_hints
branch. There is a unit test for the new feature.
from agoo.
Merged into develop branch.
from agoo.
Related Issues (20)
- Fragment usage HOT 17
- CORS issues HOT 8
- Agoo dumps core on malformed SDL HOT 5
- fails to launch in clustered mode HOT 17
- Agoo Fragment Cycle Security Vulnerability HOT 2
- Disabling introspection for GraphQL HOT 12
- Changes on args or req does not get fowarded to the other calls HOT 9
- Static asset with space in filename HOT 4
- gem install agoo fails on MacOS Ventura 13.2.1 HOT 9
- Static .txt files are not served with utf-8 encoding HOT 8
- Protect against smuggling attacks HOT 3
- Agoo & Sidekiq::Web HOT 9
- Can you tell me how I can use agoo with rack middleware? HOT 13
- Case insensitive Content-Type header HOT 4
- GraphQL in rails HOT 22
- How to render a error message using GraphQL HOT 6
- How to create a dynamic GraphQL schema HOT 6
- Configuring worker count and thread count when used with Rails HOT 5
- Port cleanup on shutdown? HOT 3
- REMOTE_ADDR not set on ENV HOT 13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from agoo.