On Sep 29, 2015, at 12:25 PM, Francis Daly <fran...@daoine.org> wrote: > On Tue, Sep 29, 2015 at 01:06:50AM +0300, Aapo Talvensaari wrote: >> On 29 September 2015 at 00:01, Valentin V. Bartenev <vb...@nginx.com> wrote: >>>> On Monday 28 September 2015 20:59:23 Aapo Talvensaari wrote: >>>>> >>>>> <?php >>>>> header(':', true, 403); >>>>> die(json_encode(array( ... ))); >>>> >>>> What does ":" mean in the header() function? >>>> If it returns ":" as a header, then it's the cause of the error. >>> >>> It just sets the status code. It is normal PHP 5.3 code [1]. I might need >> to compile nginx by hand to get more debug info. > > For what it's worth: > > when I test with a php 5.1.6 and a php 5.3.3, > > header(':', true, 403); > > sets the status code and adds a header called :. > > So the end of the http header looks like > > X-Powered-By: PHP/5.3.3 > :: > > with the debug log showing > > http fastcgi header: "X-Powered-By: PHP/5.3.3" > http fastcgi parser: 0 > http fastcgi header: ":: "
So, the header field name output as generated with php (and previously guessed by Valentin), is invalid as per 7230, which is in turn referenced in 7540. : field-name = token : token = 1*tchar : tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / : "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA Not much to discuss. -- Sergey Kandaurov _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx