zoukankan      html  css  js  c++  java
  • 《HTTP 权威指南》笔记:第十六章&第十七章 国际化、内容协商与转码

    《HTTP 权威指南》笔记:第十六章 国际化

    客户端通过在请求报文中的 Accept-Language 首部和 Accept-Charset 首部来告知服务器:“我理解这些语言.”
    服务器通过 Content-type 首部中的 charset 参数和 Content-Language 来告知客户端文件可用的字母表和语言.
    两者进行协商,得到最佳的结果.

    MIME charset

    术语

    字符编码方案:将二进制代码转化为字符代码
    字符集:将字符代码转换为字符
    MIME 字符集:是将特定的编码方案和特定的已编码字符集组合而成.

    常见的 MIME charset: 

    • us-ascii
    • iso-8859-1
    • utf-8

    如果客户端无法推断出字符编码,就假定使用的是 ios-8859-1.

    类型

    1. 固定宽度
    2. 可变宽度+无模态:对不同的字符代码采用不同数量的比特.
    3. 可变宽度+有模态:可以通过转义处理相互有重叠的字符集

    语言标记

    定义:语言标记是命名口语的标准化字符串短语.
    子标记定义:语言标记包括一个或多个部分,每个部分称为一个子标记.
    类型:

    1. 主子标记:第一个子标记,其值是标准化的;通常表示语言的类型.
    2. 可选子标记:第二个子标记,通常表示某一种语言所在的地区的方言
    3. 其他子标记都是未注册的.·

    应用:
    在响应报文中的 Content-Language 这个 header 和请求报文中的 Accept-Language 中出现.

    《HTTP 权威指南》笔记:第十七章 内容协商与转码

    内容协商的目标是在保证一个 URL 的情况下,为客户端提供不同的、最适合的页面.
    可以通过三种方法来进行内容协商:

    1. 客户端驱动(存在多个 URL 的问题)
    2. 服务器驱动
    3. 透明协商

    服务器驱动的协商

    服务器通过对客户端的请求报文进行解析,得到相关的信息,然后决定回应的报文主体,主要的方式有两种:

    1. 通过内容协商首部
    2. 通过其他首部进行变通,例如 User-Agent 首部

    内容协商首部——Accpet

    内容协商首部是客户端发向服务器的请求报文中的 Accept 首部,它包括:

    • Accept
    • Accept-Language
    • Accept-Charset
    • Accept-Encoding

    透明协商

    定义:透明协商是缓存代理在来代表服务器对客户端进行协商的过程,其能够减少服务器的负担.
    当缓存中的内容协商首部的值与请求中的协商首部的值不同的时候,需要从原始服务器中请求一份新的文档.

    Vary 首部

    在缓存存储来自服务器的文件时,在缓存中包含了 Vary 首部.
    当第二次有不同的内容协商的请求报文的时候,能够从服务器更新并储存一个 alternate,另外一个名称叫做 variant

    内容转码

    内容协商的机制中存在一个缺陷:服务器无法满足客户端的内容协商的要求,没有能提供的相应的格式的文件.
    这种情况下,可以通过内容转码来进行实现.
    常见的类型有下面三种:

    1. 格式转换:将 HTML 格式文件转化为 WML 格式文件,便于无线的客户端查看
    2. 信息综合: 将小节标题生成文档的大纲
    3. 内容注入:不减少内容,,例如自动广告生成器和用户追踪系统





  • 相关阅读:
    ubuntu系统上常用的开发工具
    wamp环境下安装pear
    PHP中preg_match_all函数用法使用详解
    晚睡对策
    iphone相关
    090213 阴
    月曜日の予定(10:30までREVIEW  10:00まで完成予定)
    一个通知
    我还没走
    星期5
  • 原文地址:https://www.cnblogs.com/FBsharl/p/10662674.html
Copyright © 2011-2022 走看看