Question: I notice a lot of sites host their resources on a separate domain from the main site, e.g. StackExchange using sstatic.net, Barnes & Noble using imagesbn.com, etc.

I understand that there are benefits to putting your static resources on a separate host, possibly with an efficient static-file web server like nginx, freeing up the main server to focus on serving dynamic content. Similarly, outsourcing to a shared CDN like cloudfront Akamai is logical.

What is the benefit to using a separate domain otherwise, though? Why sstatic.net instead of static.stackexchange.com?

**Update**: Several answers miss the core question. I understand that there is benefit to splitting between multiple hosts — parallel downloads, slimmer web server, etc. But what is more elusive is why multiple *domains*. Why sstatic.net rather than static.stackexchange.com as the host for shared resources? So far, only one answer has addressed that.

Answer: 
Aside from use of CDNs, using separate domains for static data also means:

1. You can use a lightweight web server that doesn't have to load all the modules/extensions that your dynamic content web server has to load on every single request. Not having to scan each directory in the URI path to read .htaccess files also increases the number of simultaneous requests the server can handle.
2. Adding an extra subdomain means you increase the number of parallel downloads that the browser can perform.
3. If set up properly (e.g. your site is hosted on `www.example.com` instead of `example.com`), you can also take advantage of a cookieless subdomain, reducing traffic and roundtrip times.

The only downside is, if you're using SSL sessions, you need a signed certificate and separate static IP for the additional domain(s). But the benefits outweigh this minor inconvenience in most cases.

**Edit:**

Sorry, I misread your question. If you're asking why some people use separate SLDs, that would be answered by the parenthesis on #3. It's also explained on [sstatic.net](http://sstatic.net/):

> 
> If your domain is www.example.org, you can host your static components
>  on static.example.org. **However, if you've already set cookies on the
>  top-level domain example.org as opposed to www.example.org, then all
>  the requests to static.example.org will include those cookies. In this
>  case, you can buy a whole new domain, host your static components
>  there, and keep this domain cookie-free.** Yahoo! uses yimg.com, YouTube
>  uses ytimg.com, Amazon uses images-amazon.com and so on.
> 
> 
> 

But incarnate also mentions a good point about using a separate generic SLD instead of a subdomain of an existing SLD when you're running a large network of sites that share certain assets.

Lastly, as Niels Basjes points out, part of the reason for eliminating cookies is to minimize the number of packets used to perform a request. I think the YSlow guidelines state that most networks have a max packet size of 1500 bytes, so keeping it under 1500 bytes would reduce TCP overhead. This also demonstrates another advantage of using `sstatic.net` instead of `static.webmasters.stackexchange.com`.
Older browsers are restricted to just two parallel downloads per hostname.

Splitting a web page's elements across multiple domains is called [domain sharding](http://www.stevesouders.com/blog/2009/05/12/sharding-dominant-domains/). Doing this allows more resources to be downloaded in parallel, reducing the overall page load times.

[The optimal number of domains to shard across is 2-4. After 4 domains, response time degrades](http://yuiblog.com/blog/2007/04/11/performance-research-part-4/).