Squid GET request returns incorrect content type when using transparent mode

I’m trying to establish the cause of a strange issue with mobile device that goes through a Squid 3.3 proxy on CentOS 7 using transparent mode which is not able to access news content within the Bing News app on Windows Phone 8.

When content loads I just get an error with “An error occurred while loading this page” Each time a news story is requested, a GET request similar to the one below is logged from the mobile device:

TCP_MISS/200 414 GET http://en-gb.appex-rf.msn.com/article/v4/EN-GB/news/0/BBm10XM.js? - FIRSTUP_PARENT/::1 text/javascript

I made the same GET request on a client that has the proxy configured via WPAD and it seems the response is slightly different:

TCP_MISS/200 399 GET http://en-gb.appex-rf.msn.com/article/v4/EN-GB/news/0/BBm10XM.js - FIRSTUP_PARENT/::1 application/json

With further details using curl:

* About to connect() to en-gb.appex-rf.msn.com port 80 (#0)
*   Trying 213.104.143.210...
* Connected to en-gb.appex-rf.msn.com (213.104.143.210) port 80 (#0)
> GET /article/v4/EN-GB/news/0/BBm10XM.js HTTP/1.1
> User-Agent: curl/7.29.0
> Host: en-gb.appex-rf.msn.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json; charset=utf-8
< Last-Modified: Sun, 23 Aug 2015 19:43:49 GMT
< ETag: "7daadd066c8a3c246e24515a03b7eeb5"
< Server: Microsoft-IIS/8.5
< X-Diagnostic-S: AppContentService_IN_21
< X-Diagnostic-DC: eastus
< X-CMS-ACSElapsedTimeInMilliseconds: 4
< AppEx-Activity-Id: 18579b38-f191-4ba8-9af9-9fd97c0d15bb
< X-Trace-Context: {"ActivityId":"18579b38-f191-4ba8-9af9-9fd97c0d15bb"}
< X-AspNet-Version: 4.0.30319
< X-Powered-By: ASP.NET
< Cache-Control: public, max-age=300
< Date: Sun, 23 Aug 2015 20:33:32 GMT
< Content-Length: 7209
< Connection: keep-alive

The Bing News app works when not using the proxy or when using the proxy via configuration or WPAD (i.e. not transparent). Tested on a Windows 8.1 PC.

I’m assuming that because the data type is different this is likely the cause of the issue with the app on Windows Phone 8, but I am unsure as to why Squid is seeing it differently in transparent mode vs WPAD/configured proxy settings.

Are there any specific settings I need to look at in my squid.conf or other methods to resolve this? I would prefer to have this client go through the proxy, but as a short term solution I could write a iptables rule for this client IP to bypass the proxy entirely.

Answer

Attribution
Source : Link , Question Author : James White , Answer Author : Community

Leave a Comment