【问题标题】:Does SMTP transfer 7bit or 8bit characters (clear MSB or not?)SMTP 是否传输 7 位或 8 位字符(是否清除 MSB?)
【发布时间】:2021-01-31 11:51:52
【问题描述】:

我的理解是,最初的 SMTP 协议被定义为仅使用 7 位来限制字符的传输,以节省传输成本。

该协议已有将近 40 年的历史,从那时起,多个 RFC 扩展了标准。

出于兼容性原因,许多(如果不是大多数)8 位干净的现代服务器会将消息转换为“7 位兼容”格式,例如quoted-printable 或 base64。

所以从技术上讲,所有字符都是 7 位 ASCII。

然而,我的问题的症结是,即使数据以 7bit 友好的方式编码,这是否意味着 SMTP 服务器之间的物理比特传输是以 7bit 为单位发生的,还是以 8bits 发生的?

我的假设是它发生在 8 位中,即使数据是用 ASCII 编码的。这是正确的吗?

以下是我找到的一些相关链接:

>

http://cr.yp.to/smtp/8bitmime.html

>

https://www.ibm.com/support/knowledgecenter/en/SSB27U_6.4.0/com.ibm.zvm.v640.kiml0/smtmlfr.htm

>

https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol#8BITMIME

更新

我的问题的细化应该表述为:今天的 SMTP 服务器是否仍然清除高位,并仅使用低 7 位对 7 位 ASCII 进行编码,或者它们实际上是否使用完整的八位字节,从而赋予 MSB 意义?

【问题讨论】:

    标签: smtp 8-bit 7-bit


    【解决方案1】:

    我认为您要问的是:“SMTP 客户端在向 SMTP 服务器发送消息时是否会移动位,以使每个字符仅使用 7 位,而第 8 位是下一个字符的开始?”

    如果是这样,不。从来没有过这种情况。

    从一开始,SMTP 客户端/服务器就一直使用每个字符的全部 8 位。

    换句话说,SMTP 客户端和服务器使用 ASCII 字符编码,其中不包括在 ISO-8859-1 等 8 位字符编码中发现的重音字符。 ASCII 编码中值大于 127 的字符被视为未定义。

    这可能有多种原因:

    1. ASCII 易于支持
    2. 每个语言环境都有自己首选的扩展字符编码,与其他语言环境不兼容 - 其中一些需要多个字节来表示一个字符。
    3. 我不确定 UTF-8 是否存在(但我认为多字节 unicode 存在 - 例如 UCS2 / UTF-16)
    4. 期望有这么多软件在所有广泛使用的字符集之间实现字符集转换是困难且不现实的(当时 unicode 和字符集转换库还没有那么广泛)
    5. MIME、SMTP 等之前的“MESSAGE”规范是为美国“互联网”编写的,可能不需要 ASCII 以外的任何内容(因此,为什么原始消息规范(例如 rfc0822 和更早版本)没有定义编码机制)。

    【讨论】:

    • 谢谢@jstedfast。我已将您的答案标记为正确,因为它确实回答了我问题的主要部分。但是,我想我想传达的是 SMTP 服务器是否仍然清除八位字节中的 MSB?不是他们是否会传输 7 位单元,因为我同意这从未发生过。所以我的问题的细化应该表述为:今天的 SMTP 服务器是否清除高位,并仅使用 7 位对 7 位 ASCII 进行编码,或者他们实际上使用完整的八位字节,有时赋予 MSB 意义?
    • 我认为他们从未清除过 MSB。我认为这只是一个问题,因为根据系统的语言环境字符集的不同,它可能会有不同的解释。不过,不要引用我的话。我只是不认为程序员会努力清除 MSB。
    • RFC788 逐字说明:“每个 7 位字符在 8 位字节(或八位字节)中右对齐传输,高位清零。”
    • 对,但这只是描述“7bit”的含义。这并不是说 SMTP 协议的服务器实现在从客户端接收数据时清除 MSB。
    • 在 RFC1428 中:> 这表明在旧的 7 位实现中,SMTP 网关确实会清除 MSB 事实?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    相关资源
    最近更新 更多