Safari on MacBook doesn't send http/2 WINDOW_UPDATE frame

Hello Sirs,

I've developed http/2 server, tested with nghttpx, Edge, Mozilla, Chrome web browsers, all seems to be fine.

As I navigate to an url under my http/2 server with Safari browser (ver 17.^) on MacBook 2023, the server is catching WINDOW_UPDATE frame for stream id 0, but unfortunately no WINDOW_UPDATE frames with specific stream Id are sent from Safari

http/2 specification tells, that this frame for stream id 0 isn't yet enough to be allowed to send DATA frames to browser. The concrete stream id is needed in WINDOW_UPDATE frame.

The INITIAL_WINDOW_SIZE setting of the SETTINGS frame from Safari is only 100 bytes. I just send the response SETTINGS frame with ACK flag set true, not trying to increase this setting's value.

Now the server just sends first DATA frames for each stream, and Safari fetches them, renders and shows in browser, however the streams' window sizes are exhausted. But I'm not risking pushing all DATA frames of larger files, so that other browsers then don't RST these streams.

Any infos for me please about specific Safari http/2 frames flow?

I tested my http/2 server locally on MacBook , navigated to local url in Safari, and the web page could be loaded.

As I reach the same build of server instance on remote host at my provider, I see in logs the incoming packets from Safari, and can see that the server sends response HEARES and DATA frames back, but Safari browser is hanging and waiting for incoming bytes and nothing happens, just doesn't fetch any byte from remote host.

response HEADERS frame, sorry for typo))

Safari on MacBook doesn't send http/2 WINDOW_UPDATE frame
 
 
Q