连接管理(请求/响应)

原创 2004年06月24日 11:22:00

使用 HTTP 连接到数据资源的应用程序用 <?XML:NAMESPACE PREFIX = MSHelp NS = "http://msdn.microsoft.com/mshelp" />ServicePoint 和 ServicePointManager 类来管理 Internet 连接

ServicePoint 类为应用程序提供一个终结点,应用程序可以连接到该终结点上来访问 Internet 资源。 ServicePoint 都由一个统一资源标识符 (URI) 标识,并且按照方案标识符(如http)和 URI 的宿主(如www.contoso.com)段进行分类,

例如,同一个 ServicePoint 实例可以提供对 http://www.contoso.com/index.htm 和 http://www.contoso.com/news.htm?date=today 两个 URI 的请求。

ServicePointManager :管理 ServicePoint 实例的创建和销毁的静态类。

创建一个 ServicePoint程序请求的 Internet 资源不在现有 ServicePoint 实例集合中时。

ServicePoint 实例将被销毁:实例超过其最长空闲时间,或者当现有 ServicePoint 实例数超过应用程序的最大 ServicePoint 实例数时。

ServicePointManager 上设置 MaxServicePointIdleTime 和 MaxServicePoints 属性,可以控制 ServicePoint 实例的默认最长空闲时间和最大数目。默认: HttpWebRequest 类的应用程序最多使用两个与给定服务器的持久连接。

=====================

更改 ServicePointManager 类上的静态 DefaultConnectionLimit 属性,可以更改应用程序使用的连接数。不影响以前初始化的 ServicePoint 实例。

ServicePointManager.DefaultConnectionLimit = 4;//以后没组连接最多的默认连接数为4

但之后也可以通过ServicePoin.ConnectionLimit 在设置特定连接相关属性

Uri uri = new Uri("http://www.contoso.com/");
ServicePoint sp = ServicePointManager.FindServicePoint(uri);
sp.ConnectionLimit = 5;

 

连接分组

连接分组使单个应用程序中的特定请求与一个已定义的连接池相关联,这个连接池以WebRequest.ConnectionGroupName来区别。

为什么要用分组:假设有一个叫 Joe 的用户访问显示其工资信息的内部 Web 站点。对 Joe 进行身份验证后,中间层应用程序服务器使用 Joe 的凭据连接后端服务器以检索其工资信息。接着,Susan 也访问该站点并请求其工资信息。但由于中间层应用程序已使用 Joe 的凭据建立了连接,因此后端服务器以 Joe 的信息来响应。如果应用程序将每个对后端服务器的请求都分配到一个由用户名形成的连接组,则不会意外地与其他用户共享身份验证信息。

SHA1Managed Sha1 = new SHA1Managed();
Byte[] updHash = Sha1.ComputeHash(Encoding.UTF8.GetBytes(UserName + SecurelyStoredPassword + Domain));
String secureGroupName = Encoding.Default.GetString(updHash);

// Create a request for a specific URL.
WebRequest myWebRequest=WebRequest.Create("http://www.contoso.com");
     
myWebRequest.Credentials = new NetworkCredential(UserName, SecurelyStoredPassword, Domain);
myWebRequest.ConnectionGroupName = secureGroupName;//这条语句执行时将连接归组

WebResponse myWebResponse=myWebRequest.GetResponse();

// Insert the code that uses myWebResponse.

MyWebResponse.Close();

对后面的请求若分配给 UserName 变量不同的值,将会使用适当的凭据产生新的服务器连接

HTTP协议及请求/响应模型

1、上网的整个过程  假设我们点击了某网页上的一个链接,指向清华大学院系设置,其URL是:http://www.tsinghua.edu.cn/chn/yxsz/index.html。我们来分析一下整...
  • vosamo007
  • vosamo007
  • 2015年11月06日 16:23
  • 1816

tomcat处理客户端请求原理

每当HttpConnector的ServerSocket得到客户端的连接时,会创建一个Socket。 接下来就处理这个Socket发来的数据。 怎么处理呢?  考虑到客户端同时发来的请求数...
  • zhoulovelian
  • zhoulovelian
  • 2016年10月17日 13:38
  • 1150

DICOM:剖析Orthanc中的Web Server,Mongoose之“连接请求触发的事件序列”(二)

背景:Orthanc是本专栏中介绍过的一款新型DICOM服务器,具有轻量级、支持REST的特性,可将任意运行Windows和Linux系统的计算机变成DICOM服务器,即miniPACS。Orthan...
  • zssureqh
  • zssureqh
  • 2015年02月07日 22:24
  • 2362

实验6 HTTP请求、响应及状态管理.ppt

  • 2011年11月22日 13:12
  • 154KB
  • 下载

第5章 HTTP请求、响应及状态管理

  • 2013年07月14日 09:04
  • 514KB
  • 下载

ASP.net基础(五)HTTP请求、响应以及状态管理

  • xhf55555
  • xhf55555
  • 2012年12月19日 20:13
  • 5993

代码调用DruidDataSource来管理conn连接,同时声明了ThreadLocal对象来保存每次线程请求所获取的连接,这样可以避免每个new一个JDBC

代码调用DruidDataSource来管理conn连接,同时声明了ThreadLocal对象来保存每次线程请求所获取的连接,这样可以避免每个new一个JDBCUtils对象,将conn对象放在Thr...
  • gjq123
  • gjq123
  • 2016年10月24日 11:39
  • 147

分享几个好看的Bootstrap后台管理响应式模板

转自 http://www.75271.com/1105.html 分享几个好看的Bootstrap后台管理响应式模板 1/charisma 演示地址 国...
  • skykingf
  • skykingf
  • 2016年09月28日 13:58
  • 12574

分享几个好看的Bootstrap后台管理响应式模板

分享几个好看的Bootstrap后台管理响应式模板 1/charisma 演示地址 国内下载地址:https://yunpan.cn/c6qrHAktZDddU (提取码:82f...
  • qq_36663951
  • qq_36663951
  • 2017年11月21日 16:04
  • 193

分享一套4A公司门户模板(支持响应式与移动APP接入及微信管理强大后台)

免费下载地址:http://update.z01.com/Template/isobar.zip 【模板说明】                              ...
  • zoomlaziti
  • zoomlaziti
  • 2017年05月21日 15:21
  • 244
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:连接管理(请求/响应)
举报原因:
原因补充:

(最多只允许输入30个字)