[RFC] Add HTTP/2 Support to the CLI Server

php.internals

Davey

10 years ago
Hey all, following on from previous discussions[1], I am introducing an RFC for adding HTTP/2 support to the built-in CLI server: https://wiki.php.net/rfc/cli_server_http2 Given that the RFC contains two potential solutions for implementing this, I've decided it is best to open up discussion on this now. While I've authored this RFC, I do not think I am capable of implementing this, but I am going to try. I'm currently trying to get to grips with the existing cli-server, and seeing if I can add H/2 support to the existing SAPI. However, it might be easier to just write a new SAPI from scratch — is there a good SAPI I can use as an example to learn that side of things? Would anyone be interested in taking this on for 7.1? or pairing/mentoring on it? - Davey [1] https://www.mail-archive.com/internals@lists.php.net/msg82237.html

Derick Rethans

10 years ago
On Mon, 18 Jan 2016, Davey Shafik wrote:
> Hey all, > > following on from previous discussions[1], I am introducing an RFC for > adding HTTP/2 support to the built-in CLI server: > > https://wiki.php.net/rfc/cli_server_http2
I think this is good to have, but I have a few comments: php -S 0.0.0.0:8080 –http2 -t ./public/ ./public/index.html The -http2, should really be two --'s. Only short (one letter options) get a single '-'. Similarly: –[no-]http2, should probably be either '--with-http2' and/or '--without-http2', as it depends on an external library.
> Given that the RFC contains two potential solutions for implementing > this, I've decided it is best to open up discussion on this now. > > While I've authored this RFC, I do not think I am capable of > implementing this, but I am going to try. I'm currently trying to get > to grips with the existing cli-server, and seeing if I can add H/2 > support to the existing SAPI. However, it might be easier to just > write a new SAPI from scratch — is there a good SAPI I can use as an > example to learn that side of things? > > Would anyone be interested in taking this on for 7.1? or > pairing/mentoring on it?
I don't think I have the time for that, but feel free to pop into IRC for questions. cheers, Derick

Davey Shafik

10 years ago
On Jan 19, 2016, at 6:21 AM, Derick Rethans <derick@php.net> wrote:
> >> On Mon, 18 Jan 2016, Davey Shafik wrote: >> >> Hey all, >> >> following on from previous discussions[1], I am introducing an RFC for >> adding HTTP/2 support to the built-in CLI server: >> >> https://wiki.php.net/rfc/cli_server_http2 > > I think this is good to have, but I have a few comments: > > php -S 0.0.0.0:8080 –http2 -t ./public/ ./public/index.html > > The -http2, should really be two --'s. Only short (one letter options) > get a single '-'. > > Similarly: –[no-]http2, should probably be either '--with-http2' and/or > '--without-http2', as it depends on an external library.
I think my autocomplete replaced the two dashes with an emdash, oops. Yes, two dashes for both. The --no-http flag is for turning off HTTP/2 when running the cli-server, if it is enabled by default (as I think it should be), allowing you to test things like fallback to HTTP/1.x for HTTP/2 clients. This is not a compile flag, that would definitely be --with or --without.
>> Given that the RFC contains two potential solutions for implementing >> this, I've decided it is best to open up discussion on this now. >> >> While I've authored this RFC, I do not think I am capable of >> implementing this, but I am going to try. I'm currently trying to get >> to grips with the existing cli-server, and seeing if I can add H/2 >> support to the existing SAPI. However, it might be easier to just >> write a new SAPI from scratch — is there a good SAPI I can use as an >> example to learn that side of things? >> >> Would anyone be interested in taking this on for 7.1? or >> pairing/mentoring on it? > > I don't think I have the time for that, but feel free to pop into IRC > for questions.
Thanks! - Davey

Davey

10 years ago
> On Jan 19, 2016, at 6:21 AM, Derick Rethans <derick@php.net> wrote: > >> On Mon, 18 Jan 2016, Davey Shafik wrote: >> >> Hey all, >> >> following on from previous discussions[1], I am introducing an RFC for >> adding HTTP/2 support to the built-in CLI server: >> >> https://wiki.php.net/rfc/cli_server_http2 > > I think this is good to have, but I have a few comments: > > php -S 0.0.0.0:8080 –http2 -t ./public/ ./public/index.html > > The -http2, should really be two --'s. Only short (one letter options) > get a single '-'. > > Similarly: –[no-]http2, should probably be either '--with-http2' and/or > '--without-http2', as it depends on an external library.
I think my autocomplete replaced the two dashes with an emdash, oops. Yes, two dashes for both. The --no-http flag is for turning off HTTP/2 when running the cli-server, if it is enabled by default (as I think it should be), allowing you to test things like fallback to HTTP/1.x for HTTP/2 clients. This is not a compile flag, that would definitely be --with or --without.
>> Given that the RFC contains two potential solutions for implementing >> this, I've decided it is best to open up discussion on this now. >> >> While I've authored this RFC, I do not think I am capable of >> implementing this, but I am going to try. I'm currently trying to get >> to grips with the existing cli-server, and seeing if I can add H/2 >> support to the existing SAPI. However, it might be easier to just >> write a new SAPI from scratch — is there a good SAPI I can use as an >> example to learn that side of things? >> >> Would anyone be interested in taking this on for 7.1? or >> pairing/mentoring on it? > > I don't think I have the time for that, but feel free to pop into IRC > for questions.
Thanks! - Davey - Davey