ProxymanApp / ProxymanApp/Proxyman

`Transfer-Encoding: chunked` is added on 304 Not Modified

Open
#2,415 4 comments 0 reactions 1 assignee View on GitHub

@NghiaTranUIT is already working on this.

Since Jul 14, 2025.

✅ Done bug
Dominant language
No language data
Stars
7k
Forks
237
PR merge metrics
No merged PRs in 30d

Description

Description

When I send a request through Proxyman that gets back 304 Not Modified, Proxyman adds Transfer-Encoding: chunked to it. This causes my HTTP client to crash. Eventhough this is allowed (https://datatracker.ietf.org/doc/html/rfc9112#section-6.1-9), I don't think that Proxyman should do this, I would expect to get back the untampered response.

Steps to Reproduce

curl --header Accept: --compressed --header "Accept-Language: en-gb" --header "Connection: Keep-Alive" --cookie "XXX" --header "If-None-Match: W/"0c9a7c544b1ad6978997a51e542711f5d@2025-07-14T16:18:51.688479978+02:00"" --header "USE-CASE: JOURNEY_COMPANION" --user-agent "XXX" --header "X-API-AUTHORIZATION: XXX" --header "X-API-DATE: 2025-07-14" --header "X-APP-TOKEN: XXX" https://int-latest.vnext-nonprod.app.sbb.ch/api/timetable/v1/trip/XXX/journey-companion -k --proxy localhost:9090 -iv --raw

it produces:

* Request completely sent off
* schannel: remote party requests renegotiation
* schannel: renegotiating SSL/TLS connection
* schannel: SSL/TLS connection renegotiated
* schannel: server close notification received (close_notify)
< HTTP/1.1 304 Not Modified
HTTP/1.1 304 Not Modified
< Date: Mon, 14 Jul 2025 13:28:06 GMT
Date: Mon, 14 Jul 2025 13:28:06 GMT
< Connection: close
Connection: close
< etag: W/"0c9a7c544b1ad6978997a51e542711f5d@2025-07-14T16:18:51.688479978+02:00"
etag: W/"0c9a7c544b1ad6978997a51e542711f5d@2025-07-14T16:18:51.688479978+02:00"
< Cache-Control: max-age=60
Cache-Control: max-age=60
< x-content-type-options: nosniff
x-content-type-options: nosniff
< strict-transport-security: max-age=16070400; includeSubDomains
strict-transport-security: max-age=16070400; includeSubDomains
< x-frame-options: DENY
x-frame-options: DENY
< x-xss-protection: 0
x-xss-protection: 0
< referrer-policy: no-referrer
referrer-policy: no-referrer
< cf-cache-status: DYNAMIC
cf-cache-status: DYNAMIC
< Server: cloudflare
Server: cloudflare
< CF-RAY: 95f15c7d6a25bf94-WAW
CF-RAY: 95f15c7d6a25bf94-WAW
< Transfer-Encoding: chunked
Transfer-Encoding: chunked
<

* shutting down connection #0

while Proxyman shows:

HTTP/1.1 304 Not Modified
Date: Mon, 14 Jul 2025 13:28:06 GMT
Content-Length: 0
Connection: keep-alive
etag: W/"0c9a7c544b1ad6978997a51e542711f5d@2025-07-14T16:18:51.688479978+02:00"
Cache-Control: max-age=60
x-content-type-options: nosniff
strict-transport-security: max-age=16070400; includeSubDomains
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
cf-cache-status: DYNAMIC
Server: cloudflare
CF-RAY: 95f15c7d6a25bf94-WAW

Current Behavior

Note that Proxyman does not show Transfer-Encoding: chunked but in the curl log it is visible that the header must have been added.

Expected Behavior

No Transfer-Encoding: chunked header should be added

Environment

  • App version: Proxyman Version 2.26.0 (22600) | Windows (Build 10.0.26100)
  • macOS version: Windows 11

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.