Summary: | PerformanceNavigationTiming decodedBodySize larger than encodedBodySize if resource is not encoded | ||
---|---|---|---|
Product: | WebKit | Reporter: | Gernot Raudner <gernot.raudner> |
Component: | Page Loading | Assignee: | Nobody <webkit-unassigned> |
Status: | REOPENED --- | ||
Severity: | Normal | CC: | achristensen, beidson, cdumez |
Priority: | P2 | ||
Version: | Safari 17 | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Description
Gernot Raudner
2024-05-07 04:41:54 PDT
That 9 byte difference seems to be from the HTTP/2 framing overhead: https://datatracker.ietf.org/doc/html/rfc9113#section-4.1 This is arguably correct, but now you know what that's from. Maybe my example was bad, or this is a separate issue, not sure... I also have a webserver that doesn't support HTTP/2, and the difference is, interestingly enough, 18 bytes (35910 compressed versus 35892 decompressed). It doesn't really solve my issue either, because I compare the data I generate on the server with the data I receive on the client, and even though the body matches, as well as the encodedBodySize (of course, since it's not encoded), but the decodedBodySize is invalid. I don't really see how this is arguably correct in the context of the Performance API. It might be correct in the context of HTTP frames, but this shouldn't be linked to the Performance API, should it? Could you send me a link to that server? Feel free to email it to me by clicking my name if you don't want to post it on this public bugzilla. sorry for not replying for so long. i built a little reproducer: https://github.com/DerGernTod/safari-decoded-body-size/tree/main the server is serving http/1.1 so the http/2 framing overhead you mentioned doesn't apply. also, wouldn't the "bodySize" only refer to the body, and not to the framing? |