Skip to content

do not send a message body in responses to HEAD requests - #1270

Merged
gittiver merged 1 commit into
CrowCpp:masterfrom
nishat-06:head-response-no-body
Oct 12, 2026
Merged

gittiver merged 1 commit into
CrowCpp:masterfrom
nishat-06:head-response-no-body

Conversation

@nishat-06

Copy link
Copy Markdown
Contributor

Responses to HEAD requests include a message body on the wire: do_write_static streams the static file content after the header block even though skip_body already reduced Content-Length to 0, and write_header_into_buffer appends the default error body to HEAD responses with a 4xx/5xx code and an empty body. Any client or proxy treats a HEAD response as ending at the header block (RFC 9112 6.3), so on a reused keep-alive connection the stray bytes are read as the start of the next response and desynchronize it. Skip the file stream and the default error body when skip_body is set, keep the stat-derived Content-Length for static HEAD responses as the equivalent GET would send it, and add a regression test covering both cases.

@gittiver
gittiver merged commit ea72ff1 into CrowCpp:master Oct 12, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants