Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] Server push with standalone Jetty

I managed to resolve the error following the advice from one of Joakim's earlier reply.

https://dev.eclipse.org/mhonarc/lists/jetty-dev/msg02473.html

Thank You :)


However, I observed another error, that the stream gets closed in between and not all the contents gets pushed.

I used nghttp2 as my http2 client and loaded up my index.html page.

Here is the output:

intel@Intel:~/jetty-distribution-9.3.6.v20151106$ nghttp -nvas https://localhost:8443/Album/index.html
[  0.001] Connected
The negotiated protocol: h2
[  0.028] send SETTINGS frame <length=12, flags=0x00, stream_id=0>
          (niv=2)
          [SETTINGS_MAX_CONCURRENT_STREAMS(0x03):100]
          [SETTINGS_INITIAL_WINDOW_SIZE(0x04):65535]
[  0.028] send PRIORITY frame <length=5, flags=0x00, stream_id=3>
          (dep_stream_id=0, weight=201, exclusive=0)
[  0.028] send PRIORITY frame <length=5, flags=0x00, stream_id=5>
          (dep_stream_id=0, weight=101, exclusive=0)
[  0.028] send PRIORITY frame <length=5, flags=0x00, stream_id=7>
          (dep_stream_id=0, weight=1, exclusive=0)
[  0.028] send PRIORITY frame <length=5, flags=0x00, stream_id=9>
          (dep_stream_id=7, weight=1, exclusive=0)
[  0.028] send PRIORITY frame <length=5, flags=0x00, stream_id=11>
          (dep_stream_id=3, weight=1, exclusive=0)
[  0.028] send HEADERS frame <length=56, flags=0x25, stream_id=13>
          ; END_STREAM | END_HEADERS | PRIORITY
          (padlen=0, dep_stream_id=11, weight=16, exclusive=0)
          ; Open new stream
          :method: GET
          :path: /my-gallery/index.html
          :scheme: https
          :authority: localhost:8443
          accept: */*
          accept-encoding: gzip, deflate
          user-agent: nghttp2/1.6.0
[  0.031] recv SETTINGS frame <length=18, flags=0x00, stream_id=0>
          (niv=3)
          [SETTINGS_HEADER_TABLE_SIZE(0x01):4096]
          [SETTINGS_MAX_CONCURRENT_STREAMS(0x03):1024]
          [SETTINGS_INITIAL_WINDOW_SIZE(0x04):65535]
[  0.031] send SETTINGS frame <length=0, flags=0x01, stream_id=0>
          ; ACK
          (niv=0)
[  0.031] recv SETTINGS frame <length=0, flags=0x01, stream_id=0>
          ; ACK
          (niv=0)
[  0.034] recv (stream_id=13) :scheme: https
[  0.034] recv (stream_id=13) :method: GET
[  0.034] recv (stream_id=13) :authority: localhost:8443
[  0.034] recv (stream_id=13) :path: /my-gallery/throbber.gif
[  0.034] recv (stream_id=13) accept: */*
[  0.034] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.034] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.034] recv (stream_id=13) host: localhost:8443
[  0.034] recv PUSH_PROMISE frame <length=68, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=2)
[  0.038] recv (stream_id=13) :scheme: https
[  0.038] recv (stream_id=13) :method: GET
[  0.038] recv (stream_id=13) :authority: localhost:8443
[  0.038] recv (stream_id=13) :path: /my-gallery/data.json
[  0.038] recv (stream_id=13) accept: */*
[  0.038] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.038] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.038] recv (stream_id=13) host: localhost:8443
[  0.038] recv PUSH_PROMISE frame <length=29, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=4)
[  0.038] recv (stream_id=13) :scheme: https
[  0.038] recv (stream_id=13) :method: GET
[  0.039] recv (stream_id=13) :authority: localhost:8443
[  0.039] recv (stream_id=13) :path: /my-gallery/cut-top.png
[  0.039] recv (stream_id=13) accept: */*
[  0.039] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.039] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.039] recv (stream_id=13) host: localhost:8443
[  0.039] recv PUSH_PROMISE frame <length=30, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=6)
[  0.040] recv (stream_id=2) :status: 200
[  0.040] recv (stream_id=2) last-modified: Sun, 20 Sep 2015 00:13:38 GMT
[  0.040] recv (stream_id=2) content-length: 1657
[  0.040] recv (stream_id=2) content-type: image/gif
[  0.040] recv (stream_id=2) accept-ranges: bytes
[  0.040] recv HEADERS frame <length=47, flags=0x04, stream_id=2>
          ; END_HEADERS
          (padlen=0)
          ; First push response header
