From 75d7e5abe0d4bbf400f8049cdbc2df3cd9550146 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sun, 8 Feb 2015 17:48:18 +0900 Subject: [PATCH] Update man pages --- doc/h2load.1 | 2 +- doc/nghttp.1 | 2 +- doc/nghttpd.1 | 2 +- doc/nghttpx.1 | 50 ++++++++++++++++++++++++++++++++++++++++++++++- doc/nghttpx.1.rst | 42 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 94 insertions(+), 4 deletions(-) diff --git a/doc/h2load.1 b/doc/h2load.1 index 7f4417b0..8ba07836 100644 --- a/doc/h2load.1 +++ b/doc/h2load.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "H2LOAD" "1" "February 01, 2015" "0.7.4-DEV" "nghttp2" +.TH "H2LOAD" "1" "February 08, 2015" "0.7.4-DEV" "nghttp2" .SH NAME h2load \- HTTP/2 benchmarking tool . diff --git a/doc/nghttp.1 b/doc/nghttp.1 index f56faae3..104f6de5 100644 --- a/doc/nghttp.1 +++ b/doc/nghttp.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "NGHTTP" "1" "February 01, 2015" "0.7.4-DEV" "nghttp2" +.TH "NGHTTP" "1" "February 08, 2015" "0.7.4-DEV" "nghttp2" .SH NAME nghttp \- HTTP/2 experimental client . diff --git a/doc/nghttpd.1 b/doc/nghttpd.1 index 1a54578b..2523ca80 100644 --- a/doc/nghttpd.1 +++ b/doc/nghttpd.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "NGHTTPD" "1" "February 01, 2015" "0.7.4-DEV" "nghttp2" +.TH "NGHTTPD" "1" "February 08, 2015" "0.7.4-DEV" "nghttp2" .SH NAME nghttpd \- HTTP/2 experimental server . diff --git a/doc/nghttpx.1 b/doc/nghttpx.1 index 480edd15..d6b2b446 100644 --- a/doc/nghttpx.1 +++ b/doc/nghttpx.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "NGHTTPX" "1" "February 01, 2015" "0.7.4-DEV" "nghttp2" +.TH "NGHTTPX" "1" "February 08, 2015" "0.7.4-DEV" "nghttp2" .SH NAME nghttpx \- HTTP/2 experimental proxy . @@ -500,6 +500,13 @@ padding. Specify 0 to disable padding. This option is meant for debugging purpose and not intended to enhance protocol security. .UNINDENT +.INDENT 0.0 +.TP +.B \-\-no\-server\-push +Disable HTTP/2 server push. Server push is only +supported by default mode and HTTP/2 frontend. SPDY +frontend does not support server push. +.UNINDENT .SS Mode .INDENT 0.0 .TP @@ -652,6 +659,14 @@ altered regardless of this option. .UNINDENT .INDENT 0.0 .TP +.B \-\-no\-host\-rewrite +Don\(aqt rewrite host and :authority header fields on +\fI\%\-\-http2\-bridge\fP, \fI\%\-\-client\fP and default mode. For +\fI\%\-\-http2\-proxy\fP and \fI\%\-\-client\-proxy\fP mode, these headers +will not be altered regardless of this option. +.UNINDENT +.INDENT 0.0 +.TP .B \-\-altsvc= Specify protocol ID, port, host and origin of alternative service. and are optional. @@ -782,6 +797,39 @@ path with same command\-line arguments and environment variables. After new process comes up, sending SIGQUIT to the original process to perform hot swapping. .UNINDENT +.SH SERVER PUSH +.sp +nghttpx supports HTTP/2 server push in default mode. nghttpx looks +for Link header field (\fI\%RFC 5988\fP) in response headers for +backend server and extracts URI\-reference with parameter +\fBrel=preload\fP (see \fI\%preload\fP) +and pushes those URIs to the frontend client. Here is a sample Link +header field to initiate server push: +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +Link: ; rel=preload +Link: ; rel=preload +.ft P +.fi +.UNINDENT +.UNINDENT +.sp +Currently, the following restrictions are applied for server push: +.INDENT 0.0 +.IP 1. 3 +URI\-reference must not contain authority. If it exists, it is not +pushed. \fB/fonts/font.woff\fP and \fBcss/theme.css\fP are eligible to +be pushed. \fBhttps://example.org/fonts/font.woff\fP and +\fB//example.org/css/theme.css\fP are not. +.IP 2. 3 +The associated stream must have method "GET" or "POST". The +associated stream\(aqs status code must be 200. +.UNINDENT +.sp +These limitations may be loosened in the future release. .SH SEE ALSO .sp \fInghttp(1)\fP, \fInghttpd(1)\fP, \fIh2load(1)\fP diff --git a/doc/nghttpx.1.rst b/doc/nghttpx.1.rst index 240b0c3d..eff57514 100644 --- a/doc/nghttpx.1.rst +++ b/doc/nghttpx.1.rst @@ -438,6 +438,12 @@ HTTP/2 and SPDY meant for debugging purpose and not intended to enhance protocol security. +.. option:: --no-server-push + + Disable HTTP/2 server push. Server push is only + supported by default mode and HTTP/2 frontend. SPDY + frontend does not support server push. + Mode ~~~~ @@ -570,6 +576,13 @@ HTTP :option:`--client-proxy` mode, location header field will not be altered regardless of this option. +.. option:: --no-host-rewrite + + Don't rewrite host and :authority header fields on + :option:`--http2-bridge`\, :option:`--client` and default mode. For + :option:`--http2-proxy` and :option:`\--client-proxy` mode, these headers + will not be altered regardless of this option. + .. option:: --altsvc= Specify protocol ID, port, host and origin of @@ -701,6 +714,35 @@ SIGUSR2 After new process comes up, sending SIGQUIT to the original process to perform hot swapping. +SERVER PUSH +----------- + +nghttpx supports HTTP/2 server push in default mode. nghttpx looks +for Link header field (`RFC 5988 +`_) in response headers for +backend server and extracts URI-reference with parameter +``rel=preload`` (see `preload +`_) +and pushes those URIs to the frontend client. Here is a sample Link +header field to initiate server push: + +.. code-block:: http + + Link: ; rel=preload + Link: ; rel=preload + +Currently, the following restrictions are applied for server push: + +1. URI-reference must not contain authority. If it exists, it is not + pushed. ``/fonts/font.woff`` and ``css/theme.css`` are eligible to + be pushed. ``https://example.org/fonts/font.woff`` and + ``//example.org/css/theme.css`` are not. + +2. The associated stream must have method "GET" or "POST". The + associated stream's status code must be 200. + +These limitations may be loosened in the future release. + SEE ALSO --------