网络应用的体系结构
利用大量服务器实现可扩展性,分布式,服务器农场。
网络应用进程通信
网络应用的服务需求
internet传输层服务模型
web(world wide web) 应用 万维网:Tim Berners-Lee
网页,网页互相链接
对象的寻址:URL(统一资源定位器)
web 网站,apache 事实上的服务器
服务器在80端口等待客户的请求。传输层是TCP协议(套接字)
HTTP 是无状态协议,服务器不维护任何有关客户端过去行为的信息。
有状态的协议更复杂,
非持久性链接:每个TCP链接最多传输1个对象,HTTP 1.0
持久性连接:每个TCP链接最多传输多个对象。
响应时间的分析与建模:获得一个需要 2个RTT+文件传送 的时间。
持久性链接:无流水的之久链接 每个对象耗时1个RTT 一共11个RTT
带有流水机制的持久性链接:客户端只要遇到一个引用对象就尽快发送请求,收到所有的引用导向只需要1个RTT 一共 3个RTT
HTTP消息格式:
请求消息:ASCII 人可以直接读。已经建立起链接了。HOST 是有用的,缓存和代理服务器会用到。get post head(不要把请求的对象放入响应消息中,往往做测试用的) put() delete
响应消息:状态行200,响应头,响应 架设一个web服务。买域名,自己的网站。
200OK 404 not found RFC看详细的 telnet
cookie技术 无状态 身份认证 推荐 购物车的实现 为了辨别用户身份,进行session跟踪存储在用户本地终端上的数据 不足:安全问题 cookie 研究替代技术
web缓存/代理服务器技术。 :满足不访问服务器的前提下满足客户端的HTTP 请求。不足:新浪新闻,一访问 昨天的,与远端服务器上是一致的。 304 NOT modified 没改变。
性能优化的技术,缩短客户请求的响应时间。减少机构、组织的流量,在大范围内实现有效的内容分发(CDN内容分发网络)。
如果缓存服务器里面缓存了这个网页,那就返回就对了。 解决办法1、升级带宽。
ISP 比如:中国移动,中国电信 缓存服务器的命中率在 0.2-0.7之间 CPU也有缓存。
缓存服务器发送If-modified-since:<date> get 请求 ,服务器返回200表示改了,返回304表示改了。再获取新版本。
请求,响应
Email应用的构成
邮件客户端
邮件服务器 SMTP协议
命令 响应
互联网上的核心服务:DNS(domain name sysytem 域名系统)应用
互联网上主机/路由器的识别问题
IP地址本身是一组数字,并不便于使用。
IP地址和域名之间如何映射? 域名解析系统就是DNS 。把域名翻译为IP地址。
多层命名服务器 构成的 分布式数据库 为什么不是集中式的? 单点失败问题(),流量问题,距离问题,维护性问题。
IPV4 64位 IPV6 128位
DNS服务
分布式层次式的数据库。集中式的不可行,分布式的有代价,进行了3次查询。
ROOT DNS 根域名服务器 ,本地域名服务器无法解析域名时,访问根域名服务器(13个),如果根域名不知道,访问权威域名服务器。
COM DNS 顶级域名服务器 com,org,net uk ,cn ,fr ,edu Network solutions 维护com, educause 维护edu顶级域名服务器,
AMAZON.COM DNS
本地域名服务器 不属于层级体系,每个ISP有一个本地域名服务器。主机进行DNS查询时,都要发送给本地域名服务器,作为代理然后发给层级域名解析服务器系统。我不认识这个域名的IP,但是你可以问我。
迭代查询 根域名返回给本地域名服务器顶级域名服务器的域名
递归查询 根域名继续帮本地域名服务器查询。
DNS缓存和更新。
只要活得域名解析服务器活得域名---IP映射。即缓存这一映射
本地域名服务器一般会缓存顶级域名服务器的映射。
我国没有根域名服务器,是否会影响国家网络安全问题。
DNS消息格式和记录:分布式层次式的数据库。
数据库里面存放数据的格式。四元组 RR format:(name,value,type,ttl) 有类型,不同的类型对应的name 和 value 意义不同
DNS协议:查询(query) 回复(reply)
如何注册一个域名:
备案?
socket编程