.NET 中的网络编程

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

Internet 应用

Internet 应用可以大致分为两种类型:客户端应用,它们请求信息;以及服务器应用,它们响应来自客户端的信息请求。 经典 Internet 客户端服务器应用是万维网,人们使用浏览器访问全球 Web 服务器上存储的文档和其他数据。

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

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

标识资源

.NET 使用统一的资源标识符(URI)来标识请求的 Internet 资源和通信协议。 URI 由至少三个(可能为四个)片段组成:方案标识符,用于标识请求和响应的通信协议;服务器标识符,由域名系统(DNS)主机名或唯一标识 Internet 上的服务器的 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 类根据 RFC 3986自动执行验证和规范化。 这些验证和规范化规则用于确保 URI 格式正确且 URI 采用规范形式。

另请参阅