We tell the client that the content has not changed. If we
send a Content-Length header RFC2616 describes that the client
MUST use that new value:
"If a cache uses a received 304 response to update a cache entry,
the cache MUST update the entry to reflect any new field values
given in the response."
Therefor we should not send a Content-Length header
Fixes: #15119
Signed-off-by: Wido den Hollander <wido@42on.com>
/*
* Status 204 should not include a content-length header
* RFC7230 says so
+ *
+ * Same goes for status 304: Not Modified
+ *
+ * 'If a cache uses a received 304 response to update a cache entry,'
+ * 'the cache MUST update the entry to reflect any new field values'
+ * 'given in the response.'
+ *
*/
- if (status_num == 204) {
+ if (status_num == 204 || status_num == 304) {
has_content_length = true;
} else if (0 && data.length() == 0) {
has_content_length = true;