Can i use application/json over application/json; charset=UTF-8 safely? - google-chrome

There is an old problem, that some browsers or HTTP clients did not interpret correctly UTF-8 special characters. To avoid it, we declare charset explicitly:
Content-type: application/json; charset=UTF-8
Since the problem is fixed in Chromium, is it safe to skip charset and use raw header:
Content-type: application/json
Or some browsers/clients still may not interpret UTF-8 special characters correctly?

Related

Reverse Engineer HTTP request

I intercepted an HTTP request on Charles originating from iPhone to Instagram and here are the headers
POST /logging_client_events HTTP/1.1
Host: graph.instagram.com
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Connection: keep-alive
Accept: */*
User-Agent: Instagram 10.0.1 (iPhone8,1; iOS 10_1_1; en_IN; en-IN; en; scale=2.00; 750x1334) AppleWebKit/420+
Accept-Language: en-IN;q=1.0, hi-IN;q=0.9,
Content-Length: 1601
Accept-Encoding: gzip, deflate
There is a Post data as well in the request that is compressed. My question is how can I uncompress the Post data? Perhaps any method in NSData that can decompress?
EDIT: Here is the complete HTTP request
POST /logging_client_events HTTP/1.1
Host: graph.instagram.com
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Connection: keep-alive
Accept: */*
User-Agent: Instagram 10.3.0 (iPhone8,1; iOS 10_1_1; en_IN; en-IN; scale=2.00; gamut=normal; 750x1334) AppleWebKit/420+
Accept-Language: en-IN;q=1, hi-IN;q=0.9
Content-Length: 4585
Accept-Encoding: gzip, deflate
message=eNrtXG1v4kgS%2FiunfLqTAupXtzvSfiAxZInOZsmQEPt0sowxYGNj1jZDYLX326%2FaMBNICJMsZCajTUZRwO6XqvJT1c%2FTtuePE286dcP%2BydkJJgwRxgUjumCYnZyezMrjCD4VYRKcnGGmU0GIQKiKGEWUnZa9PweZ6o6qtIr%2B8U%2BmIYGEwP%2BCbv3gc%2BgH6%2BHPBdcb51rFuJCNCmsYuKJf6EZFq%2BlMN2pGDV0I6DLwkjBeuJs9Gb1gBqnXK3rDqFfAPKMi8UWtYvCaIKyGOZM16JkHeR6mk1Wf8xqqo4sGhuYNvcIouaicn2ukQhr8HLzQ5LlGlYFe4Z2c%2FeePkyTtz2JwUTkExyee8vdkHvTy1B8Hheunk0ngF65XFEEyLR6HRJOkyhETQp6eBPdFBoP%2BcTIdwxCE6IxSHWvs5M8%2FT5%2BbKBy6vwducD9N81kW7Bxdl4xvDD7M0tkUehZBXrhgZOjFysgCGrgQBD8Og4kys4zGhhGnT8xSg06DDCaEDqUpYZq7gyDou7NB6GZBP8jD4eRg8zmjz9h%2FgJm59zk40DJJBZI7LMvSOE5nhxq3CmSRpnERTh9ZujoFneJwEjzYnAVB7IIxCzdMptkK1bss1zHBSGxYXvYBT8NC9ThDu%2ByMQ7CpnMFPZ8pYaFX220of1vOQlJT3PU2ygAVSoCDQexj7cuB5PoGBklkB1j8ayXOfzjjycjdZlC3LNp%2FDYP605ySYPz4U5u6Xo%2BD3kUMnNKy%2Fy9BxRDgl6L0GjhCKtPcYOCw1LHWpi3cbOU0I%2Bh4jxwXXpIDL%2Bl4jR%2BHL%2B0xWiTSJEf3ekQsneeENMy9x02zoTULfzWe9b0WRYUQ2gpinswwYVjpwPX8VxyezJS5YiNXf8P6ZMH9JPqYLKAyA8cdE7KG1SwhCmoHrFUSpVmE65hXJiKzUmDwX9QuBGoZWzroekmANuCb0pPCLMMLu1jTghz8OJ0NYXMeBMj9YXC29bn9m311jP7kJW2Ez%2FPfF1dy%2Bi%2FMeaYyb0VQ0k3h5Rxozu3vP%2B5dx5GOJ%2FKQReeRWnUf%2B5DaGPkvn7orA76B%2FKTOny9RY95YxXFrLOrIMe2EZTTIw6siM6sSM%2FLnZsZG5rBPLqN2bRkM3oyazDHPZMuDYr3NiR7W5Y9jEurSxZViRc2mFrc7VuHXZntvLm3tzeTuyl6NRq9tcOJGN7ChO7ATmjBqh1akRK7LnLaMxhvMwvjW2E5s1w3nYv7udOhdNrRn53InaBNou7K4zbnXgcxfGTG4jJ2kvra6JreUNjNskZqe9AHsX1rIG47eXpe1GfW5%2BupLgu%2FIb4ihnzSjFg%2FYvvyhWrrjQ3AXUFbNcIaX8DsE%2FjHsBJoXcxQo79U%2BdQ8nr57AfpK4fxLHrzYp0GkPy92bDAWB52%2BiV1niwe831FYT9kTcZ7jZdSkz2sf3TjXGUlAgH4dYxlbLFYqomvOhce%2F0wrfk%2BZE4n8EeTNE6Hi18%2FGb%2FVngY4Dn2vWCX52uDYm038kTvLvV6801hJgVNsqoe1yxCw30bpJNBPMXRL85WMw1X1LZyEBaSWux48gZOYy6rATEisqbKn3H%2Fq9Zd%2BE8BL2QlxGFAirlP40TQQjT1IXHWlJ31XtT45G3hxHjx0VQUJqrfqrWFRFZqmC45AnGJNf2i1crdspUtcZYKXhjGuYfqCoE1n%2BQiMLOC6rE7BylAUCtK7AsigdG1Wz57XHwYwc5HNwHAvDrLi67dcefb1246aCZpZZdKuS1eO605mSU%2BJaii5sQf67snRzJt%2FNfdM7MnBfpgp2ToLXciSwU7XBCZiExuDMIMppx7gfu0CrCqzWKVXPishujMP1XpXLk299F7Ns4J2Fvw%2BUwq1nBaOpgXo1P4sW12MM03yPcZngRerjipVcj8Le8E%2B%2FS2FBgDbcORrd0j%2B0IfxZnmQVfo5qTwY%2Fj%2By05nHM09LgHgxHO8voKSFubrcJWz32F%2Fq8UnhxqnXD%2Fo7bdYZQZs2f%2BmyDt90lBbpTgs3x15F9wwyF2LAOWFSSp0gjT40g5WiGAFUONpj78N2Rz%2Fsu%2Bk02EEkaFVyjW9JgFfsczy9ojvCwqqUUV2KvcX1hRf3lUQ0CwYA9tEumxgVQtP32nQ0zjkHLrnOtcEs%2FpKGO5noptlfUDMJinmajU9eSkLl42HWcGJaWRtQ%2BaMh%2FojkHpPlQ3w5FpQ8z%2FLpj1OWXFAJRIXoj2k%2BfkWED6L5iRdOVqxmD0Kh%2FGl4u%2F7lJffw07ivVpysgDEKf7SzoKy4HRjcV1MDVd%2BXx%2BWmsbIujstKnu%2ByR6dsfw4PehvjQCUocf4XBdA%2BcPEqSDQh5VupH5iDalIyio6qfiB%2BkhMuIAmRjqi7Nc0u9bPF3JWK%2BaYamlixP3FiP5aoR4q4FyolUUctw6SgYEirY3Jr6egrxQDqxxhjM7qhoIIWpjGcm3S%2BMKMhKB%2BTKRUBimhhdYb3ZtSmLaOf2F2lgGrcItdjk0CbaBRb3Zt767IRgWpatDo3S%2BvyOjSN25G1HHOrcwuqyEdWtxFZl%2FW51QFldGkqu6eg1Ea9pJEHd9dTm1qD%2Fq9XIxtsVuoHPmPn04YaSurUvFRKChTU0kocpXK61siM%2Bgkoqhj%2BhjAfKn14zrfFlXyl%2BnkxWFdL4HS1Q78LrJJpfw2sL1PoquNq%2BjMCpIEzqm5eYCY1rn8I8J9ZgL9qw2i9dn2zdEqdvg6Nz1v7gNRduHwp8p6i%2FAOL3wuLB%2BgdXuVcl1sc5TC9owuNcK2U%2FRTUn%2FZKvfMCewWMLI9mL0NIMkkFCDRo9gJ5dhT6o1Up4tv3OF9Nf%2FYtLQQxSoSG9OOyH0AKXF%2FEKcKYcndzlh9BflirYzNraQMpMSHD60vr7jH5sbnTGUJmQmYvx3Oze4PtTj80gciYBLK0cx1bSXthL60I%2Fo1tYlKr40Sm0ZxDJcGQ%2FcRW5KdTh6rgjFQGty6b34P8PPXt06vJzwj0fKr2WhfJYP30gNrb29CBfpokwaSvzoBW%2FxZkCSF4r3pYPZ1CYIXgjAssHvagnjVl656RFw%2FTLCxGyVengix3H46%2BsXtQucgL%2FKOQBpQTTfBX%2BYd%2FuH8gsrWXXD8oA1AWQem8yj%2By7Z%2FarXQzbzJ%2B1r9XFX6tyiRQDXG0wg%2FsWpdclBtzmKoHpx5XfinfQEuIKpFcZ%2FhnEL5bmoRwXRMCwbKlCZ2QD1n8t5DFL9AjCtEaouJjK%2BcDs%2B8Cs%2FvByghUsoPASvaBdePxk%2BNhVehch%2FVYEPiCBIywMcsPgKrPAIZzuKRwTknsGgUJ%2FQiqFpDoxtjstplFmthOGqHT8e%2FtTmNkR6OxgoDVuQZJPeROtxG2jPHcAahanThRnxUdb3Vux3b3BjnGVWR2AeCdm%2B8A1R2%2BXfyYXUcB0lwAzfwJNOIGUcBVrHON6QgopA5Vln0oyJ9YQR6XJ3C12vKPPY8PxL4dYl8lKgGSsLSS4%2B0mIoAGI7S8QY8Zpk%2F3EzVMDng%2BT1fPkyB%2B%2FJc2wAd1KzyfppM8zSAFY68XxErkfw6y%2FKD3OfQqIUKQNzB6%2FThhmqkHqsrHC4P5NM3UNRkOD4SGXqVUbD1fduh2g0YkxuWDQAA89VbSqzbGvx1lxgEZ2ptAI1x7nrqjcDiK4bd4DhpHoT56lYNZVPsJWPoG9UFV9QCqDiuE2uAB1v7B4f8OHH4f59GrwBw0chDnYXs5j65qKxXiyKRHI5rOOdQqwojmbk3zHcHa%2F8p6LHXMuMGtzpibUXthTR6D9Ta0uzazI8VynLGdXIV2p4nUPgiwHdS6tACw1xGwHYBQY%2BR04XPHiR3DX9qJAqpJHWNIACwwd3PRMtrcSerfBKsDx31ykzcnt9jrtsHXq5G1PA%2FNxFZAXDqJuu%2FcgLma1Insewf%2B2pHPLaPGzNX9adZS96ujIbbAt1Zpsx0O7tCbsR5ZRYKgIy5t6gU5QAyQHqxID%2FtON1FlVTABMx%2BSXPzHJBfGnHDJOOLsfSTXPVTmBQAQaH8NP1kJLq9CVelNVdWXQ%2BokbSUxVHIxc9kGMI8XZqKSq87MLlT6y%2Fa93W1je3kFssOcW0lz6VzeLCDhIAmdEFYPkBW175ZcICXU5iMcv4EVq%2F3GyaVrkqMjSgoGDeQ6u7g4ZnI9T8HK%2F0%2BASibJz7BybXMwiBaVYLxAAutU%2F1jYfuaF7Rksqzdn1OszvsqDMqFyN1N3wrOnObnGsvjWywvr3usnnv97egIq8kvOrv7vBjf4vMqVPPgdoPbn%2FwGSB1Nz&compressed=1&access_token=124024574287414%7C84a456d620314b6e92a16d8ff1c792dc&format=json
TL;DR: use the following command line to decode such messages:
ipython -c "import zlib, base64, urllib; m='<message>';zlib.decompress(base64.decodestring(urllib.unquote(m)))"
While replacing <message> with the post parameter.
Full details:
This request uses several encoders one on top of another, but all encoders used are easily recognisable by an experienced researcher and probably experienced web developer.
By the characters appearing in the message POST argument, it's easy to identify the format is base64 encoding. However, percent characters (%) stand out as they're not part of the base64 character set. After further review it is easy to see a percent sign is always followed by only a few selection of characters (%2B, %2F). These are url encoded characters (specifically '+' and '/', respectively), both part of the base64 character set.
Thus, that string should be urldecoded and then base64 decoded, and we end up getting a more cryptic string as a result, but luckily no errors:
x\xda\xed\\mo\xe2H\x12\xfe+\xa7|\xba\x93\x02\xeaW\xb7;\xd2~
<snip>
The string consists of both printable and non-printable characters, but the first two characters, x\xda (or \x78\xda) have an important meaning as they're markers for a zlib compressed stream.
For example, running that one-line with your message would look exactly like that:
nir$ ipython -c "import zlib, base64, urllib; m='eNrtXG1v4kgS%2FiunfLqTAupXtzvSfiAxZInOZsmQEPt0sowxYGNj1jZDYLX326%2FaMBNICJMsZCajTUZRwO6XqvJT1c%2FTtuePE286dcP%2BydkJJgwRxgUjumCYnZyezMrjCD4VYRKcnGGmU0GIQKiKGEWUnZa9PweZ6o6qtIr%2B8U%2BmIYGEwP%2BCbv3gc%2BgH6%2BHPBdcb51rFuJCNCmsYuKJf6EZFq%2BlMN2pGDV0I6DLwkjBeuJs9Gb1gBqnXK3rDqFfAPKMi8UWtYvCaIKyGOZM16JkHeR6mk1Wf8xqqo4sGhuYNvcIouaicn2ukQhr8HLzQ5LlGlYFe4Z2c%2FeePkyTtz2JwUTkExyee8vdkHvTy1B8Hheunk0ngF65XFEEyLR6HRJOkyhETQp6eBPdFBoP%2BcTIdwxCE6IxSHWvs5M8%2FT5%2BbKBy6vwducD9N81kW7Bxdl4xvDD7M0tkUehZBXrhgZOjFysgCGrgQBD8Og4kys4zGhhGnT8xSg06DDCaEDqUpYZq7gyDou7NB6GZBP8jD4eRg8zmjz9h%2FgJm59zk40DJJBZI7LMvSOE5nhxq3CmSRpnERTh9ZujoFneJwEjzYnAVB7IIxCzdMptkK1bss1zHBSGxYXvYBT8NC9ThDu%2ByMQ7CpnMFPZ8pYaFX220of1vOQlJT3PU2ygAVSoCDQexj7cuB5PoGBklkB1j8ayXOfzjjycjdZlC3LNp%2FDYP605ySYPz4U5u6Xo%2BD3kUMnNKy%2Fy9BxRDgl6L0GjhCKtPcYOCw1LHWpi3cbOU0I%2Bh4jxwXXpIDL%2Bl4jR%2BHL%2B0xWiTSJEf3ekQsneeENMy9x02zoTULfzWe9b0WRYUQ2gpinswwYVjpwPX8VxyezJS5YiNXf8P6ZMH9JPqYLKAyA8cdE7KG1SwhCmoHrFUSpVmE65hXJiKzUmDwX9QuBGoZWzroekmANuCb0pPCLMMLu1jTghz8OJ0NYXMeBMj9YXC29bn9m311jP7kJW2Ez%2FPfF1dy%2Bi%2FMeaYyb0VQ0k3h5Rxozu3vP%2B5dx5GOJ%2FKQReeRWnUf%2B5DaGPkvn7orA76B%2FKTOny9RY95YxXFrLOrIMe2EZTTIw6siM6sSM%2FLnZsZG5rBPLqN2bRkM3oyazDHPZMuDYr3NiR7W5Y9jEurSxZViRc2mFrc7VuHXZntvLm3tzeTuyl6NRq9tcOJGN7ChO7ATmjBqh1akRK7LnLaMxhvMwvjW2E5s1w3nYv7udOhdNrRn53InaBNou7K4zbnXgcxfGTG4jJ2kvra6JreUNjNskZqe9AHsX1rIG47eXpe1GfW5%2BupLgu%2FIb4ihnzSjFg%2FYvvyhWrrjQ3AXUFbNcIaX8DsE%2FjHsBJoXcxQo79U%2BdQ8nr57AfpK4fxLHrzYp0GkPy92bDAWB52%2BiV1niwe831FYT9kTcZ7jZdSkz2sf3TjXGUlAgH4dYxlbLFYqomvOhce%2F0wrfk%2BZE4n8EeTNE6Hi18%2FGb%2FVngY4Dn2vWCX52uDYm038kTvLvV6801hJgVNsqoe1yxCw30bpJNBPMXRL85WMw1X1LZyEBaSWux48gZOYy6rATEisqbKn3H%2Fq9Zd%2BE8BL2QlxGFAirlP40TQQjT1IXHWlJ31XtT45G3hxHjx0VQUJqrfqrWFRFZqmC45AnGJNf2i1crdspUtcZYKXhjGuYfqCoE1n%2BQiMLOC6rE7BylAUCtK7AsigdG1Wz57XHwYwc5HNwHAvDrLi67dcefb1246aCZpZZdKuS1eO605mSU%2BJaii5sQf67snRzJt%2FNfdM7MnBfpgp2ToLXciSwU7XBCZiExuDMIMppx7gfu0CrCqzWKVXPishujMP1XpXLk299F7Ns4J2Fvw%2BUwq1nBaOpgXo1P4sW12MM03yPcZngRerjipVcj8Le8E%2B%2FS2FBgDbcORrd0j%2B0IfxZnmQVfo5qTwY%2Fj%2By05nHM09LgHgxHO8voKSFubrcJWz32F%2Fq8UnhxqnXD%2Fo7bdYZQZs2f%2BmyDt90lBbpTgs3x15F9wwyF2LAOWFSSp0gjT40g5WiGAFUONpj78N2Rz%2Fsu%2Bk02EEkaFVyjW9JgFfsczy9ojvCwqqUUV2KvcX1hRf3lUQ0CwYA9tEumxgVQtP32nQ0zjkHLrnOtcEs%2FpKGO5noptlfUDMJinmajU9eSkLl42HWcGJaWRtQ%2BaMh%2FojkHpPlQ3w5FpQ8z%2FLpj1OWXFAJRIXoj2k%2BfkWED6L5iRdOVqxmD0Kh%2FGl4u%2F7lJffw07ivVpysgDEKf7SzoKy4HRjcV1MDVd%2BXx%2BWmsbIujstKnu%2ByR6dsfw4PehvjQCUocf4XBdA%2BcPEqSDQh5VupH5iDalIyio6qfiB%2BkhMuIAmRjqi7Nc0u9bPF3JWK%2BaYamlixP3FiP5aoR4q4FyolUUctw6SgYEirY3Jr6egrxQDqxxhjM7qhoIIWpjGcm3S%2BMKMhKB%2BTKRUBimhhdYb3ZtSmLaOf2F2lgGrcItdjk0CbaBRb3Zt767IRgWpatDo3S%2BvyOjSN25G1HHOrcwuqyEdWtxFZl%2FW51QFldGkqu6eg1Ea9pJEHd9dTm1qD%2Fq9XIxtsVuoHPmPn04YaSurUvFRKChTU0kocpXK61siM%2Bgkoqhj%2BhjAfKn14zrfFlXyl%2BnkxWFdL4HS1Q78LrJJpfw2sL1PoquNq%2BjMCpIEzqm5eYCY1rn8I8J9ZgL9qw2i9dn2zdEqdvg6Nz1v7gNRduHwp8p6i%2FAOL3wuLB%2BgdXuVcl1sc5TC9owuNcK2U%2FRTUn%2FZKvfMCewWMLI9mL0NIMkkFCDRo9gJ5dhT6o1Up4tv3OF9Nf%2FYtLQQxSoSG9OOyH0AKXF%2FEKcKYcndzlh9BflirYzNraQMpMSHD60vr7jH5sbnTGUJmQmYvx3Oze4PtTj80gciYBLK0cx1bSXthL60I%2Fo1tYlKr40Sm0ZxDJcGQ%2FcRW5KdTh6rgjFQGty6b34P8PPXt06vJzwj0fKr2WhfJYP30gNrb29CBfpokwaSvzoBW%2FxZkCSF4r3pYPZ1CYIXgjAssHvagnjVl656RFw%2FTLCxGyVengix3H46%2BsXtQucgL%2FKOQBpQTTfBX%2BYd%2FuH8gsrWXXD8oA1AWQem8yj%2By7Z%2FarXQzbzJ%2B1r9XFX6tyiRQDXG0wg%2FsWpdclBtzmKoHpx5XfinfQEuIKpFcZ%2FhnEL5bmoRwXRMCwbKlCZ2QD1n8t5DFL9AjCtEaouJjK%2BcDs%2B8Cs%2FvByghUsoPASvaBdePxk%2BNhVehch%2FVYEPiCBIywMcsPgKrPAIZzuKRwTknsGgUJ%2FQiqFpDoxtjstplFmthOGqHT8e%2FtTmNkR6OxgoDVuQZJPeROtxG2jPHcAahanThRnxUdb3Vux3b3BjnGVWR2AeCdm%2B8A1R2%2BXfyYXUcB0lwAzfwJNOIGUcBVrHON6QgopA5Vln0oyJ9YQR6XJ3C12vKPPY8PxL4dYl8lKgGSsLSS4%2B0mIoAGI7S8QY8Zpk%2F3EzVMDng%2BT1fPkyB%2B%2FJc2wAd1KzyfppM8zSAFY68XxErkfw6y%2FKD3OfQqIUKQNzB6%2FThhmqkHqsrHC4P5NM3UNRkOD4SGXqVUbD1fduh2g0YkxuWDQAA89VbSqzbGvx1lxgEZ2ptAI1x7nrqjcDiK4bd4DhpHoT56lYNZVPsJWPoG9UFV9QCqDiuE2uAB1v7B4f8OHH4f59GrwBw0chDnYXs5j65qKxXiyKRHI5rOOdQqwojmbk3zHcHa%2F8p6LHXMuMGtzpibUXthTR6D9Ta0uzazI8VynLGdXIV2p4nUPgiwHdS6tACw1xGwHYBQY%2BR04XPHiR3DX9qJAqpJHWNIACwwd3PRMtrcSerfBKsDx31ykzcnt9jrtsHXq5G1PA%2FNxFZAXDqJuu%2FcgLma1Insewf%2B2pHPLaPGzNX9adZS96ujIbbAt1Zpsx0O7tCbsR5ZRYKgIy5t6gU5QAyQHqxID%2FtON1FlVTABMx%2BSXPzHJBfGnHDJOOLsfSTXPVTmBQAQaH8NP1kJLq9CVelNVdWXQ%2BokbSUxVHIxc9kGMI8XZqKSq87MLlT6y%2Fa93W1je3kFssOcW0lz6VzeLCDhIAmdEFYPkBW175ZcICXU5iMcv4EVq%2F3GyaVrkqMjSgoGDeQ6u7g4ZnI9T8HK%2F0%2BASibJz7BybXMwiBaVYLxAAutU%2F1jYfuaF7Rksqzdn1OszvsqDMqFyN1N3wrOnObnGsvjWywvr3usnnv97egIq8kvOrv7vBjf4vMqVPPgdoPbn%2FwGSB1Nz'; zlib.decompress(base64.decodestring(urllib.unquote(m)))"
Final result is:
{"app_id":"124024574287414","uid":"0","time":1483722700.043034,"app_ver":"10.3.0 (46070771)","device_id":"1B758FB6-DC9F-4FD1-8C8D-6A848DADA0C7","family_device_id":"43C4D2EE-8FDE-428D-91CA-D5A724A1549A","session_id":"BA0E0CF1-42F8-432C-BB62-2F5B48369B63","data":[{"module":"app","name":"websocket_connect_attempt","time":1483722692.504779,"extra":{"pk":"2284338164"}},{"module":"app","name":"ig_qe_exposure","time":1483722692.58945,"extra":{"group":"test_social_context_on_client","id":"2284338164","pk":"2284338164","experiment":"ig_ios_feed_ufi_redesign"}},{"module":"app","name":"ig_qe_exposure","time":1483722692.589543,"extra":{"group":"test","id":"2284338164","pk":"2284338164","experiment":"ig_ios_save"}},{"module":"app","name":"ig_qe_exposure","time":1483722692.593709,"extra":{"group":"rollout","id":"2284338164","pk":"2284338164","experiment":"ig_ios_save_feed_tooltip"}},{"module":"feed_timeline","name":"reel_tray_impression","time":1483722692.812107,"extra":{"tray_position":0,"pk":"2284338164","live_reel_count":0,"tray_session_id":"4ba09935da694e4e970ee8b11c9faac2","muted_reel_count":0,"a_pk":"2284338164","has_my_reel":0,"viewed_reel_count":0,"new_reel_count":0,"is_new_reel":1}},{"module":"feed_timeline","name":"reel_tray_impression","time":1483722692.817618,"extra":{"tray_position":0,"pk":"2284338164","live_reel_count":0,"tray_session_id":"4ba09935da694e4e970ee8b11c9faac2","muted_reel_count":0,"a_pk":"25025320","has_my_reel":0,"viewed_reel_count":0,"new_reel_count":0,"is_new_reel":1}},{"module":"feed_timeline","name":"reel_tray_impression","time":1483722692.822306,"extra":{"tray_position":0,"pk":"2284338164","live_reel_count":0,"tray_session_id":"4ba09935da694e4e970ee8b11c9faac2","muted_reel_count":0,"a_pk":"196198987","has_my_reel":0,"viewed_reel_count":0,"new_reel_count":0,"is_new_reel":1}},{"module":"feed_timeline","name":"reel_tray_impression","time":1483722692.826773,"extra":{"tray_position":0,"pk":"2284338164","live_reel_count":0,"tray_session_id":"4ba09935da694e4e970ee8b11c9faac2","muted_reel_count":0,"a_pk":"575697306","has_my_reel":0,"viewed_reel_count":0,"new_reel_count":0,"is_new_reel":1}},{"module":"feed_timeline","name":"reel_tray_impression","time":1483722692.831488,"extra":{"tray_position":0,"pk":"2284338164","live_reel_count":0,"tray_session_id":"4ba09935da694e4e970ee8b11c9faac2","muted_reel_count":0,"a_pk":"290691036","has_my_reel":0,"viewed_reel_count":0,"new_reel_count":0,"is_new_reel":1}},{"module":"feed_timeline","name":"instagram_organic_sub_impression","time":1483722692.84102,"extra":{"source_of_action":"feed_timeline","m_t":1,"m_ix":0,"pk":"2284338164","a_pk":"1487230826","session_id":"2284338164_22006D1E-0336-4815-9429-A49B7EC70FD6","m_pk":"1421627016431640101_1487230826","tracking_token":"eyJzaWduYXR1cmUiOiIiLCJwYXlsb2FkIjp7ImlzX2FuYWx5dGljc190cmFja2VkIjp0cnVlLCJzZXJ2ZXJfdG9rZW4iOiIxNDgzNzE0NDYyNDI2fDE0MjE2MjcwMTY0MzE2NDAxMDF8MjI4NDMzODE2NHw2YjAwZDY2NGY1NDNjZGNiOTJkOGQwYzUxMzVhYzhhOWIyZjY0YjlmYmIxNjFiNTA2NjYwODFkOWIxMDNkYmY4IiwidXVpZCI6Ijc5ZjQ2NTAyYWZkOTQ2NWVhYmVjZmQzNWM1NzU0YjI2MTQyMTYyNzAxNjQzMTY0MDEwMSJ9LCJ2ZXJzaW9uIjo1fQ==","follow_status":"following"}},{"module":"app","name":"ig_qe_exposure","time":1483722692.841793,"extra":{"group":"TEST","id":"2284338164","pk":"2284338164","experiment":"ig_ios_feed_video_cell_autoplay_bugfix"}},{"module":"device","name":"connection_change","time":1483722692.899129,"extra":{"pk":"2284338164","connection":"wifi","connection_subtype":"CTRadioAccessTechnologyHSDPA"}},{"module":"application","name":"launch_usable","time":1483722692.932535,"extra":{"device":"iPhone8,1","os":"10.1.1","init_to_launch_ms":159.7147916691029,"pk":"2284338164","init_to_now_ms":1051.190583333664,"background_init":false,"init_to_active_ms":617.7668750024168,"init_to_usable_ms":891.4757916645613}},{"module":"application","name":"push_notification_setting","time":1483722692.940062,"extra":{"badges":true,"alerts":true,"sounds":true,"pk":"2284338164","app_state":"launch_usable","badge_number":0,"last_badge_number":0,"raw_setting":7}},{"module":"app","name":"direct_ui_perf","time":1483722692.971275,"extra":{"first_page":true,"result":"success","pk":"2284338164","view":"inbox","type":"request_time","total_duration":695}},{"module":"app","name":"realtime_subscribe_attempt","time":1483722692.976333,"extra":{"realtime_topic":"user-ds2-2284338164~2","pk":"2284338164","realtime_subscription_already_exists":false}},{"module":"app","name":"content_loaded","time":1483722692.984203,"extra":{"content_type":"photo","pk":"2284338164","content_load_time":0.1976552499982063,"content_width":750}},{"module":"app","name":"websocket_did_open","time":1483722693.956506,"extra":{"pk":"2284338164"}},{"module":"app","name":"realtime_subscribed","time":1483722694.343897,"extra":{"pk":"2284338164","realtime_topic":"user-ds2-2284338164~2"}},{"module":"feed_timeline","name":"reel_tray_refresh","time":1483722694.437768,"extra":{"pk":"2284338164","live_reel_count":0,"tray_session_id":"4ba09935da694e4e970ee8b11c9faac2","was_successful":true,"muted_reel_count":0,"tray_refresh_type":"network","viewed_reel_count":0,"new_reel_count":9,"tray_refresh_time":0.4671275000000605,"has_my_reel":1}},{"module":"feed_timeline","name":"reel_tray_impression","time":1483722694.451732,"extra":{"tray_position":3,"pk":"2284338164","live_reel_count":0,"tray_session_id":"4ba09935da694e4e970ee8b11c9faac2","muted_reel_count":0,"a_pk":"1573917928","has_my_reel":1,"viewed_reel_count":0,"new_reel_count":9,"is_new_reel":1}},{"module":"feed_timeline","name":"instagram_main_feed_refresh","time":1483722694.63361,"extra":{"reason":"cold_start_fetch","pk":"2284338164","status_code":"200"}},{"module":"app","name":"app_installations","time":1483722694.8347,"extra":{"pk":"2284338164","fbapp_installed":true}},{"module":"feed_timeline","name":"instagram_organic_impression","time":1483722695.036799,"extra":{"source_of_action":"feed_timeline","m_t":1,"m_ix":0,"pk":"2284338164","a_pk":"2263699430","session_id":"2284338164_22006D1E-0336-4815-9429-A49B7EC70FD6","m_pk":"1421834952577120803_2263699430","tracking_token":"eyJ2ZXJzaW9uIjo1LCJzaWduYXR1cmUiOiIiLCJwYXlsb2FkIjp7InNlcnZlcl90b2tlbiI6IjE0ODM3MjI2OTM5NzZ8MTQyMTgzNDk1MjU3NzEyMDgwM3wyMjg0MzM4MTY0fDEyNTgxMjQ3ODdmYWMzODA5N2RkM2M4MjhlNWUxNGFjMjcyOTUzNGRiMDVhNzk5NTViOTc0NWFjNGEwNTUxMGMiLCJpc19hbmFseXRpY3NfdHJhY2tlZCI6dHJ1ZSwidXVpZCI6ImE3MGIyZjIxNzNmZjQzMWNhMjdmNjFlMjdiNzk0MDgwMTQyMTgzNDk1MjU3NzEyMDgwMyJ9fQ==","follow_status":"following"}},{"module":"feed_timeline","name":"instagram_organic_time_spent","time":1483722695.036946,"extra":{"source_of_action":"feed_timeline","m_t":1,"pk":"2284338164","a_pk":"1487230826","timespent":2.195435047149658,"m_pk":"1421627016431640101_1487230826","tracking_token":"eyJzaWduYXR1cmUiOiIiLCJwYXlsb2FkIjp7ImlzX2FuYWx5dGljc190cmFja2VkIjp0cnVlLCJzZXJ2ZXJfdG9rZW4iOiIxNDgzNzE0NDYyNDI2fDE0MjE2MjcwMTY0MzE2NDAxMDF8MjI4NDMzODE2NHw2YjAwZDY2NGY1NDNjZGNiOTJkOGQwYzUxMzVhYzhhOWIyZjY0YjlmYmIxNjFiNTA2NjYwODFkOWIxMDNkYmY4IiwidXVpZCI6Ijc5ZjQ2NTAyYWZkOTQ2NWVhYmVjZmQzNWM1NzU0YjI2MTQyMTYyNzAxNjQzMTY0MDEwMSJ9LCJ2ZXJzaW9uIjo1fQ==","follow_status":"following"}},{"module":"feed_timeline","name":"instagram_organic_sub_viewed_impression","time":1483722695.036983,"extra":{"source_of_action":"feed_timeline","follow_status":"following","m_t":1,"a_pk":"1487230826","m_pk":"1421627016431640101_1487230826","pk":"2284338164","tracking_token":"eyJzaWduYXR1cmUiOiIiLCJwYXlsb2FkIjp7ImlzX2FuYWx5dGljc190cmFja2VkIjp0cnVlLCJzZXJ2ZXJfdG9rZW4iOiIxNDgzNzE0NDYyNDI2fDE0MjE2MjcwMTY0MzE2NDAxMDF8MjI4NDMzODE2NHw2YjAwZDY2NGY1NDNjZGNiOTJkOGQwYzUxMzVhYzhhOWIyZjY0YjlmYmIxNjFiNTA2NjYwODFkOWIxMDNkYmY4IiwidXVpZCI6Ijc5ZjQ2NTAyYWZkOTQ2NWVhYmVjZmQzNWM1NzU0YjI2MTQyMTYyNzAxNjQzMTY0MDEwMSJ9LCJ2ZXJzaW9uIjo1fQ=="}},{"module":"app","name":"content_loaded","time":1483722695.558961,"extra":{"content_type":"photo","pk":"2284338164","content_load_time":0.8762567916637636,"content_width":750}},{"module":"app","name":"content_loaded","time":1483722695.576639,"extra":{"content_type":"photo","pk":"2284338164","content_load_time":0.400949374998163,"content_width":750}},{"module":"feed_timeline","name":"instagram_organic_impression","time":1483722696.305709,"extra":{"source_of_action":"feed_timeline","m_t":1,"m_ix":1,"pk":"2284338164","a_pk":"204327608","session_id":"2284338164_22006D1E-0336-4815-9429-A49B7EC70FD6","m_pk":"1421889687605301135_204327608","tracking_token":"eyJ2ZXJzaW9uIjo1LCJzaWduYXR1cmUiOiIiLCJwYXlsb2FkIjp7InNlcnZlcl90b2tlbiI6IjE0ODM3MjI2OTM5NzZ8MTQyMTg4OTY4NzYwNTMwMTEzNXwyMjg0MzM4MTY0fDY5ZTgwODY2NzkwMWU1YTdiMGEwM2NkYTRlNmQyYzNjNjNkY2M3NTZjMDIwNzE1OGQ2YTc0NTE1NDZhZjQ2OGIiLCJpc19hbmFseXRpY3NfdHJhY2tlZCI6dHJ1ZSwidXVpZCI6ImE3MGIyZjIxNzNmZjQzMWNhMjdmNjFlMjdiNzk0MDgwMTQyMTg4OTY4NzYwNTMwMTEzNSJ9fQ==","follow_status":"following"}},{"module":"hscroll_aymf_feed_unit","name":"recommended_user_impression","time":1483722696.32221,"extra":{"pk":"2284338164","uid":"2316545717","view":"hscroll_aymf_feed_unit","position":0,"algorithm":"followers_algorithm"}},{"module":"hscroll_aymf_feed_unit","name":"recommended_user_impression","time":1483722696.326252,"extra":{"pk":"2284338164","uid":"3896352675","view":"hscroll_aymf_feed_unit","position":1,"algorithm":"followers_algorithm"}},{"module":"hscroll_aymf_feed_unit","name":"recommended_user_impression","time":1483722696.329706,"extra":{"pk":"2284338164","uid":"2942400495","view":"hscroll_aymf_feed_unit","position":2,"algorithm":"page_rank_algorithm"}},{"module":"app","name":"content_loaded","time":1483722696.490827,"extra":{"content_type":"photo","pk":"2284338164","content_load_time":0.0478957499981334,"content_width":799}},{"module":"feed_timeline","name":"instagram_organic_time_spent","time":1483722697.295841,"extra":{"source_of_action":"feed_timeline","m_t":1,"m_ix":0,"pk":"2284338164","a_pk":"2263699430","session_id":"2284338164_22006D1E-0336-4815-9429-A49B7EC70FD6","timespent":2.258677005767822,"m_pk":"1421834952577120803_2263699430","tracking_token":"eyJ2ZXJzaW9uIjo1LCJzaWduYXR1cmUiOiIiLCJwYXlsb2FkIjp7InNlcnZlcl90b2tlbiI6IjE0ODM3MjI2OTM5NzZ8MTQyMTgzNDk1MjU3NzEyMDgwM3wyMjg0MzM4MTY0fDEyNTgxMjQ3ODdmYWMzODA5N2RkM2M4MjhlNWUxNGFjMjcyOTUzNGRiMDVhNzk5NTViOTc0NWFjNGEwNTUxMGMiLCJpc19hbmFseXRpY3NfdHJhY2tlZCI6dHJ1ZSwidXVpZCI6ImE3MGIyZjIxNzNmZjQzMWNhMjdmNjFlMjdiNzk0MDgwMTQyMTgzNDk1MjU3NzEyMDgwMyJ9fQ==","follow_status":"following"}},{"module":"feed_timeline","name":"instagram_organic_viewed_impression","time":1483722697.296037,"extra":{"source_of_action":"feed_timeline","m_t":1,"m_ix":0,"pk":"2284338164","a_pk":"2263699430","session_id":"2284338164_22006D1E-0336-4815-9429-A49B7EC70FD6","m_pk":"1421834952577120803_2263699430","tracking_token":"eyJ2ZXJzaW9uIjo1LCJzaWduYXR1cmUiOiIiLCJwYXlsb2FkIjp7InNlcnZlcl90b2tlbiI6IjE0ODM3MjI2OTM5NzZ8MTQyMTgzNDk1MjU3NzEyMDgwM3wyMjg0MzM4MTY0fDEyNTgxMjQ3ODdmYWMzODA5N2RkM2M4MjhlNWUxNGFjMjcyOTUzNGRiMDVhNzk5NTViOTc0NWFjNGEwNTUxMGMiLCJpc19hbmFseXRpY3NfdHJhY2tlZCI6dHJ1ZSwidXVpZCI6ImE3MGIyZjIxNzNmZjQzMWNhMjdmNjFlMjdiNzk0MDgwMTQyMTgzNDk1MjU3NzEyMDgwMyJ9fQ==","follow_status":"following"}},{"module":"feed_timeline","name":"instagram_organic_impression","time":1483722697.422587,"extra":{"source_of_action":"feed_timeline","m_t":1,"m_ix":2,"pk":"2284338164","a_pk":"290691036","session_id":"2284338164_22006D1E-0336-4815-9429-A49B7EC70FD6","m_pk":"1421785804972142074_290691036","tracking_token":"eyJ2ZXJzaW9uIjo1LCJzaWduYXR1cmUiOiIiLCJwYXlsb2FkIjp7InNlcnZlcl90b2tlbiI6IjE0ODM3MjI2OTM5NzZ8MTQyMTc4NTgwNDk3MjE0MjA3NHwyMjg0MzM4MTY0fDNjMDFkMWQ4N2I1YmFiZTcxYTFhYjhkMDgwNTRhYzg5ZWFiODkwZGRiNTlmODkwNjNjOTVkYWU0ZDJjMWM2MTUiLCJpc19hbmFseXRpY3NfdHJhY2tlZCI6dHJ1ZSwidXVpZCI6ImE3MGIyZjIxNzNmZjQzMWNhMjdmNjFlMjdiNzk0MDgwMTQyMTc4NTgwNDk3MjE0MjA3NCJ9fQ==","follow_status":"following"}},{"module":"feed_timeline","name":"instagram_organic_time_spent","time":1483722697.557526,"extra":{"source_of_action":"feed_timeline","m_t":1,"m_ix":1,"pk":"2284338164","a_pk":"204327608","session_id":"2284338164_22006D1E-0336-4815-9429-A49B7EC70FD6","timespent":1.185648024082184,"m_pk":"1421889687605301135_204327608","tracking_token":"eyJ2ZXJzaW9uIjo1LCJzaWduYXR1cmUiOiIiLCJwYXlsb2FkIjp7InNlcnZlcl90b2tlbiI6IjE0ODM3MjI2OTM5NzZ8MTQyMTg4OTY4NzYwNTMwMTEzNXwyMjg0MzM4MTY0fDY5ZTgwODY2NzkwMWU1YTdiMGEwM2NkYTRlNmQyYzNjNjNkY2M3NTZjMDIwNzE1OGQ2YTc0NTE1NDZhZjQ2OGIiLCJpc19hbmFseXRpY3NfdHJhY2tlZCI6dHJ1ZSwidXVpZCI6ImE3MGIyZjIxNzNmZjQzMWNhMjdmNjFlMjdiNzk0MDgwMTQyMTg4OTY4NzYwNTMwMTEzNSJ9fQ==","follow_status":"following"}},{"module":"feed_timeline","name":"instagram_organic_viewed_impression","time":1483722697.557715,"extra":{"source_of_action":"feed_timeline","m_t":1,"m_ix":1,"pk":"2284338164","a_pk":"204327608","session_id":"2284338164_22006D1E-0336-4815-9429-A49B7EC70FD6","m_pk":"1421889687605301135_204327608","tracking_token":"eyJ2ZXJzaW9uIjo1LCJzaWduYXR1cmUiOiIiLCJwYXlsb2FkIjp7InNlcnZlcl90b2tlbiI6IjE0ODM3MjI2OTM5NzZ8MTQyMTg4OTY4NzYwNTMwMTEzNXwyMjg0MzM4MTY0fDY5ZTgwODY2NzkwMWU1YTdiMGEwM2NkYTRlNmQyYzNjNjNkY2M3NTZjMDIwNzE1OGQ2YTc0NTE1NDZhZjQ2OGIiLCJpc19hbmFseXRpY3NfdHJhY2tlZCI6dHJ1ZSwidXVpZCI6ImE3MGIyZjIxNzNmZjQzMWNhMjdmNjFlMjdiNzk0MDgwMTQyMTg4OTY4NzYwNTMwMTEzNSJ9fQ==","follow_status":"following"}},{"module":"app","name":"content_loaded","time":1483722697.578529,"extra":{"content_type":"photo","pk":"2284338164","content_load_time":0.02764237500014133,"content_width":612}},{"module":"app","name":"ig_qe_exposure","time":1483722698.19705,"extra":{"group":"test","id":"2284338164","pk":"2284338164","experiment":"ig_ios_ad_new_sponsored_label_universe"}},{"module":"app","name":"ig_qe_exposure","time":1483722698.227725,"extra":{"group":"test","id":"2284338164","pk":"2284338164","experiment":"ig_ios_video_corrected_viewport_logging"}},{"module":"app","name":"content_loaded","time":1483722698.33762,"extra":{"content_type":"photo","pk":"2284338164","content_load_time":0.04629112499969779,"content_width":750}},{"module":"app","name":"ig_qe_exposure","time":1483722698.457056,"extra":{"group":"test","id":"2284338164","pk":"2284338164","experiment":"ig_ios_ad_intent_to_highlight_universe"}},{"module":"feed_timeline","name":"instagram_organic_time_spent","time":1483722698.522836,"extra":{"source_of_action":"feed_timeline","m_t":1,"m_ix":2,"pk":"2284338164","a_pk":"290691036","session_id":"2284338164_22006D1E-0336-4815-9429-A49B7EC70FD6","timespent":0.991282045841217,"m_pk":"1421785804972142074_290691036","tracking_token":"eyJ2ZXJzaW9uIjo1LCJzaWduYXR1cmUiOiIiLCJwYXlsb2FkIjp7InNlcnZlcl90b2tlbiI6IjE0ODM3MjI2OTM5NzZ8MTQyMTc4NTgwNDk3MjE0MjA3NHwyMjg0MzM4MTY0fDNjMDFkMWQ4N2I1YmFiZTcxYTFhYjhkMDgwNTRhYzg5ZWFiODkwZGRiNTlmODkwNjNjOTVkYWU0ZDJjMWM2MTUiLCJpc19hbmFseXRpY3NfdHJhY2tlZCI6dHJ1ZSwidXVpZCI6ImE3MGIyZjIxNzNmZjQzMWNhMjdmNjFlMjdiNzk0MDgwMTQyMTc4NTgwNDk3MjE0MjA3NCJ9fQ==","follow_status":"following"}},{"module":"feed_timeline","name":"instagram_organic_impression","time":1483722698.605625,"extra":{"source_of_action":"feed_timeline","m_t":1,"m_ix":4,"pk":"2284338164","a_pk":"2082772377","session_id":"2284338164_22006D1E-0336-4815-9429-A49B7EC70FD6","m_pk":"1421886268559992426_2082772377","tracking_token":"eyJ2ZXJzaW9uIjo1LCJzaWduYXR1cmUiOiIiLCJwYXlsb2FkIjp7InNlcnZlcl90b2tlbiI6IjE0ODM3MjI2OTM5Nzd8MTQyMTg4NjI2ODU1OTk5MjQyNnwyMjg0MzM4MTY0fDViYWY4YjEwM2ZkYmJiYTI0MjcyNmQ0OGNkMDRjY2MzNmFhZWRjYTZlZDczYmNjOTM3ZDg2MjA2OTIyODQ5ZmEiLCJpc19hbmFseXRpY3NfdHJhY2tlZCI6ZmFsc2UsInV1aWQiOiJhNzBiMmYyMTczZmY0MzFjYTI3ZjYxZTI3Yjc5NDA4MDE0MjE4ODYyNjg1NTk5OTI0MjYifX0=","follow_status":"following"}},{"module":"app","name":"content_loaded","time":1483722699.07202,"extra":{"content_type":"photo","pk":"2284338164","content_load_time":0.02502862500114134,"content_width":750}},{"module":"feed_timeline","name":"instagram_organic_impression","time":1483722699.747028,"extra":{"source_of_action":"feed_timeline","m_t":1,"m_ix":5,"pk":"2284338164","a_pk":"2082772377","session_id":"2284338164_22006D1E-0336-4815-9429-A49B7EC70FD6","m_pk":"1421886211525945054_2082772377","tracking_token":"eyJ2ZXJzaW9uIjo1LCJzaWduYXR1cmUiOiIiLCJwYXlsb2FkIjp7InNlcnZlcl90b2tlbiI6IjE0ODM3MjI2OTM5Nzd8MTQyMTg4NjIxMTUyNTk0NTA1NHwyMjg0MzM4MTY0fGJiNTRhMDkwNzg3ZmQ5ZTg0Mjc4MzQ5NDkyMmRjY2E4MWJjMGQxYWQ1YzJiMGMwNmIzZGUyYTZkMDZiYjhhZjAiLCJpc19hbmFseXRpY3NfdHJhY2tlZCI6ZmFsc2UsInV1aWQiOiJhNzBiMmYyMTczZmY0MzFjYTI3ZjYxZTI3Yjc5NDA4MDE0MjE4ODYyMTE1MjU5NDUwNTQifX0=","follow_status":"following"}},{"module":"app","name":"content_loaded","time":1483722699.869509,"extra":{"content_type":"photo","pk":"2284338164","content_load_time":0.0443396250011574,"content_width":750}},{"module":"feed_timeline","name":"instagram_organic_time_spent","time":1483722700.039492,"extra":{"source_of_action":"feed_timeline","m_t":1,"m_ix":4,"pk":"2284338164","a_pk":"2082772377","session_id":"2284338164_22006D1E-0336-4815-9429-A49B7EC70FD6","timespent":0.9339390397071838,"m_pk":"1421886268559992426_2082772377","tracking_token":"eyJ2ZXJzaW9uIjo1LCJzaWduYXR1cmUiOiIiLCJwYXlsb2FkIjp7InNlcnZlcl90b2tlbiI6IjE0ODM3MjI2OTM5Nzd8MTQyMTg4NjI2ODU1OTk5MjQyNnwyMjg0MzM4MTY0fDViYWY4YjEwM2ZkYmJiYTI0MjcyNmQ0OGNkMDRjY2MzNmFhZWRjYTZlZDczYmNjOTM3ZDg2MjA2OTIyODQ5ZmEiLCJpc19hbmFseXRpY3NfdHJhY2tlZCI6ZmFsc2UsInV1aWQiOiJhNzBiMmYyMTczZmY0MzFjYTI3ZjYxZTI3Yjc5NDA4MDE0MjE4ODYyNjg1NTk5OTI0MjYifX0=","follow_status":"following"}},{"module":"feed_timeline","name":"perf_percent_photos_rendered","time":1483722700.03977,"extra":{"pk":"2284338164","rendered":true}}],"log_type":"client_event","seq":0}
You can use gzuncompress in php :
https://secure.php.net/manual/fr/function.gzuncompress.php
<?php
$compressed = gzcompress('Compresse moi', 9); // or $compressed = "YOUrcOmpreSSedStRINg";
$uncompressed = gzuncompress($compressed);
echo $uncompressed;
?>

