{"transaction":{"time":"18/Apr/2026:09:47:11.670074 +0000","transaction_id":"aeNTHzaTAovO3v6zz34ewgAAABQ","remote_address":"10.100.1.191","remote_port":43220,"local_address":"10.100.2.222","local_port":8080},"request":{"request_line":"GET / HTTP/1.1","headers":{"X-Real-IP":"216.73.217.116","X-Forwarded-For":"216.73.217.116","Host":"localhost","Connection":"close","accept":"*/*","user-agent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","accept-encoding":"gzip, br, zstd, deflate","X-Unique-ID":"aeNTHzaTAovO3v6zz34ewgAAABQ"}},"response":{"protocol":"HTTP/1.1","status":200,"headers":{"X-Unique-ID":"aeNTHzaTAovO3v6zz34ewgAAABQ","Access-Control-Allow-Credentials":"true","Access-Control-Allow-Origin":"*","Content-Security-Policy":"default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' camo.githubusercontent.com","Content-Type":"text/html; charset=utf-8","Content-Length":"13363","Connection":"close"},"body":"<!DOCTYPE html>\n<html>\n<head>\n  <meta http-equiv='content-type' value='text/html;charset=utf8'>\n  <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>\n  <title>go-httpbin(1): HTTP Client Testing Service</title>\n  <style type='text/css' media='all'>\n  /* style: man */\n  body#manpage {margin:0;background:#fff;}\n  .mp {max-width:100ex;padding:0 9ex 1ex 4ex}\n  .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}\n  .mp h2 {margin:10px 0 0 0}\n  .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}\n  .mp h3 {margin:0 0 0 4ex}\n  .mp dt {margin:0;clear:left}\n  .mp dt.flush {float:left;width:8ex}\n  .mp dd {margin:0 0 0 9ex}\n  .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}\n  .mp pre {margin-bottom:20px}\n  .mp pre+h2,.mp pre+h3 {margin-top:22px}\n  .mp h2+pre,.mp h3+pre {margin-top:5px}\n  .mp img {display:block;margin:auto}\n  .mp h1.man-title {display:none}\n  .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}\n  .mp h2 {font-size:16px;line-height:1.25}\n  .mp h1 {font-size:20px;line-height:2}\n  .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}\n  .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}\n  .mp u {text-decoration:underline}\n  .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}\n  .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}\n  .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}\n  .mp b.man-ref {font-weight:normal;color:#434241}\n  .mp pre {padding:0 4ex}\n  .mp pre code {font-weight:normal;color:#434241}\n  .mp h2+pre,h3+pre {padding-left:0}\n  ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}\n  ol.man-decor {width:100%}\n  ol.man-decor li.tl {text-align:left}\n  ol.man-decor li.tc {text-align:center;letter-spacing:4px}\n  ol.man-decor li.tr {text-align:right;float:right}\n  </style>\n  <style type='text/css' media='all'>\n  /* style: 80c */\n  .mp {max-width:86ex}\n  ul {list-style: None; margin-left: 1em!important}\n  .man-navigation {left:101ex}\n  </style>\n</head>\n\n<body id='manpage'>\n\n\n<div class='mp'>\n<h1>go-httpbin(1)</h1>\n<p>A golang port of the venerable <a href=\"https://httpbin.org/\">httpbin.org</a> HTTP request &amp; response testing service.</p>\n\n<h2 id=\"ENDPOINTS\">ENDPOINTS</h2>\n\n<ul>\n<li><a href=\"/\"><code>/</code></a> This page.</li>\n<li><a href=\"/absolute-redirect/6\"><code>/absolute-redirect/:n</code></a> 302 Absolute redirects <em>n</em> times.</li>\n<li><a href=\"/anything\"><code>/anything/:anything</code></a> Returns anything that is passed to request.</li>\n<li><a href=\"/base64/eyJzZXJ2ZXIiOiAiZ28taHR0cGJpbiJ9Cg==?content-type=application/json\"><code>/base64/:value?content-type=ct</code></a> Decodes a Base64-encoded string, with optional Content-Type.</li>\n<li><a href=\"/base64/decode/aHR0cGJpbmdvLm9yZw==\"><code>/base64/decode/:value?content-type=ct</code></a> Explicit URL for decoding a Base64 encoded string.</li>\n<li><a href=\"/base64/encode/httpbingo.org\"><code>/base64/encode/:value</code></a> Encodes a string into URL-safe Base64.</li>\n<li><a href=\"/basic-auth/user/password\"><code>/basic-auth/:user/:password</code></a> Challenges HTTPBasic Auth.</li>\n<li><a href=\"/bearer\"><code>/bearer</code></a> Checks Bearer token header - returns 401 if not set.</li>\n<li><a href=\"/brotli\"><code><del>/brotli</del></code></a> Returns brotli-encoded data.</del> <i>Not implemented!</i></li>\n<li><a href=\"/bytes/1024\"><code>/bytes/:n</code></a> Generates <em>n</em> random bytes of binary data, accepts optional <em>seed</em> integer parameter.</li>\n<li><a href=\"/cache\"><code>/cache</code></a> Returns 200 unless an If-Modified-Since or If-None-Match header is provided, when it returns a 304.</li>\n<li><a href=\"/cache/60\"><code>/cache/:n</code></a> Sets a Cache-Control header for <em>n</em> seconds.</li>\n<li><a href=\"/cookies\"><code>/cookies</code></a> Returns cookie data.</li>\n<li><a href=\"/cookies/delete?k1=&amp;k2=\"><code>/cookies/delete?name</code></a> Deletes one or more simple cookies.</li>\n<li><a href=\"/cookies/set?k1=v1&amp;k2=v2\"><code>/cookies/set?name=value</code></a> Sets one or more simple cookies.</li>\n<li><a href=\"/deflate\"><code>/deflate</code></a> Returns deflate-encoded data.</li>\n<li><a href=\"/delay/3\"><code>/delay/:n</code></a> Delays responding for <em>min(n, 10)</em> seconds.</li>\n<li><code>/delete</code> Returns request data.  Allows only <code>DELETE</code> requests.</li>\n<li><a href=\"/deny\"><code>/deny</code></a> Denied by robots.txt file.</li>\n<li><a href=\"/digest-auth/auth/user/password\"><code>/digest-auth/:qop/:user/:password</code></a> Challenges HTTP Digest Auth using default MD5 algorithm</li>\n<li><a href=\"/digest-auth/auth/user/password/SHA-256\"><code>/digest-auth/:qop/:user/:password/:algorithm</code></a> Challenges HTTP Digest Auth using specified algorithm (MD5 or SHA-256)</li>\n<li><a href=\"/drip?code=200&amp;numbytes=5&amp;duration=5\"><code>/drip?numbytes=n&amp;duration=s&amp;delay=s&amp;code=code</code></a> Drips data over the given duration after an optional initial delay, simulating a slow HTTP server.</li>\n<li><a href=\"/dump/request\"><code>/dump/request</code></a> Returns the given request in its HTTP/1.x wire approximate representation.</li>\n<li><a href=\"/encoding/utf8\"><code>/encoding/utf8</code></a> Returns page containing UTF-8 data.</li>\n<li><a href=\"/env\"><code>/env</code></a> Returns all environment variables named with <code>HTTPBIN_ENV_</code> prefix.</li>\n<li><a href=\"/etag/etag\"><code>/etag/:etag</code></a> Assumes the resource has the given etag and responds to If-None-Match header with a 200 or 304 and If-Match with a 200 or 412 as appropriate.</li>\n<li><a href=\"/forms/post\"><code>/forms/post</code></a> HTML form that submits to <em>/post</em></li>\n<li><a href=\"/get\"><code>/get</code></a> Returns GET data.</li>\n<li><a href=\"/gzip\"><code>/gzip</code></a> Returns gzip-encoded data.</li>\n<li><code>/head</code> Returns response headers.  Allows only <code>HEAD</code> requests.</li>\n<li><a href=\"/headers\"><code>/headers</code></a> Returns request header dict.</li>\n<li><a href=\"/hidden-basic-auth/user/password\"><code>/hidden-basic-auth/:user/:password</code></a> 404'd BasicAuth.</li>\n<li><a href=\"/html\"><code>/html</code></a> Renders an HTML Page.</li>\n<li><a href=\"/hostname\"><code>/hostname</code></a> Returns the name of the host serving the request.</li>\n<li><a href=\"/image\"><code>/image</code></a> Returns page containing an image based on sent Accept header.</li>\n<li><a href=\"/image/jpeg\"><code>/image/jpeg</code></a> Returns a JPEG image.</li>\n<li><a href=\"/image/png\"><code>/image/png</code></a> Returns a PNG image.</li>\n<li><a href=\"/image/svg\"><code>/image/svg</code></a> Returns a SVG image.</li>\n<li><a href=\"/image/webp\"><code>/image/webp</code></a> Returns a WEBP image.</li>\n<li><a href=\"/ip\"><code>/ip</code></a> Returns Origin IP.</li>\n<li><a href=\"/json\"><code>/json</code></a> Returns JSON.</li>\n<li><a href=\"/links/10\"><code>/links/:n</code></a> Returns page containing <em>n</em> HTML links.</li>\n<li><code>/patch</code> Returns request data.  Allows only <code>PATCH</code> requests.</li>\n<li><code>/post</code> Returns request data.  Allows only <code>POST</code> requests.</li>\n<li><code>/put</code> Returns request data.  Allows only <code>PUT</code> requests.</li>\n<li><a href=\"/range/:n\"><code>/range/1024?duration=s&amp;chunk_size=code</code></a> Streams <em>n</em> bytes, and allows specifying a <em>Range</em> header to select a subset of the data. Accepts a <em>chunk_size</em> and request <em>duration</em> parameter.</li>\n<li><a href=\"/redirect-to?status_code=307&amp;url=http%3A%2F%2Fexample.com%2F\"><code>/redirect-to?url=foo&status_code=307</code></a> 307 Redirects to the <em>foo</em> URL.</li>\n<li><a href=\"/redirect-to?url=http%3A%2F%2Fexample.com%2F\"><code>/redirect-to?url=foo</code></a> 302 Redirects to the <em>foo</em> URL.</li>\n<li><a href=\"/redirect/6\"><code>/redirect/:n</code></a> 302 Redirects <em>n</em> times.</li>\n<li><a href=\"/relative-redirect/6\"><code>/relative-redirect/:n</code></a> 302 Relative redirects <em>n</em> times.</li>\n<li><a href=\"/response-headers?Server=httpbin&amp;Content-Type=text%2Fplain%3B+charset%3DUTF-8\"><code>/response-headers?key=val</code></a> Returns given response headers.</li>\n<li><a href=\"/robots.txt\"><code>/robots.txt</code></a> Returns some robots.txt rules.</li>\n<li><a href=\"/sse?delay=1s&amp;duration=5s&count=10\"><code>/sse?delay=1s&amp;duration=5s&count=10</code></a> a stream of server-sent events.</li>\n<li><a href=\"/status/418\"><code>/status/:code</code></a> Returns given HTTP Status code.</li>\n<li><a href=\"/stream-bytes/1024\"><code>/stream-bytes/:n</code></a> Streams <em>n</em> random bytes of binary data, accepts optional <em>seed</em> and <em>chunk_size</em> integer parameters.</li>\n<li><a href=\"/stream/20\"><code>/stream/:n</code></a> Streams <em>min(n, 100)</em> lines.</li>\n<li><a href=\"/trailers?trailer1=value1&amp;trailer2=value2\"><code>/trailers?key=val</code></a> Returns JSON response with query params added as HTTP Trailers.</li>\n<li><a href=\"/unstable\"><code>/unstable</code></a> Fails half the time, accepts optional <em>failure_rate</em> float and <em>seed</em> integer parameters.</li>\n<li><a href=\"/user-agent\"><code>/user-agent</code></a> Returns user-agent.</li>\n<li><a href=\"/uuid\"><code>/uuid</code></a> Generates a <a href=\"https://en.wikipedia.org/wiki/Universally_unique_identifier\">UUIDv4</a> value.</li>\n<li><a href=\"/websocket/echo?max_fragment_size=2048&amp;max_message_size=10240\"><code>/websocket/echo?max_fragment_size=2048&amp;max_message_size=10240</code></a> A WebSocket echo service.</li>\n<li><a href=\"/xml\"><code>/xml</code></a> Returns some XML</li>\n</ul>\n\n<h2 id=\"DESCRIPTION\">DESCRIPTION</h2>\n\n<p>Testing an HTTP Library can become difficult sometimes. <a href=\"http://requestb.in\">RequestBin</a> is fantastic for testing POST requests, but doesn't let you control the response. This exists to cover all kinds of HTTP scenarios. Additional endpoints are being considered.</p>\n\n<p>All endpoint responses are JSON-encoded.</p>\n\n<h2 id=\"EXAMPLES\">EXAMPLES</h2>\n\n<h3 id=\"-curl-http-httpbin-org-ip\">$ curl https://httpbingo.org/ip</h3>\n\n<pre><code>{\"origin\":\"73.238.9.52, 77.83.142.42\"}\n</code></pre>\n\n<h3 id=\"-curl-http-httpbin-org-user-agent\">$ curl https://httpbingo.org/user-agent</h3>\n\n<pre><code>{\"user-agent\":\"curl/7.64.1\"}</code></pre>\n\n<h3 id=\"-curl-http-httpbin-org-get\">$ curl https://httpbingo.org/get?foo=bar</h3>\n\n<pre><code>{\n  \"args\": {\n    \"foo\": [\n      \"bar\"\n    ]\n  },\n  \"headers\": {\n    \"Accept\": [\n      \"*/*\"\n    ],\n    \"Host\": [\n      \"httpbingo.org\"\n    ],\n    \"User-Agent\": [\n      \"curl/7.64.1\"\n    ]\n  },\n  \"origin\": \"73.238.9.52, 77.83.142.42\",\n  \"url\": \"https://httpbingo.org/get?foo=bar\"\n}\n</code></pre>\n\n<h3 id=\"-curl-http-httpbin-org-dump-request\">$ curl https://httpbingo.org/dump/request?foo=bar</h3>\n\n<pre><code>GET /dump/request?foo=bar HTTP/1.1\nHost: httpbingo.org\nAccept: */*\nUser-Agent: curl/7.64.1\n</code></pre>\n\n<h3 id=\"-curl-I-http-httpbin-org-status-418\">$ curl -I https://httpbingo.org/status/418</h3>\n\n<pre><code>HTTP/1.1 418 I'm a teapot\nAccess-Control-Allow-Credentials: true\nAccess-Control-Allow-Origin: *\nX-More-Info: http://tools.ietf.org/html/rfc2324\nDate: Tue, 13 Jul 2021 13:12:37 GMT\nContent-Length: 0\n</code></pre>\n\n\n<h2 id=\"AUTHOR\">AUTHOR</h2>\n\n<p>Ported to Go by <a href=\"https://github.com/mccutchen\">Will McCutchen</a>.</p>\n<p>From <a href=\"https://httpbin.org/\">the original</a> <a href=\"https://kennethreitz.org/\">Kenneth Reitz</a> project.</p>\n\n<h2 id=\"SEE-ALSO\">SEE ALSO</h2>\n\n<p><a href=\"https://httpbin.org/\">httpbin.org</a> &mdash; the original httpbin</p>\n\n</div>\n\n<a href=\"https://github.com/mccutchen/go-httpbin\" class=\"github-corner\" aria-label=\"Fork me on GitHub\"><svg width=\"80\" height=\"80\" viewBox=\"0 0 250 250\" style=\"fill:#ff0083; color:#fff; position: absolute; top: 0; border: 0; right: 0;\" aria-hidden=\"true\"><path d=\"M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z\"/><path d=\"M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2\" fill=\"currentColor\" style=\"transform-origin: 130px 106px;\" class=\"octo-arm\"/><path d=\"M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>\n\n</body>\n</html>\n"},"audit_data":{"messages":["Unconditional match in SecAction. [file \"/etc/modsecurity.d/crs-demo-setvar.conf\"] [line \"11\"] [id \"100000\"] [tag \"modsecurity\"]"],"handler":"proxy-server","stopwatch":{"p1":620,"p2":749,"p3":154,"p4":3372,"p5":58,"sr":0,"sw":0,"l":0,"gc":0},"response_body_dechunked":true,"producer":["ModSecurity for Apache/2.9.10 (http://www.modsecurity.org/)","OWASP_CRS/4.25.0"],"server":"Apache/2.4.63 (Unix) OpenSSL/3.0.16","engine_mode":"ENABLED"}}