Why is there both a System.Net.Http and System.Web.Http namespace?

Just a simple question as I'm studying the various class libraries available in .NET. I noticed that there's a System.Net.Http namespace and a System.Web.Http namespace.

  • What purpose(s) do both namespaces serve?
  • What were the motivations for creating two seemingly ambiguous namespaces?
  • Is there any history I should know about or is one of the namespaces "deprecated"?

System.Net.Http, System.Web.Http


System.Net.Http is for client-side HTTP programming. System.Web.Http is for server-side HTTP programming.


System.Net.Http relates to network programming while System.Web.Http relates specifically to programming for the web.