What content type header to use for JSON? "application/json; charset=utf-8 " or "application/json"?

It seems that the JSON default encoding is UTF-8 and Spring MVC returns application/json; charset=utf-8 by default, which is hard to change.
According to RFC 4627
JSON text SHALL be encoded in Unicode. The default encoding is UTF-8.
It goes on to describe how the different UTF-* encoding are to be detecting, suggesting that no other encodings are supported.
"SHALL" represents an absolute requirement here (see RFC 2119).
And there really is no reason to use a non-UTF encoding with JSON (as anything that can handle JSON can definitely handle UTF-8).
Returning a charset parameter on application/json is incorrect, as that media type does not define a charset parametert. See https://greenbytes.de/tech/webdav/rfc8259.html#rfc.section.11, last sentence:
Note: No "charset" parameter is defined for this registration. Adding one really has no effect on compliant recipients.

Box API - The Timestamp type

I'm trying to upload a file via Box API and I want to specify the content_modified_at parameter. However, I always receive an error in response, saying that I specify the date not in ISO 8601 format. I double-checked the format I'm sending, and it's definitely ISO 8601.
If I don't specify this field, the file is created successfully.
The field in my request has format "2013-04-21T19:39:16+03:00",
and I'm not sure how this is different from "2012-12-12T11:04:26-08:00" that is used in Box API docs
Here is the full listing of my request and response:
-------------- REQUEST --------------
POST https://upload.box.com/api/2.0/files/content
Accept-Encoding: gzip
Authorization: Bearer [hidden]
User-Agent: Google-HTTP-Java-Client/1.14.1-beta (gzip)
Content-Type: multipart/form-data; boundary=__END_OF_PART__
--__END_OF_PART__
Content-Type: application/octet-stream
content-disposition: form-data; name="filename"; filename="file1.txt"
1234567890
--__END_OF_PART__
content-disposition: form-data; name="parent_id"
760503410
--__END_OF_PART__
content-disposition: form-data; name="content_modified_at"
2013-04-21T19:39:16+03:00
--__END_OF_PART__--
-------------- RESPONSE --------------
HTTP/1.1 400 Bad Request
Date: Sun, 21 Apr 2013 17:01:23 GMT
Content-Length: 193
X-Error-Handling: entry;index.php|rid;132352423451741b638d902|runmode;box_api_v2|user;2|user;193761140|
Connection: close
Content-Type: application/json
Server: Apache/2.2.15 (Scientific Linux)
Cache-Control: no-cache, no-store
{"type":"error","status":400,"code":"bad_request","help_url":"http:\/\/developers.box.com\/docs\/#errors","message":"not a valid iso 8601 formatted date","request_id":"132352423451741b638d902"}
UPDATE:
Does anybody of the Box team actually care about this? Does it mean there is a mistake in the services or just nobody wants to explain me what was my fault?
There is an issue with our time stamp parser that we're in the process of fixing.
You should see now issues if you set the timestamp to UTC and send it with a
timezone offset of -00:00, e.g.
2013-04-17T09:12:36-00:00
Again, this is an issue on our end that we're working on resolving.

