Kind of an anti-pattern here, this compiles into another StringBuffer allocation.  Instead:

```
canonicalizedHeadersBuffer.append(key.toLowerCase())
    .append(':').append(header.getValue()).append('\n');
```