Document nghttp's dependency based priority
This commit is contained in:
parent
436595df98
commit
3bdf78e8af
|
@ -1,3 +1,54 @@
|
||||||
|
DEPENDENCY BASED PRIORITY
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
nghttp sends priority hints to server by default unless
|
||||||
|
:option:`--no-dep` is used. nghttp mimics the way Firefox employs to
|
||||||
|
manages dependency using idle streams. We follows the behaviour of
|
||||||
|
Firefox Nightly as of April, 2015, and nghttp's behaviour is very
|
||||||
|
static and could be different from Firefox in detail. But reproducing
|
||||||
|
the same behaviour of Firefox is not our goal. The goal is provide
|
||||||
|
the easy way to test out the dependency priority in server
|
||||||
|
implementation.
|
||||||
|
|
||||||
|
When connection is established, nghttp sends 5 PRIORITY frames to idle
|
||||||
|
streams 3, 5, 7, 9 and 11 to create "anchor" nodes in dependency
|
||||||
|
tree::
|
||||||
|
|
||||||
|
+-----+
|
||||||
|
|id=0 |
|
||||||
|
+-----+
|
||||||
|
^ ^ ^
|
||||||
|
w=201 / | \ w=1
|
||||||
|
/ | \
|
||||||
|
/ w=101| \
|
||||||
|
+-----+ +-----+ +-----+
|
||||||
|
|id=3 | |id=5 | |id=7 |
|
||||||
|
+-----+ +-----+ +-----+
|
||||||
|
^ ^
|
||||||
|
w=1 | w=1 |
|
||||||
|
| |
|
||||||
|
+-----+ +-----+
|
||||||
|
|id=11| |id=9 |
|
||||||
|
+-----+ +-----+
|
||||||
|
|
||||||
|
In the above figure, ``id`` means stream ID, and ``w`` means weight.
|
||||||
|
The stream 0 is non-existence stream, and forms the root of the tree.
|
||||||
|
The stream 7 and 9 are not used for now.
|
||||||
|
|
||||||
|
The URIs given in the command-line depend on stream 11 with the weight
|
||||||
|
given in :option:`-p` option, which defaults to 16.
|
||||||
|
|
||||||
|
If :option:`-a` option is used, nghttp parses the resource pointed by
|
||||||
|
URI given in command-line as html, and extracts resource links from
|
||||||
|
it. When requesting those resources, nghttp uses dependency according
|
||||||
|
to its resource type.
|
||||||
|
|
||||||
|
For CSS, and Javascript files inside "head" element, they depend on
|
||||||
|
stream 3 with the weight 2. The Javascript files outside "head"
|
||||||
|
element depend on stream 5 with the weight 2. The mages depend on
|
||||||
|
stream 11 with the weight 12. The other resources (e.g., icon) depend
|
||||||
|
on stream 11 with the weight 2.
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue