Comments (4)
I agree but I want to support HTTP/2 by default. Let me think about it. Maybe you are right.
from falcon.
The ordinary production use-case is to have a frontend proxy such as Nginx or ELB and communicates between Rails through HTTP protocol for cost saving since both sides are in an intranet so it might not necessary to listen on HTTP/2 with HTTPS by default.
from falcon.
So, I thought about this a bit more.
(1) Basically falcon serve
is for development purposes, and IMHO, should be HTTP/2 + TLS by default. Because it's trying to implement the latest specifications. Falcon actually supports both HTTP/1 and HTTP/2 depending on ALPN. So it supports WebSockets too, via HTTP/1 in this mode.
The critical point is how do we support production and what are the expectations?
As you say, there are two main use cases.
(2) When Falcon is used as an application server behind an existing HTTP server, the general expectation would be HTTP/1 with no TLS.
(3) When Falcon is used as a front end server, the general expectation would be to TLS + ALPN to support both HTTP/1 and HTTP/2.
The current release of falcon doesn't officially support the model required for (2) and (3) yet. There are some prototype code to do it, but the problem is the process model so support for "reload" isn't quite there yet. So, it's a work in progress. Of course, you can still use Nginx to proxy to falcon running with (1) but that's not a good long term solution.
from falcon.
I think binding to https
by default is what we want to do with falcon, so we can support HTTP/2 out of the box.
If you use falcon virtual
, it binds to both http and https and redirects to https. My plan is to support HSTS by default.
from falcon.
Related Issues (20)
- JRuby test helper fails with NoMethodError: undefined method `memsize_of' for ObjectSpace:Module HOT 2
- Avoid using require_relative for bin/falcon HOT 1
- Gracefully restart running application HOT 8
- Provide an example falcon.rb setup for Rails (migrating from Puma) HOT 3
- Run Falcon on Windows with graceful degradation of forking, etc. HOT 7
- Super slowly Time.parse HOT 29
- falcon fails to start with "unsupported signal `SIGHUP'" HOT 1
- warning: 'Rack::Handler is deprecated and replaced by Rackup::Handler' on Rack 3 HOT 1
- Failed to upgrade to WebSocket HOT 19
- upstream hijacking, streamed uploads HOT 2
- Expect continue HOT 10
- crashes on launch with ruby 3.2 HOT 8
- The problem with io-event update to 1.3.0 HOT 7
- Limiting incoming requests queue HOT 3
- Sinatra - cannot load such file -- sinatra/base HOT 2
- Concurrent Database Transaction worries HOT 2
- Getting a Errno::EPIPE: Broken pipe warning HOT 11
- Socket::ResolutionError: getnameinfo: Temporary failure in name resolution HOT 10
- Should the 'virtual' command be changing the Console.logger log level? HOT 4
- Plugin `:tmp_restart` HOT 1
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 falcon.