WCF学习笔记3-地址(Address)
一、统一资源标示(URI)
URI的全称是Uniform Resource Identifier(即统一资源标示),它唯一地标示一个网络资源的同时也表示资源所处的位置及访问的方式(资源访问所用的网络协议)。
二、WCF使用的传输协议
1、HTTP/HTTPS
HTTP全称为 HyperText Transfer Protocol(超文本传输协议),是建立在TCP/IP簇上的应用层协议。
HTTP特点
HTTP提供简单的请求-回复(Request-Reply)消息传输方式;
HTTP是无状态的,每次HTTP请求都是相互独立的;
HTTP是无连接的,基于HTTP的数据传输无须事先打开链接。
HTTP的默认端口为:80;HTTPS的默认端口为:443。
HTTPS
HTTPS全称为HyperText Transfer Protocol over Secur e Layer(安全超文本传输协议),它是采用SSL(Secure Socket Layer)的HTTP。而SLL是一个进行数据加密的协议,
很多安全性要求较高的网站都采用HTTPS。
2、Net.TCP
TCP全称为Transport Control Protocol(传输控制协议),在整个TCP/IP簇中处于核心地位。从整个协议分层结构来看,位于应用层之下,网络层(IP协议)之上。较之HTTP,TCP具有
如下特点:
- TCP是基于连接的传输协议,在开始进行数据传输之前,通过客户端和服务端之间的3次“握手”创建连接;在结束传输之后,通过4次“握手”终止连接。
- TCP是有状态的,由于数据传输在一个确定的连接中进行,因此可以保持每次数据传输的状态。
- TCP支持全双工(Duplex)通信,一旦连接成功创建,数据就可以在两个方向上同时传输。
- TCP支持可靠通信(Reliable Messaging),IP协议本身提供的数据传输是不可靠的,数据的可靠传输只能通过TCP来保证。
- Net.TCP默认端口为:808
3、Net.Pipe
命名管道(Named Pipes)是Windows 平台及UNIX系统下实现跨进程通信(Inter Process Communication, IPC)的标准实现方式。虽然命名管道本身可以实现跨机器的通信,但是
WCF只将命名管道专门用于同一台机器的跨进程通信,所以基于命名管道的URI的主机名称|IP地址部分只能是本机的机器名、localhost或127.0.0.1。
4、Net.Msmq
消息队列(Message Queuing,也称MSMQ),是微软对消息服务领域的开创新尝试。由于消息队列采用了特殊的通信机制,因此对于改善和提高系统的可扩展性(Scalability)和高可用性
(High Availability)具有重要的意义。消息队列分为如下两种类型:
- 公共消息队列:共有队列的名称被注册到AD域中,所以我们无需指定队列所在的机器名称就可以访问队列。
- 私有消息队列:似有队列使用在工作组(Work Group)模式下,而访问似有队列需要制定包含对列所在机器名称的路径。
三、EndpointAddress-终结点地址
- EndpointAddress下的属性:Uri、Headers、Identity
- 基地址与相对地址
- 地址的跨终结点共享
- 客户端终结点地址:ClintBase<TChannel>和ChannelFactory<TChannel>
- 地址报头:AddressHeader和AddressHeaderCollection
四、端口共享
- 端口共享的意义:为了尽量避免网络攻击,需要通过防火墙将绝大部分的端口屏蔽,保留那些常用的网络服务所用的端口。为了解决多个应用使用不同端口造成与现在的端口分配的问题,所以共享端口产生了。
- HTTP/HTTPS端口共享
- TCP端口共享
- Net.TCP端口共享
- TCP端口共享与NetTcpBinding
五、WCF的4种类型行为:
- 服务行为;
- 契约行为;
- 终结点行为;
- 操作行为。
以上是个人的学习内容总结,资源来自于蒋金楠著作的“WCF全面解析”