[PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-06-26 Thread Piotr Sikora
# HG changeset patch # User Piotr Sikora # Date 1466735480 25200 # Thu Jun 23 19:31:20 2016 -0700 # Node ID a96187a9806536ab2a8bf3fa7f7b659cf5d3ff13 # Parent 6f69e3c0f780e29bca752fc1f938f4a459a1ec59 HTTP: add support for trailers in HTTP responses. Example: ngx_table_elt_t *h; h =

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-06-27 Thread Piotr Sikora
Hey Shuxin, > I took some time to read your code, I believe I fully understand your > code at this moment. > My implementation is slightly differently from yours, and we have different > use-cases. Thanks! > Here is my $0.02 value of comment to your code (cosmetic wise): > - the v

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-06-27 Thread shuxinyang
It's "trailer support" for the web serving part of NGINX, just not proxying. - the "get" in "ngx_http_chunked_get_trailers" is sort of misleading. The "get" here actually means "generate". I thought you are looking for a existing buffer. That function name got changed a few time

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-06-27 Thread Piotr Sikora
Hey Shuxin, > How do you manage to tackle this scenario without changing your existing > code: > > backend server responses with trailer "lol = 123", and you define the > same trailer, > "lol = $haha" in *.conf. You have two options as to how to combine them: > either override the > one from o

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-06-30 Thread Piotr Sikora
Hey Maxim, > Would adding r->trailers_emit (or r->expect_trailers, whichever you > prefer) make you happy? Ping. Best regards, Piotr Sikora ___ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-07-04 Thread Maxim Dounin
Hello! On Thu, Jun 30, 2016 at 12:56:50PM -0700, Piotr Sikora wrote: > Hey Maxim, > > > Would adding r->trailers_emit (or r->expect_trailers, whichever you > > prefer) make you happy? > > Ping. I'm not convinced this feature is needed at all. It looks more like a Google-specific experiment,

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-07-06 Thread Piotr Sikora
Hey Maxim, > I'm not convinced this feature is needed at all. It looks more > like a Google-specific experiment, and this is not something I > would like to see in nginx code. Wait, what? Are you talking about trailers as defined in RFC7230 (and previously in RFC2616 from 1999, when Google barel

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-07-07 Thread Maxim Dounin
Hello! On Wed, Jul 06, 2016 at 02:02:19PM -0700, Piotr Sikora wrote: > Hey Maxim, > > > I'm not convinced this feature is needed at all. It looks more > > like a Google-specific experiment, and this is not something I > > would like to see in nginx code. > > Wait, what? Are you talking about t

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-07-07 Thread Piotr Sikora
Hey Maxim, > And these 3 people are the only people asking/commenting about > trailers during the whole nginx history, AFAIR. And none of them > provided any real-world use for trailers. That's true... Wesley, Shuxin, would you mind sharing your use cases? > On the other hand, your > motivation

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-07-07 Thread Maxim Dounin
Hello! On Thu, Jul 07, 2016 at 01:08:46PM -0700, Piotr Sikora wrote: [...] > Furthermore, like you previously noted, official gRPC clients & server > are using HTTP/2, so there is absolutely no Google-agenda in pushing > HTTP/1.1 trailers, other than me wanting to add proper support for > traile

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-07-13 Thread Piotr Sikora
Hey Maxim, > So the question remains: are there any real-world use cases? May > be someone will be able to provide some. It's a chicken-and-egg problem. It's hard to use a feature that's not supported by one of the most popular web servers. > Without real-world use cases I don't think this shou

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-07-13 Thread Maxim Dounin
Hello! On Wed, Jul 13, 2016 at 10:25:57AM -0700, Piotr Sikora wrote: > > So the question remains: are there any real-world use cases? May > > be someone will be able to provide some. > > It's a chicken-and-egg problem. It's hard to use a feature that's not > supported by one of the most popular

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-07-13 Thread Piotr Sikora
Hey Maxim, > I'm talking about trailers in general (though it's more about > requests than responses). Normal request (and response) > processing in nginx assumes that headers are processed before the > body, and adding trailers (which are headers "to be added later") > to the picture are likely

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-07-20 Thread Alexey Ivanov
Speaking of trailers: we had couple of use cases for HTTP trailers, most of them were around streaming data to user. For example, when webpage is generated we send headers and part of the body(usually up to ``) almost immediately, but then we start querying all the micro services for the conten

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-07-20 Thread Maxim Dounin
Hello! On Wed, Jul 20, 2016 at 03:34:46PM -0700, Alexey Ivanov wrote: > Speaking of trailers: we had couple of use cases for HTTP > trailers, most of them were around streaming data to user. > > For example, when webpage is generated we send headers and part > of the body(usually up to ``) alm

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-07-20 Thread Alexey Ivanov
> On Jul 20, 2016, at 6:23 PM, Maxim Dounin wrote: > > Hello! > > On Wed, Jul 20, 2016 at 03:34:46PM -0700, Alexey Ivanov wrote: > >> Speaking of trailers: we had couple of use cases for HTTP >> trailers, most of them were around streaming data to user. >> >> For example, when webpage is gene

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-07-21 Thread Maxim Dounin
Hello! On Wed, Jul 20, 2016 at 06:33:11PM -0700, Alexey Ivanov wrote: > > > On Jul 20, 2016, at 6:23 PM, Maxim Dounin wrote: > > > > Hello! > > > > On Wed, Jul 20, 2016 at 03:34:46PM -0700, Alexey Ivanov wrote: > > > >> Speaking of trailers: we had couple of use cases for HTTP > >> trailers,

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-06-27 Thread Maxim Dounin
Hello! On Sun, Jun 26, 2016 at 04:13:15PM -0700, Piotr Sikora wrote: > # HG changeset patch > # User Piotr Sikora > # Date 1466735480 25200 > # Thu Jun 23 19:31:20 2016 -0700 > # Node ID a96187a9806536ab2a8bf3fa7f7b659cf5d3ff13 > # Parent 6f69e3c0f780e29bca752fc1f938f4a459a1ec59 > HTTP: ad

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-06-27 Thread Piotr Sikora
Hey Maxim, > What's the goal? Any real-world use for this? For us? gRPC, which uses HTTP/2 and/or HTTP/1.1 with trailers as a transport protocol. > As far as I understand the patch, this will cause chunked encoding > to be used for all responses to a client which supports trailers. > This certa

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-06-27 Thread shuxinyang
Hi, Piotr: I'm wondering why not just change the ngx_http_chunked_filter_module.c? or add a module inserted right after the chunked-filter-module? Shuxin On 06/27/2016 07:37 AM, Piotr Sikora wrote: Hey Maxim, What's the goal? Any real-world use for this? On 06/27/2016 06:45 AM, Maxim

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-06-27 Thread Piotr Sikora
Hey Shuxin, >I'm wondering why not just change the ngx_http_chunked_filter_module.c? > or add a module inserted right after the chunked-filter-module? Hmm...? I'm confused by your comment. This patch modifies 3 files: - parsing of "TE" header is done in ngx_http_request.c, - HTTP/1.1 trailer

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-06-27 Thread Maxim Dounin
Hello! On Mon, Jun 27, 2016 at 07:37:31AM -0700, Piotr Sikora wrote: > > What's the goal? Any real-world use for this? > > For us? gRPC, which uses HTTP/2 and/or HTTP/1.1 with trailers as a > transport protocol. Last time I checked gRPC wasn't able to talk HTTP/1.1, and therefore wasn't able

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-06-27 Thread shuxinyang
Hi, Piotr and Maxim: > to Maxim's question about "does trailer has real-world use" first. At least we do, some info is available only after the entire body is sent. Trailer is a viable and convenient solution for that matter, albeit it is not the only solution for it. I cannot "leak" more inf

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-06-27 Thread Piotr Sikora
Hey Maxim, > Last time I checked gRPC wasn't able to talk HTTP/1.1, and > therefore wasn't able to work with nginx at all. So no real-world > use for now, right? Official clients & servers support only HTTP/2, but gRPC protocol can be layered on top of HTTP/1.1 with trailers, so it's up to the i

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-06-27 Thread Piotr Sikora
Hey Shuxin, > As far as I can understand, your change is just to add trailer headers > (not including the part that paring incoming > trailer header from upstream, or merge the incoming trailer and generated > trailer). If that is correct, you just need > to add "trailer: hdr1,hdr2... hdrn" to

Re: [PATCH 1 of 2] HTTP: add support for trailers in HTTP responses

2016-06-27 Thread shuxinyang
Hi, Piotr: I took some time to read your code, I believe I fully understand your code at this moment. My implementation is slightly differently from yours, and we have different use-cases. Here is my $0.02 value of comment to your code (cosmetic wise): - the verb "support" in "