.NET 中的网络编程

.NET 为 Internet 服务提供了一种分层、可扩展且托管的实现,可以快速、轻松地将这些服务集成到你的应用中。 你的网络应用可以基于可插入协议而构建,以便自动利用各种 Internet 协议,或者,它们可以使用跨平台套接字接口的托管实现在套接字级别上使用网络。

Internet 应用

Internet 应用大致分为两类:请求信息的客户端应用和响应客户端的信息请求的服务器应用。 经典的 Internet 客户端服务器应用是万维网,人们通过万维网,使用浏览器访问文档和存储于全球 Web 服务器中的其他数据。

应用不仅仅局限于其中一种角色;例如,熟悉的中间层应用服务器通过从其他服务器请求数据响应客户端请求,在这种情况下,它同时充当服务器和客户端。

客户端应用通过标识请求的 Internet 资源和用于请求和响应的通信协议发出请求。 如有必要,客户端还提供完成请求所需的任何其他数据,例如代理位置或身份验证信息(用户名、密码等)。 形成请求后,可将请求发送到服务器。

标识资源

.NET 使用统一资源标识符 (URI) 标识请求的 Internet 资源和通信协议。 URI 由至少三个或者四个片段组成:方案标识符,用于标识请求和响应的通信协议;服务器标识符,其由唯一标识 Internet 上服务器的域名系统 (DNS) 主机名或 TCP 地址组成;路径标识符,其在服务器上查找请求的信息;可选的查询字符串,其将信息从客户端传递到服务器。

System.Uri 类型用作统一资源标识符 (URI) 的表示形式和对 URI 各部分的轻松访问。 若要创建 Uri 实例,可以向其传递字符串:

const string uriString =
    "https://learn.microsoft.com/en-us/dotnet/path?key=value#bookmark";

Uri canonicalUri = new(uriString);
Console.WriteLine(canonicalUri.Host);
Console.WriteLine(canonicalUri.PathAndQuery);
Console.WriteLine(canonicalUri.Fragment);
// Sample output:
//     learn.microsoft.com
//     /en-us/dotnet/path?key=value
//     #bookmark

Uri 类根据 RCF 3986 自动执行验证和标准化。 这些验证和标准化规则用于确保 URI 格式标准且 URI 采用规范格式。

另请参阅