Willy,

Am 19.03.2018 um 21:47 schrieb Willy Tarreau:
> Simply because unique-id was created many years before the extensible
> log-format ou know today existed, and that apparently nobody felt the
> need to port it. It may be as simple as creating a few sample fetches,
> I don't know.

This was more of a rhetorical question. It looks like that the unique ID
is handled somewhat differently in the processing (just like the
redirects are). I mentioned it because it possibly is related. Here's an
example configuration:

> global
>       stats timeout 30s
> 
> defaults
>       log     global
>       timeout connect 5s
>       timeout client  50s
>       timeout server  50s
>       unique-id-format %{+X}o\ REQ-%Ts%rt
> 
> frontend fe_http
>       mode http
> 
>       bind :::8080 v4v6
> 
>       unique-id-header X-Req-ID1
>       http-request set-header X-Req-ID2 %ID
>       http-response set-header X-Req-ID %ID
> 
>       use_backend bk_example
> 
> backend bk_example
>       mode http
>       
>       http-request set-header Host postb.in
>       server example postb.in:80

I feel like X-Req-ID1 and X-Req-ID2 should have the same value for the
upstream service, yet X-Req-ID2 is *empty* for `http-request set-header`
and works fine for `http-response set-header`. This does not look like
missing fetches, but rather like the ID being generated *after*
http-request set-header already has been processed.

> I really think it's where we need to invest more thoughts. At least you
> provided two use cases and that shows that a single header directive
> might not be enough, and that HSTS definitely isn't a special case at
> all.
> 

Here's two more that came into my mind:

- Expect-CT
- Public-Key-Pins (a.k.a. HPKP)

Both are deeply related to HSTS due do being TLS security headers. The
latter is being deprecated by the browsers, because of footgun issues,
though. The former is fairly new.

Best regards
Tim Düsterhus

Reply via email to