curl-users
How to use HTTP/2's pushing features with curl?
Date: Sun, 14 Dec 2014 17:45:04 +0100
I have been looking into ways to use HTTP/2's pushing features, in order
to reduce the number of issued GET requests and the average perceived
delay in specific client-server implementations. The existing client
heavily relies on the use of curl to issue GET requests, and I need to
be able to reuse the current implementation. Recent versions of curl
provide support for HTTP/2, relying on the underlying nghttp2 module.
Using the existing nghttp2 server:
nghttpd -d /var/www/html/ 3000 local.key local.crt
both nghttp and curl can be used to get an example text file's content:
nghttp https://localhost:3000/text.txt
This is some sample text.
curl https://localhost:3000/text.txt -k --http2
This is some sample text.
Using nghttp2's pushing feature however, where another text file is
pushed along:
nghttpd -d /var/www/html/ -p/text.txt=/text2.txt 3000 local.key
local.crt
curl seems not capable of dealing with the pushed resource:
nghttp https://localhost:3000/bbb/text.txt
This is some sample text.
This is some sample text as well.
curl https://localhost:3000/text.txt -k --http2 -v
...
* nghttp2_session_mem_recv() returns 268
* before_frame_send() was called
* on_frame_send() was called
* on_stream_close() was called, error_code = 1
* before_frame_send() was called
* on_frame_send() was called
* on_stream_close() was called, error_code = 1
* Connection #0 to host localhost left intact
Indeed, at server side, two resets are received for the two opened streams:
[id=1] [331.593] recv RST_STREAM frame <length=4, flags=0x00,
stream_id=1>
(error_code=PROTOCOL_ERROR(0x01))
[id=1] [331.594] recv RST_STREAM frame <length=4, flags=0x00,
stream_id=2>
(error_code=PROTOCOL_ERROR(0x01))
[id=1] [331.594] closed
Is there a way to use curl with the HTTP/2 pushing features?
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-users
FAQ: http://curl.haxx.se/docs/faq.html
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2014-12-14