1. 网络应用的体系结构
- 客户机/服务器结构(C/S)
服务器
: 7*24小时提供服务, 永久性访问地址/域名, 利用大量服务器实现可扩展性
客户机
:与服务器通信,使用服务器提供的服务,间歇性接入网络,可能使用动态IP地址, 不会与其他客户机直接通信
- P2P体系结构
没有永远在线的服务器,任意端系统/节点之间可以
直接通讯
,节点间歇性接入网络,节点可能改变IP地址。优点:高度可伸缩,缺点:难于管理
- 混合结构
2. 网络应用的进程通信
在操作系统中已经提到,同一主机上运行的进程之间通过进程间通信机制进行通信。不同主机上的进程则通过消息交换
或者报文交换进行通信。
- 进程间通信利用socket发送/接收消息实现
- 寻址进程过程:IP+端口号
- 应用层协议
公开协议:HTTP SMTP
私有协议: 多数P2P文件共享应用
3. 网络应用的需求与传输层提供的服务
- 应用层对传输层的需求:
- 数据丢失/可靠性
- 时间/延迟
- 吞吐量:发送进程能够向接收进程交付比特的速率
- 安全性:加密/解密
- 因特网提供的传输服务
-
TCP服务
面向连接:在数据交换之前,先在客户机/服务器进程之间建立连接
可靠性传输:无差错、按顺序的交付多有发送的资料。同时也存在流量控制、拥塞控制等。 -
UDP控制
无连接
不可靠的数据传输
-
4. Web应用:HTTP协议
-
非持续连接和持续连接
非持续连接
:每个请求/响应经过一个单独的TCP连接发送,即每个TCP连接只传输一个对象
持续连接
:一段时间内,所有的请求和响应经相同的TCP连接发送,即每个TCP连接可以传输多个对象。
响应时间:
持续连接:
-
HTTP消息格式:请求消息和响应消息
- 请求消息:
请求方法类型:
GET
:上图中的entity Body 为空, 输入信息通过request行的URL字段上传,如:www.somesite.com/animalsearch?monkeys&banana
POST
: 表单提交(表单提交也可以get)等、在请求消息的消息体(entity Body )中上传客户端的输入。
HEAD
: 当服务器收到HEAD方法的请求时,将会用一个HTTP报文响应,但是并不返回请求对象,常用来调式跟踪。
PUT
: 将消息体重的文件上传到URL字段指定的路径中。
DELETE
: 删除URL字段指定的文件- 响应消息
- 请求消息:
-
用户与服务器的交互:cookie
之前说到,HTTP服务器是无状态的,但是Web站点希望能够识别用户,就用到了cookie。
Cookie的组件
HTTP响应消息的cookie头部行
HTTP请求消息的cookie头部行
保存在客户端主机上的cookie文件,由浏览器管理
Web服务器端的后台数据库
-
Web缓存/代理服务器技术
功能:在不访问服务器的前提下满足客户端的HTTP请求。缩短客户请求的响应时间、减少机构组织的流量、 在大范围内(Internet)实现有效的内容分发(CDN)。
-
条件GET方法
存在缓存器中的对象可能是陈旧的,HTTP协议采用了条件GET方法,允许缓存其证实它的对象是最新的.
-
DNS应用