Coder Social home page Coder Social logo

Comments (4)

ioquatix avatar ioquatix commented on May 22, 2024

I agree but I want to support HTTP/2 by default. Let me think about it. Maybe you are right.

from falcon.

ryudoawaru avatar ryudoawaru commented on May 22, 2024

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.

ioquatix avatar ioquatix commented on May 22, 2024

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.

ioquatix avatar ioquatix commented on May 22, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.