{"id":906,"date":"2012-02-09T01:51:14","date_gmt":"2012-02-08T16:51:14","guid":{"rendered":"http:\/\/blog.xcir.net\/?p=906"},"modified":"2012-02-09T01:53:23","modified_gmt":"2012-02-08T16:53:23","slug":"convert-varnishlog-output-to-easy","status":"publish","type":"post","link":"https:\/\/blog.xcir.net\/?p=906","title":{"rendered":"convert varnishlog output to easy"},"content":{"rendered":"<p>Do you use a Varnish?  I&#8217;ve been using.<br \/>\nI think to using varnishlog for VCL debugging.<\/p>\n<p>For example, the output of the varnishlog that include ESI request.<\/p>\n<h4>varnishlog(include ESI)<\/h4>\n<pre class=\"brush: plain; \">\n\r\n   13 BackendOpen  b default 192.168.1.199 36011 192.168.1.199 81  \u2605Open backend here.\r\n   13 TxRequest    b GET\r\n   13 TxURL        b \/test2.html\r\n   13 TxProtocol   b HTTP\/1.1\r\n   13 TxHeader     b User-Agent: Wget\/1.12 (linux-gnu)\r\n   13 TxHeader     b Accept: *\/*\r\n   13 TxHeader     b Host: 192.168.1.199:6081\r\n   13 TxHeader     b X-Varnish: 171551254\r\n   13 TxHeader     b Accept-Encoding: gzip\r\n   13 RxProtocol   b HTTP\/1.1\r\n   13 RxStatus     b 200\r\n   13 RxResponse   b OK\r\n   13 RxHeader     b Date: Sat, 28 Jan 2012 05:05:59 GMT\r\n   13 RxHeader     b Server: Apache\/2.2.15 (Scientific Linux)\r\n   13 RxHeader     b Last-Modified: Sat, 23 Jul 2011 08:09:05 GMT\r\n   13 RxHeader     b ETag: &quot;5a28-51-4a8b8187f8177&quot;\r\n   13 RxHeader     b Accept-Ranges: bytes\r\n   13 RxHeader     b Content-Length: 81\r\n   13 RxHeader     b Connection: close\r\n   13 RxHeader     b Content-Type: text\/html; charset=UTF-8\r\n   13 Fetch_Body   b 4(length) cls 0 mklen 1\r\n   13 Length       b 81\r\n   13 BackendClose b default  \u2605Close backend here.\r\n   13 BackendOpen  b default 192.168.1.199 36012 192.168.1.199 81  \u2605Open backend for ESI request here.\r\n   13 TxRequest    b GET\r\n   13 TxURL        b \/test3.html\r\n   13 TxProtocol   b HTTP\/1.1\r\n   13 TxHeader     b User-Agent: Wget\/1.12 (linux-gnu)\r\n   13 TxHeader     b Accept: *\/*\r\n   13 TxHeader     b Host: 192.168.1.199:6081\r\n   13 TxHeader     b X-Varnish: 171551254\r\n   13 TxHeader     b Accept-Encoding: gzip\r\n   13 RxProtocol   b HTTP\/1.1\r\n   13 RxStatus     b 200\r\n   13 RxResponse   b OK\r\n   13 RxHeader     b Date: Sat, 28 Jan 2012 05:05:59 GMT\r\n   13 RxHeader     b Server: Apache\/2.2.15 (Scientific Linux)\r\n   13 RxHeader     b Last-Modified: Sat, 23 Jul 2011 08:08:59 GMT\r\n   13 RxHeader     b ETag: &quot;5a29-14-4a8b81829c835&quot;\r\n   13 RxHeader     b Accept-Ranges: bytes\r\n   13 RxHeader     b Content-Length: 20\r\n   13 RxHeader     b Connection: close\r\n   13 RxHeader     b Content-Type: text\/html; charset=UTF-8\r\n   13 Fetch_Body   b 4(length) cls 0 mklen 1\r\n   13 Length       b 20\r\n   13 BackendClose b default  \u2605Close backend here.\r\n   12 SessionOpen  c 192.168.1.199 55115 :6081\r\n   12 ReqStart     c 192.168.1.199 55115 171551254 \u2605Start Request (\/test2.html)\r\n   12 RxRequest    c GET\r\n   12 RxURL        c \/test2.html\r\n   12 RxProtocol   c HTTP\/1.0\r\n   12 RxHeader     c User-Agent: Wget\/1.12 (linux-gnu)\r\n   12 RxHeader     c Accept: *\/*\r\n   12 RxHeader     c Host: 192.168.1.199:6081\r\n   12 RxHeader     c Connection: Keep-Alive\r\n   12 VCL_call     c recv 1 7.1\r\n   12 VCL_Log      c a\r\n   12 VCL_trace    c 2 9.1\r\n   12 VCL_Log      c b\r\n   12 VCL_trace    c 3 11.1\r\n   12 VCL_Log      c a\r\n   12 VCL_return   c lookup\r\n   12 VCL_call     c hash 18 85.5\r\n   12 Hash         c \/test2.html\r\n   12 VCL_trace    c 19 87.9\r\n   12 Hash         c 192.168.1.199:6081\r\n   12 VCL_return   c hash\r\n   12 VCL_call     c miss 22 99.5 fetch\r\n   12 Backend      c 13 default default\u3000\u2605Call backend.\r\n   12 TTL          c 171551254 RFC 120 -1 -1 1327727160 0 1327727159 0 0\r\n   12 VCL_call     c fetch 4 18.1 deliver\r\n   12 ObjProtocol  c HTTP\/1.1\r\n   12 ObjResponse  c OK\r\n   12 ObjHeader    c Date: Sat, 28 Jan 2012 05:05:59 GMT\r\n   12 ObjHeader    c Server: Apache\/2.2.15 (Scientific Linux)\r\n   12 ObjHeader    c Last-Modified: Sat, 23 Jul 2011 08:09:05 GMT\r\n   12 ObjHeader    c ETag: &quot;5a28-51-4a8b8187f8177&quot;\r\n   12 ObjHeader    c Content-Type: text\/html; charset=UTF-8\r\n   12 VCL_call     c deliver 26 116.5 deliver\r\n   12 TxProtocol   c HTTP\/1.1\r\n   12 TxStatus     c 200\r\n   12 TxResponse   c OK\r\n   12 TxHeader     c Server: Apache\/2.2.15 (Scientific Linux)\r\n   12 TxHeader     c Last-Modified: Sat, 23 Jul 2011 08:09:05 GMT\r\n   12 TxHeader     c ETag: &quot;5a28-51-4a8b8187f8177&quot;\r\n   12 TxHeader     c Content-Type: text\/html; charset=UTF-8\r\n   12 TxHeader     c Date: Sat, 28 Jan 2012 05:05:59 GMT\r\n   12 TxHeader     c X-Varnish: 171551254\r\n   12 TxHeader     c Age: 0\r\n   12 TxHeader     c Via: 1.1 varnish\r\n   12 TxHeader     c Connection: close\r\n   12 VCL_call     c recv 1 7.1  \u2605Start ESI log.\r\n   12 VCL_Log      c a\r\n   12 VCL_trace    c 2 9.1\r\n   12 VCL_Log      c b\r\n   12 VCL_trace    c 3 11.1\r\n   12 VCL_Log      c a\r\n   12 VCL_return   c lookup\r\n   12 VCL_call     c hash 18 85.5\r\n   12 Hash         c \/test3.html\r\n   12 VCL_trace    c 19 87.9\r\n   12 Hash         c 192.168.1.199:6081\r\n   12 VCL_return   c hash\r\n   12 VCL_call     c miss 22 99.5 fetch\r\n   12 Backend      c 13 default default\r\n   12 TTL          c 171551254 RFC 120 -1 -1 1327727160 0 1327727159 0 0\r\n   12 VCL_call     c fetch 4 18.1 deliver\r\n   12 ObjProtocol  c HTTP\/1.1\r\n   12 ObjResponse  c OK\r\n   12 ObjHeader    c Date: Sat, 28 Jan 2012 05:05:59 GMT\r\n   12 ObjHeader    c Server: Apache\/2.2.15 (Scientific Linux)\r\n   12 ObjHeader    c Last-Modified: Sat, 23 Jul 2011 08:08:59 GMT\r\n   12 ObjHeader    c ETag: &quot;5a29-14-4a8b81829c835&quot;\r\n   12 ObjHeader    c Content-Type: text\/html; charset=UTF-8\r\n   12 VCL_call     c deliver 26 116.5 deliver\r\n   12 Length       c 20\r\n   12 ReqEnd       c 171551254 1327727159.889132023 1327727159.890880346 -0.001736164 nan nan  \u2605Request end.\r\n   12 SessionClose c EOF mode\r\n   12 StatSess     c 192.168.1.199 55115 0 1 1 0 0 2 282 20\r\n    0 CLI          - Rd ping\r\n    0 CLI          - Wr 200 19 PONG 1327727160 1.0\r\n\n<\/pre>\n<p>little too difficult for me.<br \/>\nTherefore, I tried to make a tool to format and display.<br \/>\n<!--more--><\/p>\n<h4>varnishlog | php vltrans.php<\/h4>\n<pre class=\"brush: plain; \">\n\r\nclient ip           | 192.168.1.199\r\nclient request host | 192.168.1.199:6081\r\nclient request url  | \/test2.html\r\nresponse size       | 20 byte\r\nresponse status     | HTTP\/1.1 200 OK\r\nTotal time          | 0.0017483234405518 sec\r\nrestart count       | 0\r\nESI count           | 1\r\ncall backend        | 2 default(192.168.1.199:81) default(192.168.1.199:81)\r\nCache               | HIT:0 MISS:2\r\n------------------------------------------------------------\r\n-------------------\r\n|      recv       |\r\n-------------------\r\n         |\r\n         | trace  | vrt_count:1 vcl_line:7 vcl_pos:1\r\n         | log    | a\r\n         | trace  | vrt_count:2 vcl_line:9 vcl_pos:1\r\n         | log    | b\r\n         | trace  | vrt_count:3 vcl_line:11 vcl_pos:1\r\n         | log    | a\r\n         |        |\r\n         | return | lookup\r\n         |\r\n-------------------\r\n|      hash       |\r\n-------------------\r\n         |\r\n         | trace  | vrt_count:18 vcl_line:85 vcl_pos:5\r\n         | trace  | vrt_count:19 vcl_line:87 vcl_pos:9\r\n         |        |\r\n         | hash   | \/test2.html + 192.168.1.199:6081\r\n         | return | hash\r\n         |\r\n-------------------\r\n|      miss       |\r\n-------------------\r\n         |\r\n         | trace  | vrt_count:22 vcl_line:99 vcl_pos:5\r\n         |        |\r\n         | return | fetch\r\n         |\r\n-------------------\r\n|      fetch      |\r\n-------------------\r\n         |\r\n         | trace  | vrt_count:4 vcl_line:18 vcl_pos:1\r\n         |        |\r\n         | return | deliver\r\n         |\r\n-------------------\r\n|     deliver     |\r\n-------------------\r\n         |\r\n         | trace  | vrt_count:26 vcl_line:116 vcl_pos:5\r\n         |        |\r\n         | return | deliver\r\n         |\r\n &lt;&lt;ESI request&gt;&gt;\r\n-------------------\r\n|      recv       |\r\n-------------------\r\n         |\r\n         | trace  | vrt_count:1 vcl_line:7 vcl_pos:1\r\n         | log    | a\r\n         | trace  | vrt_count:2 vcl_line:9 vcl_pos:1\r\n         | log    | b\r\n         | trace  | vrt_count:3 vcl_line:11 vcl_pos:1\r\n         | log    | a\r\n         |        |\r\n         | return | lookup\r\n         |\r\n-------------------\r\n|      hash       |\r\n-------------------\r\n         |\r\n         | trace  | vrt_count:18 vcl_line:85 vcl_pos:5\r\n         | trace  | vrt_count:19 vcl_line:87 vcl_pos:9\r\n         |        |\r\n         | hash   | \/test3.html + 192.168.1.199:6081\r\n         | return | hash\r\n         |\r\n-------------------\r\n|      miss       |\r\n-------------------\r\n         |\r\n         | trace  | vrt_count:22 vcl_line:99 vcl_pos:5\r\n         |        |\r\n         | return | fetch\r\n         |\r\n-------------------\r\n|      fetch      |\r\n-------------------\r\n         |\r\n         | trace  | vrt_count:4 vcl_line:18 vcl_pos:1\r\n         |        |\r\n         | return | deliver\r\n         |\r\n-------------------\r\n|     deliver     |\r\n-------------------\r\n         |\r\n         | trace  | vrt_count:26 vcl_line:116 vcl_pos:5\r\n         |        |\r\n         | return | deliver\r\n         |\r\n\r\n\r\n############################################################\r\nvariable infomation.\r\n     |\r\nhash | \/test2.html + 192.168.1.199:6081\r\n------------------------------------------------------------\r\nclient.ip | 192.168.1.199\r\n\r\n------------------------------------------------------------\r\nreq.request         | GET\r\nreq.url             | \/test2.html\r\nreq.proto           | HTTP\/1.0\r\nreq.http.User-Agent | Wget\/1.12 (linux-gnu)\r\nreq.http.Accept     | *\/*\r\nreq.http.Host       | 192.168.1.199:6081\r\nreq.http.Connection | Keep-Alive\r\n\r\n------------------------------------------------------------\r\nbereq.request              | GET\r\nbereq.url                  | \/test2.html\r\nbereq.proto                | HTTP\/1.1\r\nbereq.http.User-Agent      | Wget\/1.12 (linux-gnu)\r\nbereq.http.Accept          | *\/*\r\nbereq.http.Host            | 192.168.1.199:6081\r\nbereq.http.X-Varnish       | 171551254\r\nbereq.http.Accept-Encoding | gzip\r\n\r\n------------------------------------------------------------\r\nberesp.proto               | HTTP\/1.1\r\nberesp.status              | 200\r\nberesp.response            | OK\r\nberesp.http.Date           | Sat, 28 Jan 2012 05:05:59 GMT\r\nberesp.http.Server         | Apache\/2.2.15 (Scientific Linux)\r\nberesp.http.Last-Modified  | Sat, 23 Jul 2011 08:09:05 GMT\r\nberesp.http.ETag           | &quot;5a28-51-4a8b8187f8177&quot;\r\nberesp.http.Accept-Ranges  | bytes\r\nberesp.http.Content-Length | 81\r\nberesp.http.Connection     | close\r\nberesp.http.Content-Type   | text\/html; charset=UTF-8\r\n\r\n------------------------------------------------------------\r\nobj.proto              | HTTP\/1.1\r\nobj.response           | OK\r\nobj.http.Date          | Sat, 28 Jan 2012 05:05:59 GMT\r\nobj.http.Server        | Apache\/2.2.15 (Scientific Linux)\r\nobj.http.Last-Modified | Sat, 23 Jul 2011 08:09:05 GMT\r\nobj.http.ETag          | &quot;5a28-51-4a8b8187f8177&quot;\r\nobj.http.Content-Type  | text\/html; charset=UTF-8\r\n\r\n------------------------------------------------------------\r\nresp.proto              | HTTP\/1.1\r\nresp.status             | 200\r\nresp.response           | OK\r\nresp.http.Server        | Apache\/2.2.15 (Scientific Linux)\r\nresp.http.Last-Modified | Sat, 23 Jul 2011 08:09:05 GMT\r\nresp.http.ETag          | &quot;5a28-51-4a8b8187f8177&quot;\r\nresp.http.Content-Type  | text\/html; charset=UTF-8\r\nresp.http.Date          | Sat, 28 Jan 2012 05:05:59 GMT\r\nresp.http.X-Varnish     | 171551254\r\nresp.http.Age           | 0\r\nresp.http.Via           | 1.1 varnish\r\nresp.http.Connection    | close\r\n\r\n############################################################\r\nvariable infomation.\r\n     |\r\nESI  | yes\r\nhash | \/test3.html + 192.168.1.199:6081\r\n------------------------------------------------------------\r\nbereq.request              | GET\r\nbereq.url                  | \/test3.html\r\nbereq.proto                | HTTP\/1.1\r\nbereq.http.User-Agent      | Wget\/1.12 (linux-gnu)\r\nbereq.http.Accept          | *\/*\r\nbereq.http.Host            | 192.168.1.199:6081\r\nbereq.http.X-Varnish       | 171551254\r\nbereq.http.Accept-Encoding | gzip\r\n\r\n------------------------------------------------------------\r\nberesp.proto               | HTTP\/1.1\r\nberesp.status              | 200\r\nberesp.response            | OK\r\nberesp.http.Date           | Sat, 28 Jan 2012 05:05:59 GMT\r\nberesp.http.Server         | Apache\/2.2.15 (Scientific Linux)\r\nberesp.http.Last-Modified  | Sat, 23 Jul 2011 08:08:59 GMT\r\nberesp.http.ETag           | &quot;5a29-14-4a8b81829c835&quot;\r\nberesp.http.Accept-Ranges  | bytes\r\nberesp.http.Content-Length | 20\r\nberesp.http.Connection     | close\r\nberesp.http.Content-Type   | text\/html; charset=UTF-8\r\n\r\n------------------------------------------------------------\r\nobj.proto              | HTTP\/1.1\r\nobj.response           | OK\r\nobj.http.Date          | Sat, 28 Jan 2012 05:05:59 GMT\r\nobj.http.Server        | Apache\/2.2.15 (Scientific Linux)\r\nobj.http.Last-Modified | Sat, 23 Jul 2011 08:08:59 GMT\r\nobj.http.ETag          | &quot;5a29-14-4a8b81829c835&quot;\r\nobj.http.Content-Type  | text\/html; charset=UTF-8\r\n\r\n############################################################\r\n############################################################\r\n############################################################\r\n\n<\/pre>\n<p>I think so understood without explanation.<\/p>\n<p>function summary.<\/p>\n<h4>show request summary<\/h4>\n<pre class=\"brush: plain; \">\n\r\nclient ip           | 192.168.1.199\r\nclient request host | 192.168.1.199:6081\r\nclient request url  | \/test2.html\r\nresponse size       | 20 byte\r\nresponse status     | HTTP\/1.1 200 OK\r\nTotal time          | 0.0017483234405518 sec\r\nrestart count       | 0\r\nESI count           | 1\r\ncall backend        | 2 default(192.168.1.199:81) default(192.168.1.199:81)\r\nCache               | HIT:0 MISS:2\r\n------------------------------------------------------------\r\n\n<\/pre>\n<h4>show execution sequence<\/h4>\n<pre class=\"brush: plain; \">\n\r\n &lt;&lt;ESI request&gt;&gt;  \u2605ESI or restart work is display here.\r\n-------------------\r\n|      recv       | \u2605call action name\r\n-------------------\r\n         |\r\n         | trace  | vrt_count:1 vcl_line:7 vcl_pos:1\r\n         | log    | a\r\n         | trace  | vrt_count:2 vcl_line:9 vcl_pos:1\r\n         | log    | b\r\n         | trace  | vrt_count:3 vcl_line:11 vcl_pos:1\r\n         | log    | a\r\n         |        |\r\n         | return | lookup  \u2605return value\r\n\n<\/pre>\n<h4>show variable<\/h4>\n<pre class=\"brush: plain; \">\n\r\nvariable infomation.\r\n     |\r\nESI  | yes\u3000\u2605ESI or restart work is display here.\r\nhash | \/test3.html + 192.168.1.199:6081\u3000\u2605this request used hash value.\r\n------------------------------------------------------------\r\nbereq.request              | GET\r\nbereq.url                  | \/test3.html\r\nbereq.proto                | HTTP\/1.1\r\n\n<\/pre>\n<p>I&#8217;m not quite satisfied with the code.<br \/>\nBut, it may useful.<\/p>\n<p>download here.<br \/>\n<a href=\"https:\/\/github.com\/xcir\/varnishlogTrans\">varnishlogTrans<\/a><\/p>\n<p><a href=\"http:\/\/blog.xcir.net\/index.php\/2012\/01\/varnishlog%e3%82%92%e8%a6%8b%e3%82%84%e3%81%99%e3%81%8f%e3%81%99%e3%82%8b%e3%83%84%e3%83%bc%e3%83%ab%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%81%9f\/\" title=\"varnishlog\u3092\u898b\u3084\u3059\u304f\u3059\u308b\u30c4\u30fc\u30eb\u3092\u4f5c\u3063\u3066\u307f\u305f\">\u65e5\u672c\u8a9e\u7248\u306f\u3053\u3063\u3061<\/a><\/p>\n<div class='wp_social_bookmarking_light'>        <div class=\"wsbl_hatena\"><a href='\/\/b.hatena.ne.jp\/add?mode=confirm&url=https%3A%2F%2Fblog.xcir.net%2F%3Fp%3D906&title=convert%20varnishlog%20output%20to%20easy' title='\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0' rel=nofollow class='wp_social_bookmarking_light_a' target=_blank><img src='https:\/\/blog.xcir.net\/wp-content\/plugins\/wp-social-bookmarking-light\/public\/images\/hatena.gif' alt='\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0' title='\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0' width='16' height='12' class='wp_social_bookmarking_light_img' \/><\/a><\/div>        <div class=\"wsbl_hatena_users\"><a href='\/\/b.hatena.ne.jp\/entry\/https:\/\/blog.xcir.net\/?p=906' title='\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af - convert varnishlog output to easy' rel=nofollow class='wp_social_bookmarking_light_a' target=_blank><img src='\/\/b.hatena.ne.jp\/entry\/image\/https:\/\/blog.xcir.net\/?p=906' alt='\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af - convert varnishlog output to easy' title='\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af - convert varnishlog output to easy'   class='wp_social_bookmarking_light_img' \/><\/a><\/div>        <div class=\"wsbl_facebook\"><a href='http:\/\/www.facebook.com\/share.php?u=https%3A%2F%2Fblog.xcir.net%2F%3Fp%3D906&t=convert%20varnishlog%20output%20to%20easy' title='Facebook \u306b\u30b7\u30a7\u30a2' rel=nofollow class='wp_social_bookmarking_light_a' target=_blank><img src='https:\/\/blog.xcir.net\/wp-content\/plugins\/wp-social-bookmarking-light\/public\/images\/facebook.png' alt='Facebook \u306b\u30b7\u30a7\u30a2' title='Facebook \u306b\u30b7\u30a7\u30a2' width='16' height='16' class='wp_social_bookmarking_light_img' \/><\/a><\/div>        <div class=\"wsbl_linkedin\"><a href='\/\/www.linkedin.com\/shareArticle?mini=true&url=https%3A%2F%2Fblog.xcir.net%2F%3Fp%3D906&title=convert%20varnishlog%20output%20to%20easy' title='LinkedIn \u306b\u30b7\u30a7\u30a2' rel=nofollow class='wp_social_bookmarking_light_a' target=_blank><img src='https:\/\/blog.xcir.net\/wp-content\/plugins\/wp-social-bookmarking-light\/public\/images\/linkedin.png' alt='LinkedIn \u306b\u30b7\u30a7\u30a2' title='LinkedIn \u306b\u30b7\u30a7\u30a2' width='16' height='16' class='wp_social_bookmarking_light_img' \/><\/a><\/div>        <div class=\"wsbl_twitter\"><a href=\"https:\/\/twitter.com\/share\" class=\"twitter-share-button\" data-url=\"https:\/\/blog.xcir.net\/?p=906\" data-text=\"convert varnishlog output to easy\" data-lang=\"ja\">Tweet<\/a><\/div><\/div>\n<br class='wp_social_bookmarking_light_clear' \/>\n","protected":false},"excerpt":{"rendered":"<p>Do you use a Varnish? I&#8217;ve been using. I think to using varnishlog for VCL debugging. For example, the o <a href='https:\/\/blog.xcir.net\/?p=906' class='excerpt-more'>[&#8230;]<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24,3],"tags":[5,35,36],"class_list":["post-906","post","type-post","status-publish","format-standard","hentry","category-english","category-3","tag-varnish","tag-varnishlog","tag-varnishlogtrans","category-24-id","category-3-id","post-seq-1","post-parity-odd","meta-position-corners","fix"],"_links":{"self":[{"href":"https:\/\/blog.xcir.net\/index.php?rest_route=\/wp\/v2\/posts\/906","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.xcir.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.xcir.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.xcir.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.xcir.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=906"}],"version-history":[{"count":10,"href":"https:\/\/blog.xcir.net\/index.php?rest_route=\/wp\/v2\/posts\/906\/revisions"}],"predecessor-version":[{"id":940,"href":"https:\/\/blog.xcir.net\/index.php?rest_route=\/wp\/v2\/posts\/906\/revisions\/940"}],"wp:attachment":[{"href":"https:\/\/blog.xcir.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=906"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.xcir.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=906"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.xcir.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}