[  0.040] recv (stream_id=4) :status: 200
[  0.040] recv (stream_id=4) last-modified: Sun, 20 Sep 2015 00:21:22 GMT
[  0.040] recv (stream_id=4) content-length: 20696
[  0.040] recv (stream_id=4) content-type: application/json
[  0.040] recv (stream_id=4) accept-ranges: bytes
[  0.040] recv HEADERS frame <length=47, flags=0x04, stream_id=4>
          ; END_HEADERS
          (padlen=0)
          ; First push response header
[  0.040] recv DATA frame <length=16384, flags=0x00, stream_id=4>
[  0.040] recv DATA frame <length=4312, flags=0x01, stream_id=4>
          ; END_STREAM
[  0.040] recv DATA frame <length=1657, flags=0x01, stream_id=2>
          ; END_STREAM
[  0.042] recv (stream_id=6) :status: 200
[  0.042] recv (stream_id=6) last-modified: Sun, 20 Sep 2015 00:13:38 GMT
[  0.042] recv (stream_id=6) content-length: 205
[  0.042] recv (stream_id=6) content-type: image/png
[  0.042] recv (stream_id=6) accept-ranges: bytes
[  0.042] recv HEADERS frame <length=41, flags=0x04, stream_id=6>
          ; END_HEADERS
          (padlen=0)
          ; First push response header
[  0.042] recv DATA frame <length=205, flags=0x01, stream_id=6>
          ; END_STREAM
[  0.042] recv (stream_id=13) :scheme: https
[  0.042] recv (stream_id=13) :method: GET
[  0.042] recv (stream_id=13) :authority: localhost:8443
[  0.042] recv (stream_id=13) :path: /my-gallery/imgs/ad.jpg
[  0.042] recv (stream_id=13) accept: */*
[  0.042] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.042] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.042] recv (stream_id=13) host: localhost:8443
[  0.042] recv PUSH_PROMISE frame <length=30, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=8)
[  0.043] recv (stream_id=13) :scheme: https
[  0.043] recv (stream_id=13) :method: GET
[  0.043] recv (stream_id=13) :authority: localhost:8443
[  0.043] recv (stream_id=13) :path: /my-gallery/cut-mov.png
[  0.043] recv (stream_id=13) accept: */*
[  0.043] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.043] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.043] recv (stream_id=13) host: localhost:8443
[  0.043] recv PUSH_PROMISE frame <length=30, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=10)
[  0.044] recv (stream_id=8) :status: 200
[  0.044] recv (stream_id=8) last-modified: Sun, 20 Sep 2015 00:13:42 GMT
[  0.044] recv (stream_id=8) content-length: 119474
[  0.044] recv (stream_id=8) content-type: image/jpeg
[  0.044] recv (stream_id=8) accept-ranges: bytes
[  0.044] recv HEADERS frame <length=45, flags=0x04, stream_id=8>
          ; END_HEADERS
          (padlen=0)
          ; First push response header
[  0.062] recv DATA frame <length=16384, flags=0x00, stream_id=8>
[  0.065] recv DATA frame <length=16384, flags=0x00, stream_id=8>
[  0.066] recv DATA frame <length=10209, flags=0x00, stream_id=8>
[  0.066] recv (stream_id=10) :status: 200
[  0.066] recv (stream_id=10) last-modified: Sun, 20 Sep 2015 00:13:38 GMT
[  0.066] recv (stream_id=10) content-length: 197
[  0.066] recv (stream_id=10) content-type: image/png
[  0.066] recv (stream_id=10) accept-ranges: bytes
[  0.066] recv HEADERS frame <length=34, flags=0x04, stream_id=10>
          ; END_HEADERS
          (padlen=0)
          ; First push response header
