Designing Evolvable Web APIs with ASP.NET
by Glenn Block, Pablo Cibraro, Pedro Felix, Howard Dierking, Darrel Miller
Chapter 10. The HTTP Programming Model
The messages, the whole messages, and nothing but the messages.
This chapter presents the new .NET Framework HTTP programming model, which is at the core of both ASP.NET Web API and the new client-side HTTP support, specifically the HttpClient class.
This model was introduced with .NET 4.5 but is also available for .NET 4.0 via NuGet packages.
It defines a new assembly—System.Net.Http.dll—with typed programming abstractions for the main HTTP concepts (namely, request and response messages, headers, and body content).
This model is complemented by the System.Net.Http.Formatting.dll assembly, which introduces the media type formatter concept, described in Chapter 13, as well as some utility extension methods and custom HTTP content types.
This assembly is available via the “Microsoft ASP.NET Web API Client Libraries” NuGet package, and its source code is part of the ASP.NET project.
Despite its name, this package is usable on both the client and server sides.
In this chapter we will be describing features from both assemblies, without making any distinction between them.
The .NET Framework already contains more than one programming model for dealing with HTTP concepts.
On the client side, the System.Net.HttpWebRequest class can be used to initiate HTTP requests and process the associated responses.
On the server side, the System.Web.HttpContext and related classes (e.g., HttpRequest and HttpResponse) are used in the ASP.NET context to represent ...