[PATCH] Normalizing the Host: header
Adrian Otto
aotto at mosso.com
Sat Mar 12 00:05:45 CET 2011
Some advice in-line:
On Mar 11, 2011, at 2:39 PM, Poul-Henning Kamp wrote:
> In message <4D7A7A4F.3030109 at schokola.de>, Nils Goroll writes:
>
>> can we come to a conclusion of this discussion?
>
> What bothers me is the "magic" aspect of this kind of stuff.
>
> Where does the magic intuitively begin and end ?
>
> Should we also case fold anything compared to or matched to the
> host header ?
>
> What about host part of Location headers ?
>
> Where does the magic end ?
In this case, I offer the advice that all host related headers should be case folded, because DNS naming is case insensitive. So essentially anywhere Varnish handles a hostname for any comparison, it should follow the same rules.
> I very much prefer to make these things explict and consistent,
> so that people see them happen and know where they happen.
>
> ... but I also don't want to clutter up default.vcl with "mandatory stuff".
That's why it's a good idea to build this in as default behavior. If it costs any meaningful performance penalty to do it, then consider using a run-time configuration variable.
>> - case-folding once in-place does not use any additional session space
>> as case-folding in VCL would
>
> In my mind, this is probably the best argument for doing it,
> I am just not sure it convinces me.
>
> Next issue which comes right behind is: Should we also
> normalize URL's by reducing pointless %xx and other escapes ?
Yes, escapes should also be reduced to the lowest common denominator.
> Are there any other kinds of request normalization we should do ?
>
> And should we also normalize backend responses ?
Yes, in the same way, as those may be used for comparisons also.
Adrian
More information about the varnish-dev
mailing list