What does 'Accept: */*' mean under Client section of Request Headers?

I was comparing headers of same HTTP Post request for Firefox and Internet Explorer and I see that for IE.
I was wondering:
What does Accept: */* mean under Client section of Request Headers?
The accept: header defines the content type the client accepts, or expects to be returned by the server. Depending on the situation this can be text/css, text/html, image/png, .. etc. - just some mime type.
The * character is considered the wildcard. accept: */* simply means that any data of whatever mimetype is accepted and the server may choose what to return to the requesting client.
It's answered in the specification. See http://greenbytes.de/tech/webdav/rfc2616.html#header.accept and http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p2-semantics-21.html#header.accept

How do I set the correct json headers?

Is there a way in htaccess to ensure the headers for my json are correct?
Update: Does anyone see anything wrong with these headers for json?
Date Mon, 26 Jul 2010 08:31:11 GMT
Server Apache/2.2.15 (Unix) mod_ssl/2.2.15 OpenSSL/0.9.7a mod_fcgid/2.3.5 Phusion_Passenger/2.2.15 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
X-Powered-By PHP/5.2.13
X-Pingback http://brettbarros.com/wordpress/xmlrpc.php
Content-Disposition attachment; filename="json_api.json"
Vary Accept-Encoding
Content-Encoding gzip
Content-Length 719
Keep-Alive timeout=5, max=98
Connection Keep-Alive
Content-Type application/json; charset=UTF-8
Specifically, it's working with jquery's getJSON in ie8, ffx, chrome, but not ie7 or ie6...
AddType application/json .json
is a simple way to make all your *.json files being sent with the correct mime type. That, of course, doesn't work, if you create them dynamically in something like a, say, PHP script. In that case, you can add the info inside the script:
<?php
header('Content-Type: application/json');
// ...
You can inspect the headers sent along from the server side using Firebug's Net tab. It shows all the headers for both the request and the response.
Make sure the Content-Type is application/json. You can inspect the http headers with wget and whatnot if you aren't sure what they are.