{% extends "frame.html" %} {% block body %}

The general form of a response is as follows:

code[MESSAGE]:[colon-separated list of features]

hKEY=VALUE Set a header. Both KEY and VALUE are full Value Specifiers.
bVALUE Set the body. VALUE is a Value Specifier. When the body is set, pathod will automatically set the appropriate Content-Length header.
cVALUE A shortcut for setting the Content-Type header. Equivalent to:
h"Content-Type"=VALUE
iOFFSET,VALUE Inject the specified value at the offset. OFFSET can be an integer, or "r" to generate a random offset or "a" for an offset just after all data has been sent.
lVALUE A shortcut for setting the Location header. Equivalent to:
h"Location"=VALUE
dOFFSET Disconnect after OFFSET bytes. The offset can also be "r", in which case pathod will disconnect at a random point in the response.
pSECONDS,OFFSET Pause for SECONDS seconds after OFFSET bytes. SECONDS can also be "f" to pause forever. OFFSET can also be "r" to generate a random offset, or "a" for an offset just after all data has been sent.
=./path/to/spec

VALUEs

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'

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"

Generated values

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:

{% endblock %}