From cfabce6e707de5ed49b44d649f99b926e37a3cc4 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Fri, 17 Apr 2015 23:14:23 +0900 Subject: [PATCH] Update man pages --- doc/h2load.1 | 2 +- doc/h2load.1.rst | 2 ++ doc/nghttp.1 | 70 +++++++++++++++++++++++++++++++++++++++++------ doc/nghttp.1.rst | 57 +++++++++++++++++++++++++++++++++++--- doc/nghttpd.1 | 6 ++-- doc/nghttpd.1.rst | 2 ++ doc/nghttpx.1 | 2 +- doc/nghttpx.1.rst | 2 ++ 8 files changed, 125 insertions(+), 18 deletions(-) diff --git a/doc/h2load.1 b/doc/h2load.1 index 399cc7b0..7cec73be 100644 --- a/doc/h2load.1 +++ b/doc/h2load.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "H2LOAD" "1" "April 10, 2015" "0.7.11" "nghttp2" +.TH "H2LOAD" "1" "April 17, 2015" "0.7.12-DEV" "nghttp2" .SH NAME h2load \- HTTP/2 benchmarking tool . diff --git a/doc/h2load.1.rst b/doc/h2load.1.rst index 22c2a7d9..ff1115c8 100644 --- a/doc/h2load.1.rst +++ b/doc/h2load.1.rst @@ -1,4 +1,6 @@ +.. program:: h2load + h2load(1) ========= diff --git a/doc/nghttp.1 b/doc/nghttp.1 index 000b3fde..ee031126 100644 --- a/doc/nghttp.1 +++ b/doc/nghttp.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "NGHTTP" "1" "April 10, 2015" "0.7.11" "nghttp2" +.TH "NGHTTP" "1" "April 17, 2015" "0.7.12-DEV" "nghttp2" .SH NAME nghttp \- HTTP/2 experimental client . @@ -104,8 +104,8 @@ Add a header to the requests. Example: \fI\%\-H\fP\(aq:method: PUT\(aq .B \-\-trailer=
Add a trailer header to the requests.
must not include pseudo header field (header field name starting -with \(aq:\(aq). To send trailer, one must use \fI\-d\fP option to -send request body. Example: \fI\-\-trailer\fP \(aqfoo: bar\(aq. +with \(aq:\(aq). To send trailer, one must use \fI\%\-d\fP option to +send request body. Example: \fI\%\-\-trailer\fP \(aqfoo: bar\(aq. .UNINDENT .INDENT 0.0 .TP @@ -135,7 +135,7 @@ requested twice. This option disables it too. .TP .B \-u, \-\-upgrade Perform HTTP Upgrade for HTTP/2. This option is ignored -if the request URI has https scheme. If \fI\-d\fP is used, the +if the request URI has https scheme. If \fI\%\-d\fP is used, the HTTP upgrade request is performed with OPTIONS method. .UNINDENT .INDENT 0.0 @@ -192,11 +192,6 @@ Don\(aqt send dependency based priority hint to server. .UNINDENT .INDENT 0.0 .TP -.B \-\-dep\-idle -Use idle streams as anchor nodes to express priority. -.UNINDENT -.INDENT 0.0 -.TP .B \-\-hexdump Display the incoming traffic in hexadecimal (Canonical hex+ASCII display). If SSL/TLS is used, decrypted data @@ -215,6 +210,63 @@ Display this help and exit. .sp The argument is an integer and an optional unit (e.g., 10K is 10 * 1024). Units are K, M and G (powers of 1024). +.SH DEPENDENCY BASED PRIORITY +.sp +nghttp sends priority hints to server by default unless +\fI\%\-\-no\-dep\fP 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\(aqs 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. +.sp +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: +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C + +\-\-\-\-\-+ + |id=0 | + +\-\-\-\-\-+ + ^ ^ ^ + w=201 / | \e w=1 + / | \e + / w=101| \e + +\-\-\-\-\-+ +\-\-\-\-\-+ +\-\-\-\-\-+ + |id=3 | |id=5 | |id=7 | + +\-\-\-\-\-+ +\-\-\-\-\-+ +\-\-\-\-\-+ + ^ ^ +w=1 | w=1 | + | | + +\-\-\-\-\-+ +\-\-\-\-\-+ + |id=11| |id=9 | + +\-\-\-\-\-+ +\-\-\-\-\-+ +.ft P +.fi +.UNINDENT +.UNINDENT +.sp +In the above figure, \fBid\fP means stream ID, and \fBw\fP 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. +.sp +The URIs given in the command\-line depend on stream 11 with the weight +given in \fI\%\-p\fP option, which defaults to 16. +.sp +If \fI\%\-a\fP 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. +.sp +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. .SH SEE ALSO .sp \fInghttpd(1)\fP, \fInghttpx(1)\fP, \fIh2load(1)\fP diff --git a/doc/nghttp.1.rst b/doc/nghttp.1.rst index 7000c7ac..6e8d0f3a 100644 --- a/doc/nghttp.1.rst +++ b/doc/nghttp.1.rst @@ -1,4 +1,6 @@ +.. program:: nghttp + nghttp(1) ========= @@ -143,10 +145,6 @@ OPTIONS Don't send dependency based priority hint to server. -.. option:: --dep-idle - - Use idle streams as anchor nodes to express priority. - .. option:: --hexdump Display the incoming traffic in hexadecimal (Canonical @@ -166,6 +164,57 @@ OPTIONS The argument is an integer and an optional unit (e.g., 10K is 10 * 1024). Units are K, M and G (powers of 1024). +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 -------- diff --git a/doc/nghttpd.1 b/doc/nghttpd.1 index 7684de21..a9cdcd35 100644 --- a/doc/nghttpd.1 +++ b/doc/nghttpd.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "NGHTTPD" "1" "April 10, 2015" "0.7.11" "nghttp2" +.TH "NGHTTPD" "1" "April 17, 2015" "0.7.12-DEV" "nghttp2" .SH NAME nghttpd \- HTTP/2 experimental server . @@ -63,7 +63,7 @@ address determined by getaddrinfo is used. .INDENT 0.0 .TP .B \-D, \-\-daemon -Run in a background. If \fI\-D\fP is used, the current working +Run in a background. If \fI\%\-D\fP is used, the current working directory is changed to \(aq\fI/\fP\(aq. Therefore if this option is used, \fI\%\-d\fP option must be specified. .UNINDENT @@ -109,7 +109,7 @@ Push resources s when is requested. This option can be used repeatedly to specify multiple push configurations. and s are relative to document root. See \fI\%\-\-htdocs\fP option. -Example: \fI\-p\fP/=/foo.png \fI\-p\fP/doc=/bar.css +Example: \fI\%\-p\fP/=/foo.png \fI\%\-p\fP/doc=/bar.css .UNINDENT .INDENT 0.0 .TP diff --git a/doc/nghttpd.1.rst b/doc/nghttpd.1.rst index 537963d1..77cc01d0 100644 --- a/doc/nghttpd.1.rst +++ b/doc/nghttpd.1.rst @@ -1,4 +1,6 @@ +.. program:: nghttpd + nghttpd(1) ========== diff --git a/doc/nghttpx.1 b/doc/nghttpx.1 index e309995f..66e8caf2 100644 --- a/doc/nghttpx.1 +++ b/doc/nghttpx.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "NGHTTPX" "1" "April 10, 2015" "0.7.11" "nghttp2" +.TH "NGHTTPX" "1" "April 17, 2015" "0.7.12-DEV" "nghttp2" .SH NAME nghttpx \- HTTP/2 experimental proxy . diff --git a/doc/nghttpx.1.rst b/doc/nghttpx.1.rst index 4aff82cd..99058a41 100644 --- a/doc/nghttpx.1.rst +++ b/doc/nghttpx.1.rst @@ -1,4 +1,6 @@ +.. program:: nghttpx + nghttpx(1) ==========