【HTTP权威指南】笔记之四,实体、编码和国际化

本文深入解析了HTTP头部信息中的实体和编码概念,包括content-length的作用、客户端如何通过accept-encoding指定编码偏好,以及服务器如何利用差异编码提升传输效率。同时探讨了国际化字符集的选择和内容协商机制。
摘要由CSDN通过智能技术生成

一. 实体和编码

在头部信息中,需要标注实体的类型(content-type)、大小(content-length)、自然语言(content-language)、编码(content-encoding)


content-length相关:

  1. 检测截尾 - 在持久连接中分割数据
  2. 压缩后实际传输的长度而不是压缩之前
  3. content-length可以忽略的情况:
  • 使用HEAD等方法只获取头部的时候
  • 含有transfer-encoding时,该编码方式通过结尾是一个特定长度字符串(比如zero-byte chunk)时,表示结尾
  • multipart/byteranges的分部传输,则需要每一部说明自己的大小

客户端可以通过accept-encoding来向服务器请求自己能够接受的编码方式,并使用q(0 ≤ q ≤ 1)值来表示对编码方式的偏爱度。

差异编码 - 服务器可以只告诉客户端或者代理服务器与之前缓存版本不一样的地方,客户端只需要替换修改就可以获得新的页面。

二. 国际化

字符集是根据一定协议将计算机编码转变为自然语言文字的对应表集合。


客户端可以通过accept-language来向服务器请求自己能够接受的自然语言。


三. 内容协商与转码

协商主要是指服务器提供多个页面(比如电脑端、手机端;不同语言版本等),传输给用户最适合的那一个。


协商的主要方式:

  1. 客户端驱动的协商
    a. 客户端发送请求
    b. 服务器提供2个版本供客户端选择
    c. 客户端选择后再次请求
    d. 服务器返回目标页面
    这种方法需要进行多次传输,并且造成uri冗杂
  2. 服务器驱动的协商
    服务器通过header的内容来猜测传输给用户什么
  3. 透明协商
    使用中间代理来进行报文交换的最小化实现
    根据vary首部向不同的客户端提供不同的版本,并随时替换缓存。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值