一、应用程序体系结构
两种主流体系结构:CS结构和P2P结构。
二、CS结构
1.有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户的主机的请求。
2.另一个特征是服务器具有固定的、周知的地址,该地址称为IP地址。
三、P2P
1.应用程序在间断连接的主机对之间直接使用通信,这些主机对被称为对等方。
2.另一个特性是自扩展性。
3.未来P2P会面临三个挑战:ISP友好、安全性和激励。
四、进程通信
1.客户和服务器进程
发起通信的进程被标识为客户,会话开始时等待联系的进程是服务器。
2.进程与计算机网络之间的接口
进程通过一个称为套接字socket的软件接口向网络发送报文和从网络接收报文。
套接字socket也成为应用程序和网络之间的API。
应用程序开发者可以控制套接字在应用层端的一切,但是对于该套接字的运输层端几乎没有控制权。
对运输层的控制仅限于:选择运输层协议;也许能设定几个运输层参数。
3.进程寻址
主机的地址即IP地址和定义接收进程的标识符即port端口号。
五、可供运输层使用的运输服务
1.可靠数据传输
2.吞吐量:具有吞吐量要求的应用程序被称为贷款敏感的应用;与之对应的是弹性应用。
3.定时或者叫时延
4.安全性
六、因特网提供的运输服务
1.TCP
面向连接的服务:这条连接是全双工的;
可靠的数据传送服务;
拥塞控制机制;
2.UDP
非可靠的数据传送服务;
没有拥塞控制机制;
七、应用层协议
应用层协议定义了运行在不同的端系统上的应用程序如何相互传递报文。
特别定义了以下内容:
交换的报文类型,例如请求报文和响应报文;
各种报文类型的语法,如报文中的各个字段以及这些字段是如何描述的;
字段的意义,即这些字段中包含的信息的意义;
一个进程如何以及何时发送报文,对报文进行相应的规则。
应用层协议只是网络应用的一部分。
八、HTTP概况
1.Web的应用层协议是超文本传输协议HTTP(HyperText Transfer Protocol),它是Web的核心。
2.HTTP由客户程序和服务器程序实现。
3.服务器向客户端发送被请求的文件,而不存储任何关于该客户的状态信息。假如某个特定的客户在短短的几秒钟之内两次请求同一个对象,服务器会发送两次该对象。
4.因为第三点,我们说HTTP是一个无状态协议(stateless protocol)。
九、非持续连接和持续连接
非连续连接:每个请求/响应是经过一个单独的TCP连接发送;
持续连接:所有的请求/相应都经过同一个TCP连接发送。
1.采用非持续连接的HTTP
往返时间RTT(Round-Trip Time):该时间是指一个短分组从客户到服务器然后再返回客户所花费的时间。
三次握手的前两次耗费了一个RTT。
缺点:一个RTT用于创建TCP;另一个RTT用于请求和接收一个对象。给Web服务器带来了严重的负担。
2.采用连续连接的HTTP
十、HTTP报文格式
1.HTTP请求报文
2.HTTP相应报文
十一、用户与服务器的交互:cookie
cookie允许站点对用户进行跟踪。
cookie可用于标识一个用户。用户首次访问一个站点时,可能需要提供一个用户标识。在后继会话中,浏览器向服务器传递一个cookie首部,从而向该服务器标识了用户。因此cookie可以在无状态的HTTP之上建立一个用户会话层。
十二、Web缓存
Web缓存器(Web cahce)也叫代理服务器(proxy server)。
因特网上部署Web缓存器有两个原因:
首先,Web缓存器可以大大减少对客户请求的响应时间;
其次,Web缓存器能够大大减少一个机构的接入链路到因特网的通信量。
此外,Web缓存器能从整体上大大减低因特网上的Web流量,从而改善了所有应用的性能。
内容分发网络(Content Distribution Network,CDN):
CDN公司在因特网上安装了许多地理上分散的缓存器,因而使大量流量实现了本地化。
十三、条件GET方法
Web缓存器引入新的问题,即缓存器中的副本可能是陈旧的。
如果请求报文使用的是GET方法,并且包含一条“If-Modified-Since”首部行,则这个请求报文是条件GET报文。
条件GET的思想就是核对请求对象的修改时间,而不是核对全部信息。当返回的首部行为304 Not Modified时,说明可以使用缓存器中的对象。