Specification:
examples

Check out the complete language docs. Here are some examples to get you started:

200 A basic HTTP 200 response (this will hang).
200:da Server-side disconnect after all content has been sent.
200:b@100 100 random bytes as the body. A Content-Lenght header is added, so the disconnect is no longer needed.
200:b@100:h"Etag"="';drop table servers;" Add a Server header
200:b@100:dr Drop the connection randomly
200:b@100,ascii:ir,@1 100 ASCII bytes as the body, and randomly inject a random byte
200:b@1k:c"text/json" 1k of random bytes, with a text/json content type
200:b@1k:p50,120 1k of random bytes, pause for 120 seconds after 50 bytes
200:b@1k:pr,f 1k of random bytes, but hang forever at a random location
200:b@100:h@1k,ascii_letters='foo' 100 ASCII bytes as the body, randomly generated 100k header name, with the value 'foo'.
Response:
HTTP/1.1 200 OK
Content-Length: 1024
Date: Sat, 18 May 2013 14:56:15 GMT

\xe6\x8d\x1d\x84VW\xa80\x8c\x9b\xbb\xc3W1\x91\xce\xb7\xd4\xe7\xdd\x03B\xe3\xf1
5[\xbap\x04\xbc\xcb\xd7\xb2\xa4\xa0\xa2\x9fK\xde\x14m3\xb2\x8f\xf1\x00R\xf1\x86\xec\xb4L\x8dJ6H\x98\xf3\x87\x03\xf5}\x03\x1c+u\xf40\x1c@\xc09l5o\xb2;)\xc3ea\xd6\xe3Z\xe3\xaf\xcf\xc4\xe3\x0e\x91\x97\xf9\xc1\x87\xf8/\x9a"\xb5\xbc\x0c>\xbc\x04\x80\xf6\xbaH\xf7!a\x9b\x0b\xfcm\xf38;\x7f\xf5c~\x17G\xb4v\xe3\xb2\xcd7\xeb\xda\xe9\x92J\xa2\x08\x0e2(\x11Q\xe3`K4\xe5S\xcd\xaf\x1a#\xe8\xcf\xc0\xf01\x01\xe3\x94\xd5Jp*\xeac\xba\xbf\x8a\x87\x8f\xa3\x0b\xe4f.\xd0\xf4\xcd\x0b\x9c\xc6\x10\xa0mn\xe66u\xdcS\x8c\xe4\xa9\xda3\xd7O\x1e6\xde\x1dF\xd3\x93;\xf1\xc7]\x9e4\xd5\xfe\xa6\xf2\x8bT\xb7\x99_wg\xddH\xb1\xbf(\xaa\x8c\x98\xaf\x94\xaf1\x82\xa4\xc2\x11\xf9\x08DIb\x1dl\x93w\xbe\xee\xe3TW\xa7&*^\xf9\xdd\x99\xab\xaa\x86\xe4\x95u\x91\x17\xe3\x91\xce~1P\x12\xb8\xa1\xe7\x88b\xdb\xbaR\xb4|\xc9\xffe\x17\x83\xb3\xb2\x04\xfa=s\xb8\xb31\x82\x1bS^<\\k\'\xbc#GGh\xa1\xfco"\x0c\xc0\x00tc\xdf\x10\x13\xee\xa8\xe8<\x8dV\x84!\'\x05\'\xd9\xc4A\xa3\x99 \xa6\x85\x1d\xeas\x8d\x816yG\xcd\xcd\x0fyt\xf6\x98bbz\x86$H\xf2\xd0\xac\x1b\x03B\x88\xf5I\xa03\xa8\x1f!\x92\x1a&@C\x88\xcd\xf2\xab1\xb5M\xc4O\xd6\x90\xc3/\x04\xbb\xd897\xc1`P\xf0\xad\x1fKZ\x1e\xdc\xedW?V\xc3\x93\x01qq)%\xef\xf5|\x03oO2\xed\x83\x98\xbft7:\xc7\xfa\xd1\x0f\xe3L\xba\x91\xde\xefwN\x17\xba\xfb\x9f\xc4;0N&\xe6\\\xb8\x01\x14\x85\xba\x10\xbab\xc0Y\xc0\x84S\x13\x7f\xe7e\xd6\xc0\x9dLY\x12\xdd%\x81l\x13\xeeS\xaa3\xfc\xbf\xab\xbaS\x03\xff\x13\xff\x1d \xfd\xc1v\x93\xc7\xda[`<\x81L
3U\xa4\x95\xeam\xd5\xf4%\x04\xb0+:-3\xf2NMq\xc7%9\x82I\xbf\x87\xb1\xd6E\xf0\x8e\x063\xed<\xa0\xc08\xa3\xc0~\xb8\xc1PtX\xdf\xf7\xa4\xb1\xc6\xe6S\xe1\xc4\x8d\x8f;q\xb47\xc6\x81\x07\x1b\tDA\x96\x08\xfan\xee&\xdc\x11X{g\xadX\xf2\xa9\xcf\x1e:\x84@\xb4f\xa1\x14"\xe6\r:\xb6T\x19\xe8\xa1%\xf1t\xb7\xde\xb9\x1d>_^\xe6\r\x95\xcf9h-}>S/t=\xfe\xb7\xc6\xb5\xa4\xda\xb0\x0b\x9eq=)\t\xc5\x99\xfe\xe4\x94\xd1\x0c\x8d\xc72;\xac\xaf1B\xfcC\xf4Q\xa6\xcf\xa1<\xc9\xf3\x97\xb3l0\xff3\x15\xac5\xaf\xfaA\xd1r\x1e\xbd\xdd\x0e\x8f\x02b\x85Cx\x90\xe5\x12\x05\xf9\xb3\xe0A|5%\xfa\x0f\xc6d\xa8\xfa#\xad\x16\xa9p\x11\x95Xtf\x01\xfa\x83\x95w3\xb5\xea\xd9\xd3-EiM\xdb\'?\x0e\xe2\xacG\xdb\xd3\xf4\xf7\xcf$;\x01%\xfaT\xd1\x92\xc2\x80^\x86\xce\xe6\xc1&\x88\x06\xe3\xeb\xf0\x1a\x86\xf3\x94#\x7f\xef\x9f\x1a\x80\xbe\x8f\x94JAs\x1f\x1a(X\x8a\x9d\x05\x87\xa09@\xd7\xd4\x06\xc9\xfc\xb4"\xf4\xeez\xe5z\xe7\x1bA\xa9\xcb^\xb6\xdf \x08\x96\xad\x8e\xe8\x90\xb5^\xa6\xa0X\xad3\x1a\xae\xeb-7/\x03e\xe9\xb0\xa8\x0c\x88\xb1\xd01\x08H@q\xfc\xbd\xf0\x04a\xecE\xae\x8fJ\x13K\xea\xfc#k\x90\xd2\x8d\xc9\xe5\xa5n\xf7R\x1c\xca0\xf8\x04z!\xb6A\xa8\x17[L\x97bK\x04\x82\xb6,\xc0U\xbac\xee\xb3\x99;\xcc\x85\xcf\xd0\x84\x0f\x88\xc6\x81\xad\xaa&\x98\xdfnX\x7f\'W\xfbV\xe9\xeb:\xc17&\x12\x8a\xd9\xa4\xed\xf7\x82\x96\x01\x15<\x8f\x90\x08\xac\xf6?\x90\xcc\xe0\xe2\x9d\x98F\x02\x1dp\xbb^\x9a\x1c\xdf`\x114\x06\xe5-\xb4\xab?\xfbq\x7fla\x14{\x1aw\xd2E\xea\xaa\x8d\x7f\xa4\x1a\xb7\x80\xec\x06\x9c\x9c\xafLG\xf0\x90.i,\xe7\x9eV\\5z\x8c\xc7\xd7\x17\xcd\xa6\x9d\xc64\x87

Note: pauses are skipped when generating previews!