uni*_*n83 6 unicode mime quoting http-headers
令我困惑的是解码HTTP标头值.
示例标题:
Some-Header: "quoted string?"; *utf-8'en'Weirdness
可以引用标题值吗?那么自己的编码怎么样"?是'一个有效的引用字符?分号(;)的意义是什么?HTTP标头的值解析器是否可以被视为MIME解析器?
我正在制作一个透明的代理,需要透明地处理和修改许多野外的头字段.这就是为什么我需要这么多关于格式的细节.
可以引用标题值吗?
如果你的意思是RFC 5987 parameter生产适用于标题值的主要部分,那么没有.
Some-Header: "foo"; bar*=utf-8'en'bof
Run Code Online (Sandbox Code Playgroud)
这里标题值的主要部分可能"foo"包括引号,但是......
分号(;)的意义是什么?
为每个命名标题分别定义特定处理.所以分号对于说Content-Disposition,但是不是很重要Content-Length.
显然这不是一个非常令人满意的解决方案,但这就是我们所坚持的.
我正在制作一个透明的代理,需要透明地处理和修改许多野外的头字段.
您无法以通用方式处理这些问题,您必须知道每个可能标头的形式.对于您无法识别的任何内容,请勿尝试分解标头值; 实际上,目前很少支持RFC 5987,你不太可能对它进行很多有用的处理.
今天的现状是标题值中的非ASCII字符无法正常使用跨浏览器,无论是编码还是原始.
幸运的是,他们很少需要.唯一真正常见的用例是非ASCII文件名,Content-Disposition但通过将文件名放在尾随URL路径部分中更容易解决.
HTTP标头的值解析器是否可以被视为MIME解析器?
没有.一般来说,HTTP大量借用MIME和RFC 822系列标准,但它不属于822系列.它有自己的标题低级语法,看起来像822,但不太兼容.任意MIME功能都不能在HTTP中使用,必须有一个标准化机制将它们明确地拖到HTTP中 - 这就是RFC 5987对于(部分)RFC 2231的作用.
(有关其他一些差异的讨论,请参见RFC 2616第19.4节.)
理论上,multipart表单提交是 822系列的一部分,您应该能够在那里使用RFC 2231编码.但实际情况是浏览器也不支持.
| 归档时间: |
|
| 查看次数: |
2003 次 |
| 最近记录: |