We’re using the CDN to deliver json files to the client. The client request around 18-30 json files simultaneously. I know that this can appear
as an awkward solution but the application is map based and the client loads a json file for each map tile that is loaded. Due to the 6 connections per host limit in most browsers, see
link, the json files are loaded in sequence. From a performance perspective we would like the client to load the json
files from multiple hosts in order to trick the browser to execute all requests in parallel (simultaneously), a.k.a parallelize downloads across hostnames, see
To accomplish our goal we’ve set up a custom domain for the hosted service cdn endpoint according to
Let’s say our custom domain is cdn.ourdomain.com, now we have two domains to our cdn namely; cdn.ourdomain.com and <id>.vo.msecnd.net (azure cdn host). But we want even more domains and we don’t want to expose the vo.msecnd.net host to the
client. We moved ahead and created five new host names (CNAMES); cdn1.ourdomain.com, cdn2.ourdomain.com, cdn3.ourdomain.com, cdn4.ourdomain.com and cdn5.ourdomain.com which all points to cdn.ourdomain.com, the configured custom domain for the cdn endpoint.
Nslookup for cdn1.ourdomain.com gives the following result:
BUT the cdn itself returns a 400 bad request for all cdnX.ourdomain.com requests. We know that this is probably due to the fact the only
configured and authorized custom domain is cdn.ourdomain.com, but is there a known work around to parallelize cdn requests across hostnames?
Take IE as an example of web browser. See
http://msdn.microsoft.com/en-us/library/cc304129(v=vs.85).aspx about the concurrent Connections and please notice it is concurrent connection per server--not per host name. so if you are using several different host names but they are actually pointing
to a same host, it won't work for you.
As far as I know if you put the resource on CDN you don't have control on which server the cleint download it from. If you realy want the client to download ALL files at the same time, you will want to put them on 4 different servers.
Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked
post does not actually answer your question. This can be beneficial to other community members reading the thread.
As I read the article above I understand it as IE is cabable of 6 connections to a
"These enhancements include an increase in the maximum number of concurrent connections from a single host"
"With Internet Explorer 8, the maximum number of concurrent connections from a single host process connecting via broadband to a single server has been increased to 6."
Anyway, currently we're using the native azure cdn name and one custom domain and for Chrome and Firefox fiddler clearly shows that the browser makes 12, instead of 6, concurrent requests. Due to some cross domain issue that we're working on we haven't got
this working in IE yet.
I used IE as an example because it is Microsoft web browser. 6 connection is the IE defined max concurrent connection number--per a single server. Other web browsers may have their own definition to this number. You'd check with the providers
to find out if that is bound to a nameor a server.
Yet to the server side if you use Windows Azure CDN, currently you won;t have control on how many servers, or which server your clients can connect to.