统一资源标识(URI) URI:Uniform Resource Identifier(统一资源标识),唯一地标识一个网络资源的同时也表示资源所处的位置的方式(资源访问所用的网络协议)。
URI结构:
[传输协议(Scheme)]://[主机名|域名|IP地址]:[可选端口]/[资源路径]
HTTP/HTTPS
HTTP:HyperText Transfer Protocol(超文本传输协议),建立在TCP/IP簇上的应用层协议。由于其简单、易用的特性,已经是成为事实上Internet标准。
HTTP特点:
1.提供简单的请求-恢复(Request-Reply)消息传输方式.
2.是无状态的,每次HTTP请求都是相互独立的.
3.是无连接的,基于HTTP的数据传输无须事先打开链接.
HTTPS:HyperText Tranfer Protocol over Secure Socket Layer(安全超文本传输协议),采用了SSL(Secure Socket Layer)的HTTP。WCF通过HTTPS实现了基于HTTP的传输安全(Transport Security)
HTTP和HTTPS的URI分别使用http和https作为传输协议前缀,端口默认为80和443
Net.TCP
TCP:Transport Control Protocol(传输控制协议),在整个TCP/IP簇中处于核心地位。从整个协议分层结构来看,位于应用层之下,网络层(IP协议)之上,教之HTTP。
TCP特点:
1.是基于连接的传输协议,在开始进行数据传输之前,通过客户端和服务端之间的3此“握手”创建连接,在结束之后,通过4次“握手”终止连接。
2.是有状态的,由于数据传输在一个确定的连接中进行,因此可以保持每次数据传输的状态。
3.支持全双工(Duplex)通信,一旦连接成功创建,数据就可以在两个方向上同时传输。
4.支持可靠通信(Reliable Messaging),IP协议本身提供的数据传输是不可靠的,数据的可靠传输只能通过TCP来保证。
WCF通过NetTcpBinding支持基于TCP的传输。传输协议前缀均为net.tcp://。端口默认为808。
Net.Pipe
命名管道(Named Pipes)是Windows平台及UNIX系统下实现跨进程通信(Inter Process Communication,IPC)的标准实现方式,虽然命名管道本身可以实现跨机器的通信,但是WCF只将命名管道专门用于同一台机器的跨进程通信,所以急于命名管道的URI的主机名称|IP地址部分职能是本机的机器名、localhost或127.0.0.1。
基于命名管道的URI以net.pipe为前缀,而在基于同一台机器的不同进程间通信中,端口没有任何意义。
Net.Msmq
消息队列(Message Queuing,也称MSMQ)微软对消息服务领域的开创性尝试。
消息队列可分为公有消息队列和私有消息队列,这两种类型。
WCF下基于消息队列的URI具有net.msmq前缀。在主机名称和队列名称之间通过字符private表示私有队列。
两个Net.Msmq地址:
net.msmq://127.0.0.1/myservices (公有队列) net.msmq://127.0.0.1/private/myservices/ (私有队列)