2.3 Web应用

Web与HTTP

  • 网页(Web Page)包含多个对象(objects)
    对象: HTML文件、JPEG图片、视频文件、动态脚本等
    基本HTML文件: 包含对其他对象引用的链接

  • URL(UniformResoureLocator):统一资源定位器 RFC1738
    Scheme://host:port/path

HTTP连接

  • 非持久性连接(Nonpersistent HTTP)
    • 每个TCP连接最多允许传输一个对象
    • HTTP 1.0版本使用非持久性连接
  • 持久性连接(Persistent HTTP)
    • 每个TCP连接允许传输多个对象
    • HTTP 1.1版本默认使用持久性连接

响应时间分析与建模

  • RTT(Round Trip Time)
    从客户端发送一个很小的数据包到服务器Web服务器并 返回所经历的时间

  • 响应时间(Response time)

    • 发起、建立TCP连接: 1个RTT
    • 发送HTTP请求消息到HTTP响应消息的前几个字节到达: 1个RTT
    • 响应消息中所含的文件/对象传输时间
    • Total=2RTT +文件发送时间

非持久性连接的问题

  • 每个对象需要2个RTT
  • 操作系统需要为每个TCP连接开销资源(overhead)

假定用户在浏览器中输入URLwww.someSchool.edu/someDepartment/home.index,里面包含文本和指向10个jpeg图片的链接。
则本次传输需要22(11*2)个RTT+文件发送时间

持久性连接

  • 发送响应后,服务器保持TCP连接的打开
  • 后续的HTTP消息可以通过这个连接发送
无流水(pipelining)的持久性连
  • 客户端只有收到前一个响应后才 发送新的请求
  • 每个被引用的对象耗时1个RTT
带有流水机制的持久性连接
  • 客户端只要遇到一个引用对象就 尽快发出请求
  • 理想情况下,收到所有的引用对象只需耗时约1个RTT

同上例,[(1(建立链接) + 11 * 1)个RTT + 文件发送时间]

HTTP消息格式

HTTP协议有两类消息

  • 请求消息(request)
  • 响应消息(response)

请求消息


HTTP请求消息的通用格式

响应消息

Cookie技术

Web缓存/代理服务器技术

用户设定浏览器通过缓存进行Web访问
浏览器向缓存/代理服务器发送所有的 HTTP请求

• 如果所请求对象在缓存中,缓存返回对象
• 否则,缓存服务器向原始服务器发送HTTP 请求,获取对象,然后返回给客户端并保存 该对象

Web缓存示例(1)

假定:

  • 对象的平均大小=100,000bit
  • 机构网络中的浏览器平均每秒有15个到原始服务器的请求
  • 从机构路由器到原始服务器的往返延迟=2秒

网络性能分析:

  • 局域网(LAN)的利用率=15%(100kb*15=1.5Mb/10=15%)
  • 接入互联网的链路的利用率=100%(100kb*15=1.5Mb/1.5=100%)(拥塞)
  • 总的延迟=互联网上的延迟+访问延迟+局域网
  • 延迟=2秒+几分钟+几微秒

Web缓存示例(2)

解决方案1:
- 提升互联网接入带宽=10Mbps

网络性能分析:
- 局域网(LAN)的利用率=15%(100kb*15=1.5Mb/10=15%)
- 接入互联网的链路的利用率=15%(100kb*15=1.5Mb/10=100%)
- 总的延迟=互联网上的延迟+访问延迟+局域网
- 延迟=2秒+几微秒+几微秒

问题:
- 成本太高

Web缓存示例(3)

解决方案2:

  • 安装web缓存
  • 假定缓存命中率0.4

网络性能分析:

  • 40%的请求立刻得到满足
  • 60%的请求通过原始服务器满足
  • 接入互联网的链路的利用率下降到60%,从而其延迟可以忽略不计,例如10微秒
  • 总的平均延迟=互联网上的延迟+访问延迟+局域网延迟=0.6×2.01秒+0.4×n微秒<1.4秒

条件性GET方法

目标

如果缓存有最新的版本,则不需要发送请HTTP request msg求对象。

缓存

  • 在HTTP请求消息中声明所持有版本的日期
  • If-modified-since:

服务器

如果缓存的版本是最新的,则响应消息中不包含对象(HTTP/1.0 304 Not Modified)

即客户端每次请求,
先发送至缓存服务器,
缓存服务器接收到请求,(有些请求不需要)并向原始服务器请求,
通过(If-modified-since)来判断缓存服务器是否是最新的。
如果是最新的,则响应消息中不包含对象,否则返回最新对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值