16.5 注意的问题

来源:互联网 发布:单片机属于嵌入式吗 编辑:程序博客网 时间:2024/05/30 23:04

1. 首部和不合规范的数据

  • HTTP 首部必须由 US-ASCII 字符集中的字符构成。不过,并不是所有的客户端和服务器都正确地实现了这一点,你可能会时不时收到一些代码值大于 127 的非法字符。
  • 很多 HTTP 应用程序使用操作系统和库例程来处理字符(比如 Unix 中的字符分类库 ctype),但不是所有这些库都支持 ASCII 范围(0 ~ 127)之外的字符代码。
  • 在某些情况下(一般来说,是较老的实现),当输入非 ASCII 字符时,这些库可能会返回不正确的结果,或者使应用程序崩溃。假设报文中含有非法数据,在使用这些字符分类库来处理 HTTP 报文之前,要仔细阅读它们的文档。

2. 日期

  • HTTP 的规范中明确定义了合法的 GMT 日期格式,但要知道并非所有 Web 服务器和客户端都遵守这些规则。例如,我们曾见过 Web 服务器发送的无效 HTTP Date (日期)首部中的月份是用本地语言表示的。
  • HTTP 应用程序应当尝试容忍一些不合规矩的日期,不能在接收的时候崩溃。不过也不是所有发送出来的日期都能被正确解释,如果日期无法解析,服务器应当谨慎处理。

3. 域名

  • DNS 目前还不支持在域名中使用国际化的字符。现在正在进行支持多语言的域名的相关标准化工作,但还没有被广泛部署。