aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.mkd88
1 files changed, 62 insertions, 26 deletions
diff --git a/README.mkd b/README.mkd
index 3e25d581..01f88ef5 100644
--- a/README.mkd
+++ b/README.mkd
@@ -5,22 +5,23 @@ Pathod
Pathod is a pathological HTTP/S daemon, useful for testing and torturing client
software. At Pathod's core is a small, terse language for crafting HTTP
responses. The simplest way to use Pathod is to fire up the daemon, and specify
-the respnse behaviour you want in the request URL, like this:
+the respnse behaviour you want using this language in the request URL. Here's a
+minimal example:
http://localhost:9999/p/200
Everything below the magic "/p/" path component is a response specifier - in
-this case we're just specifying a vanilly 200 OK response, see the docs below
-to get fancier. You can also add anchors to the Pathod server that serve a
-fixed response whenever a path matching a specified URL is requested:
+this case just a vanilla 200 OK response. See the docs below to get (much)
+fancier. You can also add anchors to the Pathod server that serve a fixed
+response whenever a matching URL is requested:
- pathod --anchor /foo=200
+ pathod --anchor "/foo=200"
Here, the part before the "=" is a regex specifying the anchor path, and the
-part after is again a response specifier.
+part after is a response specifier.
-Pathod has a nifty web interface built in, which exposes activity logs, online
-help and various other goodies. Try it by visiting the server root:
+Pathod also has a nifty built-in web interface, which exposes activity logs,
+online help and various other goodies. Try it by visiting the server root:
http://localhost:9999
@@ -39,20 +40,22 @@ OK message with no headers and no content:
200
We can embellish this a bit by specifying an optional custom HTTP response
-message. By default for a 200 response code, this is just "OK", but we can
-change it like this:
+message (if we don't, Pathod automatically creates an appropriate one). By
+default for a 200 response code the message is "OK", but we can change it like
+this:
200"YAY"
-The quoted string above is an example of a value specifier, a syntax that is
-used pervasively in the Pathod response specification language. In this case,
-we're specifying a literal string, but there are many other fun things we can
-do. For example, we can tell Pathod to generate 100k of random ASCII letters
-instead:
+The quoted string here is an example of a Value Specifier, a syntax that is
+used throughout the Pathod response specification language. In this case, the
+quotes mean we're specifying a literal string, but there are many other fun
+things we can do. For example, we can tell Pathod to generate 100k of random
+ASCII letters instead:
200@100k,ascii_letters
-Full documentation on the value specification syntax can be found below.
+Full documentation on the value specification syntax can be found in the next
+section.
Following the response code specifier is a colon-separateed list of features.
For instance, this specifies a response with a body consisting of 1 megabyte of
@@ -95,8 +98,8 @@ We can also ask Pathod to hang randomly:
200:b@1m:pr,a
-Pathod has a similar mechanism for simply dropping a connection mid-response.
-So we can tell Pathod to disconnect after sending 50 bytes:
+There is a similar mechanism for dropping connections mid-response. So, we can
+tell Pathod to disconnect after sending 50 bytes:
200:b@1m:d50
@@ -105,7 +108,7 @@ Or randomly:
200:b@1m:dr
All of these features can be combined. Here's a response that pauses twice,
-then hangs:
+once at 10 bytes and once at 20, then disconnects at 5000:
200:b@1m:p10,10:p20,10:d5000
@@ -113,17 +116,50 @@ then hangs:
Features
========
- hVALUE=VALUE Set header
- bVALUE Set body
- cVALUE Set Content-Type header
- lVALUE Set Location header
+_h_KEY=VALUE
+------------
- dOFF|r Disconnect after OFF bytes, measured from the beginning of the response.
- pNUM|f,OFF|r|a Pause for NUM seconds after OFF bytes.
+Set a header. Both KEY and VALUE are full _Value Specifiers_.
+
+
+_b_VALUE
+--------
+
+Set the body. VALUE is a _Value Specifier_. When the body is set, Pathod will
+automatically set the appropriate Content-Length header.
+
+_c_VALUE
+--------
+
+A shortcut for setting the Content-Type header. Equivalent to:
+
+ h"Content-Type"=VALUE
+
+_l_VALUE
+--------
+
+A shortcut for setting the Location header. Equivalent to:
+
+ h"Content-Type"=VALUE
+
+
+_d_OFFSET
+---------
+
+Disconnect after OFFSET bytes. The offset can also be "r", in which case Pathod
+will disconnect at a random point in the response.
+
+
+_p_SECONDS,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.
Value Specifiers
-----------------
+================
@500k - 500k of random data
@500k,utf8 - 500k of utf8. Other specifiers: utf8,alphanum,alpha,printable