[  0.066] recv (stream_id=13) :scheme: https
[  0.066] recv (stream_id=13) :method: GET
[  0.066] recv (stream_id=13) :authority: localhost:8443
[  0.066] recv (stream_id=13) :path: /my-gallery/download.png
[  0.066] recv (stream_id=13) accept: */*
[  0.066] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.066] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.066] recv (stream_id=13) host: localhost:8443
[  0.066] recv PUSH_PROMISE frame <length=31, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=12)
[  0.066] recv (stream_id=12) :status: 200
[  0.066] recv (stream_id=12) last-modified: Sun, 20 Sep 2015 00:13:38 GMT
[  0.066] recv (stream_id=12) content-length: 422
[  0.066] recv (stream_id=12) content-type: image/png
[  0.066] recv (stream_id=12) accept-ranges: bytes
[  0.066] recv HEADERS frame <length=33, flags=0x04, stream_id=12>
          ; END_HEADERS
          (padlen=0)
          ; First push response header
[  0.066] recv (stream_id=13) :scheme: https
[  0.066] recv (stream_id=13) :method: GET
[  0.066] recv (stream_id=13) :authority: localhost:8443
[  0.066] recv (stream_id=13) :path: /my-gallery/right.png
[  0.066] recv (stream_id=13) accept: */*
[  0.066] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.066] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.066] recv (stream_id=13) host: localhost:8443
[  0.066] recv PUSH_PROMISE frame <length=29, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=14)
[  0.066] recv (stream_id=13) :scheme: https
[  0.066] recv (stream_id=13) :method: GET
[  0.066] recv (stream_id=13) :authority: localhost:8443
[  0.066] recv (stream_id=13) :path: /my-gallery/mootools-mooswipe.js
[  0.066] recv (stream_id=13) accept: */*
[  0.066] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.066] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.066] recv (stream_id=13) host: localhost:8443
[  0.066] recv PUSH_PROMISE frame <length=36, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=16)
[  0.066] recv (stream_id=13) :scheme: https
[  0.066] recv (stream_id=13) :method: GET
[  0.066] recv (stream_id=13) :authority: localhost:8443
[  0.066] recv (stream_id=13) :path: /my-gallery/cut-left.png
[  0.066] recv (stream_id=13) accept: */*
[  0.066] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.066] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.066] recv (stream_id=13) host: localhost:8443
[  0.066] recv PUSH_PROMISE frame <length=31, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=18)
[  0.066] recv (stream_id=13) :scheme: https
[  0.066] recv (stream_id=13) :method: GET
[  0.066] recv (stream_id=13) :authority: localhost:8443
[  0.066] recv (stream_id=13) :path: /my-gallery/mootools-core-1.4.js
[  0.066] recv (stream_id=13) accept: */*
[  0.066] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.066] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.066] recv (stream_id=13) host: localhost:8443
[  0.066] recv PUSH_PROMISE frame <length=36, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=20)
[  0.066] recv (stream_id=13) :scheme: https
[  0.066] recv (stream_id=13) :method: GET
[  0.066] recv (stream_id=13) :authority: localhost:8443
[  0.066] recv (stream_id=13) :path: /my-gallery/index.css
[  0.066] recv (stream_id=13) accept: */*
[  0.066] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.066] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.066] recv (stream_id=13) host: localhost:8443
[  0.066] recv PUSH_PROMISE frame <length=29, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=22)
[  0.067] recv (stream_id=13) :scheme: https
[  0.067] recv (stream_id=13) :method: GET
[  0.067] recv (stream_id=13) :authority: localhost:8443
[  0.067] recv (stream_id=13) :path: /my-gallery/index.js
[  0.067] recv (stream_id=13) accept: */*
[  0.067] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.067] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.067] recv (stream_id=13) host: localhost:8443
[  0.067] recv PUSH_PROMISE frame <length=28, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=24)
[  0.067] recv (stream_id=13) :scheme: https
[  0.067] recv (stream_id=13) :method: GET
[  0.067] recv (stream_id=13) :authority: localhost:8443
[  0.067] recv (stream_id=13) :path: /my-gallery/thumbs/ad.jpg
[  0.067] recv (stream_id=13) accept: */*
[  0.067] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.067] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.067] recv (stream_id=13) host: localhost:8443
[  0.067] recv PUSH_PROMISE frame <length=32, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=26)
[  0.067] recv (stream_id=13) :scheme: https
[  0.067] recv (stream_id=13) :method: GET
[  0.067] recv (stream_id=13) :authority: localhost:8443
[  0.067] recv (stream_id=13) :path: /my-gallery/eye.png
[  0.067] recv (stream_id=13) accept: */*
[  0.067] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.067] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.067] recv (stream_id=13) host: localhost:8443
[  0.067] recv PUSH_PROMISE frame <length=28, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=28)
[  0.067] recv (stream_id=13) :scheme: https
[  0.067] recv (stream_id=13) :method: GET
[  0.067] recv (stream_id=13) :authority: localhost:8443
[  0.067] recv (stream_id=13) :path: /my-gallery/blurs/ad.jpg
[  0.067] recv (stream_id=13) accept: */*
[  0.067] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.067] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.067] recv (stream_id=13) host: localhost:8443
[  0.067] recv PUSH_PROMISE frame <length=31, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=30)
[  0.067] recv (stream_id=13) :scheme: https
[  0.067] recv (stream_id=13) :method: GET
[  0.067] recv (stream_id=13) :authority: localhost:8443
[  0.067] recv (stream_id=13) :path: /my-gallery/mootools-more-1.4.js
[  0.067] recv (stream_id=13) accept: */*
[  0.067] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.067] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.067] recv (stream_id=13) host: localhost:8443
[  0.067] recv PUSH_PROMISE frame <length=36, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=32)
[  0.067] recv (stream_id=13) :scheme: https
[  0.067] recv (stream_id=13) :method: GET
[  0.067] recv (stream_id=13) :authority: localhost:8443
[  0.067] recv (stream_id=13) :path: /my-gallery/cut-right.png
[  0.067] recv (stream_id=13) accept: */*
[  0.067] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.067] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.067] recv (stream_id=13) host: localhost:8443
[  0.067] recv PUSH_PROMISE frame <length=32, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=34)
[  0.067] recv (stream_id=13) :scheme: https
[  0.067] recv (stream_id=13) :method: GET
[  0.067] recv (stream_id=13) :authority: localhost:8443
[  0.067] recv (stream_id=13) :path: /my-gallery/mootools-idle.js
[  0.067] recv (stream_id=13) accept: */*
[  0.067] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.067] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.067] recv (stream_id=13) host: localhost:8443
[  0.067] recv PUSH_PROMISE frame <length=33, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=36)
[  0.067] recv (stream_id=13) :scheme: https
[  0.067] recv (stream_id=13) :method: GET
[  0.067] recv (stream_id=13) :authority: localhost:8443
[  0.067] recv (stream_id=13) :path: /my-gallery/back.png
[  0.067] recv (stream_id=13) accept: */*
[  0.067] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.067] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.067] recv (stream_id=13) host: localhost:8443
[  0.067] recv PUSH_PROMISE frame <length=28, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=38)
[  0.067] recv (stream_id=13) :scheme: https
[  0.067] recv (stream_id=13) :method: GET
[  0.067] recv (stream_id=13) :authority: localhost:8443
[  0.067] recv (stream_id=13) :path: /my-gallery/left.png
[  0.067] recv (stream_id=13) accept: */*
[  0.068] recv (stream_id=13) accept-encoding: gzip, deflate
[  0.068] recv (stream_id=13) user-agent: nghttp2/1.6.0
[  0.068] recv (stream_id=13) host: localhost:8443
[  0.068] recv PUSH_PROMISE frame <length=28, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0, promised_stream_id=40)
[  0.068] recv (stream_id=13) :status: 200
[  0.068] recv (stream_id=13) server: Jetty(9.3.6.v20151106)
[  0.068] recv (stream_id=13) last-modified: Fri, 31 Jul 2015 08:11:50 GMT
[  0.068] recv (stream_id=13) content-length: 728
[  0.068] recv (stream_id=13) content-type: text/html
[  0.068] recv (stream_id=13) accept-ranges: bytes
[  0.068] recv HEADERS frame <length=61, flags=0x04, stream_id=13>
          ; END_HEADERS
          (padlen=0)
          ; First response header
[  0.068] recv (stream_id=14) :status: 200
[  0.068] recv (stream_id=14) last-modified: Sun, 20 Sep 2015 00:13:38 GMT
[  0.068] recv (stream_id=14) content-length: 669
[  0.068] recv (stream_id=14) content-type: image/png
[  0.068] recv (stream_id=14) accept-ranges: bytes
[  0.068] recv HEADERS frame <length=34, flags=0x04, stream_id=14>
          ; END_HEADERS
          (padlen=0)
          ; First push response header
[  0.068] recv (stream_id=16) :status: 200
[  0.068] recv (stream_id=16) last-modified: Sun, 20 Sep 2015 00:13:38 GMT
[  0.068] recv (stream_id=16) content-length: 1633
[  0.068] recv (stream_id=16) content-type: application/_javascript_
[  0.068] recv (stream_id=16) accept-ranges: bytes
[  0.068] recv HEADERS frame <length=51, flags=0x04, stream_id=16>
          ; END_HEADERS
          (padlen=0)
          ; First push response header
[  0.068] recv (stream_id=20) :status: 200
[  0.068] recv (stream_id=20) last-modified: Sun, 20 Sep 2015 00:13:38 GMT
[  0.068] recv (stream_id=20) content-length: 90109
[  0.068] recv (stream_id=20) content-type: application/_javascript_
[  0.068] recv (stream_id=20) accept-ranges: bytes
[  0.068] recv HEADERS frame <length=35, flags=0x04, stream_id=20>
          ; END_HEADERS
          (padlen=0)
          ; First push response header
[  0.068] recv (stream_id=18) :status: 200
[  0.068] recv (stream_id=18) last-modified: Sun, 20 Sep 2015 00:13:38 GMT
[  0.068] recv (stream_id=18) content-length: 221
[  0.068] recv (stream_id=18) content-type: image/png
[  0.068] recv (stream_id=18) accept-ranges: bytes
[  0.068] recv HEADERS frame <length=33, flags=0x04, stream_id=18>
          ; END_HEADERS
          (padlen=0)
          ; First push response header
[  0.068] recv (stream_id=24) :status: 200
[  0.068] recv (stream_id=24) last-modified: Sun, 20 Sep 2015 00:13:38 GMT
[  0.068] recv (stream_id=24) content-length: 15537
[  0.068] recv (stream_id=24) content-type: application/_javascript_
[  0.068] recv (stream_id=24) accept-ranges: bytes
[  0.068] recv HEADERS frame <length=35, flags=0x04, stream_id=24>
          ; END_HEADERS
          (padlen=0)
          ; First push response header
[  0.068] recv (stream_id=26) :status: 200
[  0.068] recv (stream_id=26) last-modified: Sun, 20 Sep 2015 00:13:43 GMT
[  0.068] recv (stream_id=26) content-length: 3721
[  0.068] recv (stream_id=26) content-type: image/jpeg
[  0.068] recv (stream_id=26) accept-ranges: bytes
[  0.068] recv HEADERS frame <length=34, flags=0x04, stream_id=26>
          ; END_HEADERS
          (padlen=0)
          ; First push response header
[  0.068] recv (stream_id=28) :status: 200
[  0.068] recv (stream_id=28) last-modified: Sun, 20 Sep 2015 00:13:38 GMT
[  0.068] recv (stream_id=28) content-length: 525
[  0.068] recv (stream_id=28) content-type: image/png
[  0.068] recv (stream_id=28) accept-ranges: bytes
[  0.068] recv HEADERS frame <length=34, flags=0x04, stream_id=28>
          ; END_HEADERS
          (padlen=0)
          ; First push response header
[  0.068] send WINDOW_UPDATE frame <length=4, flags=0x00, stream_id=0>
          (window_size_increment=38879)
[  0.068] send WINDOW_UPDATE frame <length=4, flags=0x00, stream_id=8>
          (window_size_increment=32768)
[  0.076] recv (stream_id=30) :status: 200
[  0.077] recv (stream_id=30) last-modified: Sun, 20 Sep 2015 00:13:44 GMT
[  0.077] recv (stream_id=30) content-length: 13520
[  0.078] recv (stream_id=30) content-type: image/jpeg
[  0.078] recv (stream_id=30) accept-ranges: bytes
[  0.078] recv HEADERS frame <length=35, flags=0x04, stream_id=30>
          ; END_HEADERS
          (padlen=0)
          ; First push response header
[  0.078] recv (stream_id=32) :status: 200
[  0.078] recv (stream_id=32) last-modified: Sun, 20 Sep 2015 00:13:38 GMT
[  0.078] recv (stream_id=32) content-length: 6508
[  0.078] recv (stream_id=32) content-type: application/_javascript_
[  0.078] recv (stream_id=32) accept-ranges: bytes
[  0.078] recv HEADERS frame <length=34, flags=0x04, stream_id=32>
          ; END_HEADERS
          (padlen=0)
          ; First push response header
[  0.078] recv (stream_id=34) :status: 200
[  0.078] recv (stream_id=34) last-modified: Sun, 20 Sep 2015 00:13:38 GMT
[  0.078] recv (stream_id=34) content-length: 193
[  0.078] recv (stream_id=34) content-type: image/png
[  0.079] recv (stream_id=34) accept-ranges: bytes
[  0.079] recv HEADERS frame <length=34, flags=0x04, stream_id=34>
          ; END_HEADERS
          (padlen=0)
          ; First push response header
[  0.079] [INVALID; error=Protocol error] recv PUSH_PROMISE frame <length=29, flags=0x04, stream_id=22>
          ; END_HEADERS
          (padlen=0, promised_stream_id=42)
[  0.079] [INVALID; error=Protocol error] recv HEADERS frame <length=35, flags=0x04, stream_id=42>
          ; END_HEADERS
          (padlen=0)
          ; Open new stream
[  0.079] send GOAWAY frame <length=39, flags=0x00, stream_id=0>
          (last_stream_id=40, error_code=PROTOCOL_ERROR(0x01), opaque_data(31)=[PUSH_PROMISE: invalid stream_id])
Some requests were not processed. total=21, processed=3
***** Statistics *****

Request timing:
  responseEnd: the  time  when  last  byte of  response  was  received
               relative to connectEnd
 requestStart: the time  just before  first byte  of request  was sent
               relative  to connectEnd.   If  '*' is  shown, this  was
               pushed by server.
      process: responseEnd - requestStart
         code: HTTP status code
         size: number  of  bytes  received as  response  body  without
               inflation.
          URI: request URI


sorted by 'complete'

id  responseEnd requestStart  process code size request path
  4    +12.04ms *    +9.54ms   2.51ms  200  20K /my-gallery/data.json
  2    +12.99ms *    +5.52ms   7.47ms  200   1K /my-gallery/throbber.gif
  6    +13.51ms *   +10.29ms   3.23ms  200  205 /my-gallery/cut-top.png


I observed a similar kind of error with h2o server and it has been resolved now.

https://github.com/h2o/h2o/issues/726

May be you can have a look and determine if it is similar to what has been observed with h2o or it is the issue with the client.

Let me know if I should start another mail for the observed error.

Thank You. 


On Tue, Feb 2, 2016 at 1:12 PM, Joakim Erdfelt <joakim@xxxxxxxxxxx> wrote:


Joakim Erdfelt / joakim@xxxxxxxxxxx

On Tue, Feb 2, 2016 at 3:19 AM, Conundrum <Conondrumk@xxxxxxxxx> wrote:
Hello

I am trying to test the server push feature on a static website with standalone Jetty.

My website consists of an index.html  + 1 CSS + a bunch of images. The directory structure is:

/Album
       |
       |-----index.html
       |-----style.css
       |------/images
                 |
                 |-----  image 1
                 |---a set of about 100 images  
                 |---image100.png


As I just wanted to quickly test out the server push feature I did not code this website as a Java Web project and, therefore, didn't have any web.xml file.

However, the Jetty documentation asks to add PushCacheFilter to web.xml. Therefore, I created a /Album/WEB-INF/web.xml in my project and added the PushCacheFilter as the documentation specified. 

This is the correct way to handle it.
 

First, I am unable to understand from the documentation how exactly PushCacheFilter works.
Secondly, I want to control which files get pushed and which do not. From the documentation, it seems PushCacheFilter doesn't give me that kind of control.


It's documented there, look at the mention of Referer.

The support for custom Push is only in jetty master branch (unstable Jetty 9.4.0) atm, which is based on an early draft of the Servlet 4.0 PushBuilder interface.

- Joakim

_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users


Back to the top