diff options
author | Aldo Cortesi <aldo@corte.si> | 2018-02-22 20:48:17 +1300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-22 20:48:17 +1300 |
commit | 443409e32bcc28a7f0475d7af42efff03473b72f (patch) | |
tree | 9d749a57929a950f0e177a9bf4d6cd7d9a88c16b /docs/pathod/language.rst | |
parent | 1cacefa104626e4e0df5ffb2aa8b0c6f16b615b2 (diff) | |
parent | 982508d30f887b4fe8b2a855792ae1e33f378222 (diff) | |
download | mitmproxy-443409e32bcc28a7f0475d7af42efff03473b72f.tar.gz mitmproxy-443409e32bcc28a7f0475d7af42efff03473b72f.tar.bz2 mitmproxy-443409e32bcc28a7f0475d7af42efff03473b72f.zip |
Merge pull request #2890 from mitmproxy/newdocs
All new documentation
Diffstat (limited to 'docs/pathod/language.rst')
-rw-r--r-- | docs/pathod/language.rst | 257 |
1 files changed, 0 insertions, 257 deletions
diff --git a/docs/pathod/language.rst b/docs/pathod/language.rst deleted file mode 100644 index fe4ef6ca..00000000 --- a/docs/pathod/language.rst +++ /dev/null @@ -1,257 +0,0 @@ -.. _language: - -language spec -============= - -************ -HTTP Request -************ - - **method:path:[colon-separated list of features]** - -.. list-table:: - :widths: 20 80 - :header-rows: 0 - - * - method - - A :ref:`VALUE` specifying the HTTP method to - use. Standard methods do not need to be enclosed in quotes, while - non-standard methods can be specified as quoted strings. - - The special method **ws** creates a valid websocket upgrade - GET request, and signals to pathoc to switch to websocket recieve - mode if the server responds correctly. Apart from that, websocket - requests are just like any other, and all aspects of the request - can be over-ridden. - * - h\ :ref:`VALUE`\ =\ :ref:`VALUE`\ - - Set a header. - * - r - - Set the **raw** flag on this response. Pathod will not calculate a - *Content-Length* header if a body is set. - * - c\ :ref:`VALUE` - - A shortcut for setting the Content-Type header. Equivalent to - ``h"Content-Type"=VALUE`` - * - u\ :ref:`VALUE` - uSHORTCUT - - Set a User-Agent header on this request. You can specify either a - complete :ref:`VALUE`, or a User-Agent shortcut: **android**, - **blackberry**, **bingbot**, **chrome**, **firefox**, **googlebot**, - **ie9**, **ipad**, **iphone**, **safari**. - * - b\ :ref:`VALUE` - - Set the body. The appropriate Content-Length header is added - automatically unless the **r** flag is set. - * - s\ :ref:`VALUE` - - An embedded Response specification, appended to the path of the request. - * - x\ :ref:`INTEGER` - - Repeat this message N times. - * - d\ :ref:`OFFSET` - - Disconnect after OFFSET bytes (HTTP/1 only). - * - i\ :ref:`OFFSET`,\ :ref:`VALUE` - - Inject the specified value at the offset (HTTP/1 only) - * - p\ :ref:`OFFSET`,SECONDS - - Pause for SECONDS seconds after OFFSET bytes. SECONDS can be an integer - or "f" to pause forever (HTTP/1 only) - - -************* -HTTP Response -************* - - **code:[colon-separated list of features]** - -.. list-table:: - :widths: 20 80 - :header-rows: 0 - - * - code - - An integer specifying the HTTP response code. - - The special method **ws** creates a valid websocket upgrade - response (code 101), and moves pathod to websocket mode. Apart - from that, websocket responses are just like any other, and all - aspects of the response can be over-ridden. - * - m\ :ref:`VALUE` - - HTTP Reason message. Automatically chosen according to the response - code if not specified. (HTTP/1 only) - * - h\ :ref:`VALUE`\ =\ :ref:`VALUE`\ - - Set a header. - * - r - - Set the **raw** flag on this response. Pathod will not calculate a - *Content-Length* header if a body is set. - * - l\ :ref:`VALUE` - - A shortcut for setting the Location header. Equivalent to - ``h"Location"=VALUE`` - * - c\ :ref:`VALUE` - - A shortcut for setting the Content-Type header. Equivalent to - ``h"Content-Type"=VALUE`` - * - b\ :ref:`VALUE` - - Set the body. The appropriate Content-Length header is added - automatically unless the **r** flag is set. - * - d\ :ref:`OFFSET` - - Disconnect after OFFSET bytes (HTTP/1 only). - * - i\ :ref:`OFFSET`,\ :ref:`VALUE` - - Inject the specified value at the offset (HTTP/1 only) - * - p\ :ref:`OFFSET`,SECONDS - - Pause for SECONDS seconds after OFFSET bytes. SECONDS can be an integer - or "f" to pause forever (HTTP/1 only) - -*************** -Websocket Frame -*************** - - **wf:[colon-separated list of features]** - -.. list-table:: - :widths: 20 80 - :header-rows: 0 - - * - b\ :ref:`VALUE` - - Set the frame payload. If a masking key is present, the value is - encoded automatically. - * - c\ :ref:`INTEGER` - - Set the op code. This can either be an integer from 0-15, or be one of - the following opcode names: **text** (the default), **continue**, - **binary**, **close**, **ping**, **pong**. - * - d\ :ref:`OFFSET` - - Disconnect after OFFSET bytes - * - i\ :ref:`OFFSET`,\ :ref:`VALUE` - - Inject the specified value at the offset - * - p\ :ref:`OFFSET`,SECONDS - - Pause for SECONDS seconds after OFFSET bytes. SECONDS can be an integer - or "f" to pause forever - * - x\ :ref:`INTEGER` - - Repeat this message N times. - * - [-]fin - - Set or un-set the **fin** bit. - * - k\ :ref:`VALUE` - - Set the masking key. The resulting value must be exactly 4 bytes long. - The special form **knone** specifies that no key should be set, even if - the mask bit is on. - * - l\ :ref:`INTEGER` - - Set the payload length in the frame header, regardless of the actual - body length. - * - [-]mask - - Set or un-set the <b>mask</b> bit. - * - r\ :ref:`VALUE` - - Set the raw frame payload. This disables masking, even if the key is present. - * - [-]rsv1 - - Set or un-set the **rsv1** bit. - * - [-]rsv2 - - Set or un-set the **rsv2** bit. - * - [-]rsv2 - - Set or un-set the **rsv2** bit. - - - -********** -Data types -********** - -.. _INTEGER: - -INTEGER -^^^^^^^ - -.. _OFFSET: - -OFFSET -^^^^^^ - -Offsets are calculated relative to the base message, before any injections or -other transforms are applied. They have 3 flavors: - -======= ========================== -integer An integer byte offset -**r** A random location -**a** The end of the message -======= ========================== - - -.. _VALUE: - -VALUE -^^^^^ - -Literals -"""""""" - -Literal values are specified as a quoted strings:: - - "foo" - -Either single or double quotes are accepted, and quotes can be escaped with -backslashes within the string:: - - 'fo\'o' - -Literal values can contain Python-style backslash escape sequences:: - - 'foo\r\nbar' - - - -Generated -""""""""" - -An @-symbol lead-in specifies that generated data should be used. There are two -components to a generator specification - a size, and a data type. By default -pathod assumes a data type of "bytes". - -Here's a value specifier for generating 100 bytes:: - - @100 - -You can use standard suffixes to indicate larger values. Here, for instance, is -a specifier for generating 100 megabytes: - - @100m - -Data is generated and served efficiently - if you really want to send a -terabyte of data to a client, pathod can do it. The supported suffixes are: - -========== ==================== -b 1024**0 (bytes) -k 1024**1 (kilobytes) -m 1024**2 (megabytes) -g 1024**3 (gigabytes) -t 1024**4 (terabytes) -========== ==================== - -Data types are separated from the size specification by a comma. This specification -generates 100mb of ASCII:: - - @100m,ascii - -Supported data types are: - -================= ============================================== -ascii All ASCII characters -ascii_letters A-Za-z -ascii_lowercase a-z -ascii_uppercase A-Z -bytes All 256 byte values -digits 0-9 -hexdigits 0-f -octdigits 0-7 -punctuation !"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ and space -whitespace \\t \\n \\x0b \\x0c \\r and space -================= ============================================== - - - -Files -""""" - -You can load a value from a specified file path. To do so, you have to specify a -_staticdir_ option to pathod on the command-line, like so: - ->>> pathod -d ~/myassets - -All paths are relative paths under this directory. File loads are indicated by -starting the value specifier with the left angle bracket:: - - <my/path - -The path value can also be a quoted string, with the same syntax as literals:: - - <"my/path" |