使用text/plain ContentType时,正确的换行符是什么?

8
当Web服务器在HTTP响应中声明ContentType: text/plain时,客户端可以假设换行符是'\n'、'\r\n'、其他某些字符,还是应该允许两种情况并存?
哪些标准指定了这一点?我在标准中感到迷失和困惑。RFC 2046似乎定义了“plain”子类型,但却引用了RFC 822。
我浏览了RFC 822,但对于它是否明确规定了CRLF (\r\n)不允许(在消息正文中),还是隐含地允许CRLF,因为空行后面的任何ASCII字符都是合法的,感到困惑。
RFC 5322定义了“Internet消息格式”,我不确定它是否适用于HTTP(似乎是面向电子邮件的),但它明确表示消息体中唯一会出现CR或LF的位置是CRLF组合...?
1个回答

8

RFC 2046 第4.1.1节规定:

"MIME“text”子类型的规范形式必须始终将换行符表示为CRLF序列。 同样, MIME“text”中的任何CRLF都必须表示换行符。 在换行符序列之外使用CR和LF也是不允许的。"

但如果您要将其用于解析或显示目的,则我会建议您不要依赖此规则。 大多数Web服务器将设置content-type以从文件扩展名获取,因此任何带有.txt扩展名的Unixy文件都将获得text/plain的content-type(就上述段落而言是不合法的)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接