17.2 转码

来源:互联网 发布:apache 重写功能 编辑:程序博客网 时间:2024/05/18 07:12
  • 如果服务器没有能满足客户端需求的文档,服务器可以给出一个错误响应。但理论上,服务器可以把现存的文档转换成某种客户端可用的文档。这种选项称为转码。
  • 假设的转码:
    这里写图片描述
    有 3 种类别的转码:格式转换、信息综合、内容注入。

1. 格式转换

  • 格式转换:是指将数据从一种格式转换成另一种合适格式,使之可以被相应的客户端查看。
  • 格式转换可以由内容协商首部集来驱动,但也能由 User-Agent 首部来驱动。
  • 注意,内容转换或转码与内容编码或传输编码是不同的,后两者一般用于更高效或安全地传输内容,而前两者则可使访问设备能够查看内容。

2. 信息综合

  • 信息综合(information synthesis):从文档中提取关键的信息片段,这是一种有用的转码操作。这种操作的例子包括根据小节标题生成文档的大纲,或者从页面中删除广告和商标。
  • 根据内容中的关键字对页面分类是更精细的技术,有助于总结文档的精髓。这种技术常用于 Web 页面分类系统中,比如门户网站的 Web 页面目录。

3. 内容注入

  • 内容注入:前面描述的两类转码通常会减少 Web 文档的内容,但还有另一类转换会增加文档的内容,即内容注入转码。内容注入转码的例子有自动广告生成器和用户追踪系统。
  • 设想一下,一个能往途经的每个 HTML 页面中自动添加广告的广告植入转码器是多么的诱人(当然也很烦人)。这类转码操作只能动态进行——它必须即时添加与当前的特定用户有关,或针对特定用户的广告。也可以构建用户追踪系统,在页面中动态增加内容,用于收集用户查看页面和客户端浏览方式的统计信息。

4. 转码与静态预生成的对比

  • 转码的替代做法是在 Web 服务器上建立 Web 页面的不同副本。但是,这种方法不是很切合实际,原因很多:某个页面中的任何小改动都会牵扯很多页面,需要很多空间来存储各页面的不同版本,而且使页面编目和 Web 服务器编程(以提供正确的版本)变得更加困难。
  • 有些转码操作,比如广告插入(尤其是定向广告插入),就不能静态实现——因为插入什么广告和请求页面的用户有关。
  • 对单一的根页面进行即时转换,是比静态的预生成更容易的解决方案。但这样会在提供内容时增加时延。不过有时候其中一些计算可以由第三方进行,这样就减少了 Web 服务器上的计算负荷——比如可以由代理或缓存中的外部 Agent 完成转换。
    这里写图片描述
原创粉丝点击