网络应用的体系向结构:客户机/服务器结构(Client/Sever)、点对点结构(Peer-to-peer)、混合结构(Hybrid)。
C/S结构特点:
服务器:7*24小时提供服务。永久性访问域名。利用大量服务器实现可拓展性。
客户机:与服务器通信,使用服务器提供的服务。间歇性接入网络。动态IP地址。不与其他客户器直接通信。
PP结构特特点:高度可伸缩。难于管理。
网络应用基础:进程间通信(Socket套接字发送/接收消息)。进程间使用IP地址+端口号寻址。
网络应用协议内容:消息类型,消息语法,字段语义,规则。
网络应用层对传输服务的需求:数据丢失/可靠性,延迟,带宽。
Internet提供的传输服务:TCP,UDP(更自由更开放)。
Web应用采用HTTP协议(HyperText Transfer Protocol,C/S结构,1.1 RFC2068),HTTP协议采用TCP传输服务。
1.服务器在端口等待客户请求
2.浏览器发起到服务器TCP连接(创建Socket套接字)。
3.服务器接受来浏览器的TCP连接。
4.浏览器(HTTP客户端)与服务器(HTTP服务器)交换HTTP消息。
5.关闭TCP连接。
HTTP协议是一种无状态的(stateless)协议,即服务器不维护任何有关客户端过去所发送请求的信息。
HTTP协议是无状态的是说HTTP协议不记录历史的请求。
无状态服务器是指一种把每个请求作为与之前任何请求都无关的独立的事务的服务器。
HTTP连接的两种类型:非持久性连接(单个对象)(HTTP1.0)、持久性连接(多个对象)(HTTP1.1)(无流水,带有流水机制(耗时少))。
HTTP协议消息(ASCⅡ)类型:请求消息、响应消息。
HTTP1.0方法的类型:GET,POST,HEAD。
HTTP1.1方法的类型:GET,POST,HEAD,PUT,DELETE。
HTTP状态响应代码:200(OK),301(Moved Permantly),400(Bad Request),404(Not Found),505(HTTP Version Not Sopported)。
Cookie技术(隐私):
Cookie旨在成为网站记住有状态信息(如在线商店购物车中添加的项目)或记录用户浏览活动(包括点击特定按钮,登录)的可靠机制,或记录过去访问过的页面。它们还可用于记住用户先前在表单字段(如姓名,地址,密码和信用卡号)中输入的任意信息。(WEKI)
1.HTTP响应消息的cookie头部行。
2.HTTP请求消息的cookie头部行。
3.保存在客户端主机上的cookie文件,由浏览器管理。
4.Web服务器端的后台数据库。
Web缓存/代理服务器技术(条件性GET方法):
核心思想:客户端不是直接访问URL中目标服务器,而是访问一个代理服务器,而代理服务器把访问过的网页暂时存储到本地代理服务器的存储空间,然后再次访问网页的时候先去本地代理服务器查询是否有需要的网页,如果有就直接有本地代理服务器发送给客户端,如果没有再去URL中所值定的服务器申请数据。
特点:
1.代理服务器既充当客户端,有充当服务器;
2.缩短了客户机请求的响应时间;
3.减少了机构/组织的流量;
4.在大范围内实现有效的内容转发;
5.一般由ISP(Internet服务提供商)架设;
Email应用构成:邮件客户端、邮件服务器、SMTP协议(Simple Mail Transfer Protocol)。
SMTP协议(RFC 2821):
1.使用TCP进行email传输。
2.端口25。
3.传输过程的三个阶段:握手,消息传输,关闭。
4.命令/响应交互模式:ASCⅡ文本/状态代码。
5.Email消息只能包含7位ASCⅡ码。
6.持久性连接。
7.CLRF.CLRF确定消息结束。
邮件访问协议(从服务器获取邮件):POP、IMAP、HTTP。
域名解析系统DNS(Domain Name System)使用UDP协议:
1.多层命名服务器构成分布式数据库。
2.应用层协议:完成域名解析(Internet核心功能,应用层协议实现,网络边界复杂)。
DNS查询:迭代查询,递归查询。
P2P应用特点:
1.没有服务器。
2.任何端系统之间直接通信。
3.节点阶段性接入Internet。
4.节点更换IP地址。
P2P应用文件分发(BitTorrent协议):
1.将文件划分为256KB的chunk。
2.节点加入torrent。
3.下载的同时节点会向其他节点上传chunk。
4.节点可能加入或离开(获得完整文件离开,可能留下数据,也可能不留下)。
P2P索引技术(集中式索引,洪泛式查询):
文件共享(电驴):
1.利用索引动态跟踪节点所共享的文件位置。
2.节点需要告诉索引他拥有哪些文件。
3.节点搜索索引,从而获知能得到那些文件。
即时消息(QQ):
1.索引负责将用户名映射到位置。
2.当用户开启IM应用时,需要通知索引他的位置。
3.节点检索索引,确定用户IP地址。
在浏览器中输入网址后的全部执行过程:
(1) 浏览器获取输入的域名www.baidu.com(输入域名)
(2) 浏览器向DNS请求解析www.baidu.com的IP地址(请求解析)
(3) 域名系统DNS解析出百度服务器的IP地址(解析)
(4) 浏览器与该服务器建立TCP连接(默认端口号80)(建立TCP连接,三次握手)
(5) 浏览器发出HTTP请求,请求百度首页(发出HTTP请求,请求文件)
(6) 服务器通过HTTP响应把首页文件发送给浏览器(响应请求,发出文件)
(7) TCP连接释放(释放链接,四次挥手)
(8) 浏览器将首页文件进行解析,并将Web页显示给用户(解析文件)