哪种换行符样式更适合在 HTTP 头中使用: \r\n或 \n,为什么?
\r\n
\n
因为它被定义为协议规范中的换行符:
CR = < US-ASCII CR,回车(13) > LF = < US-ASCII LF,linefeed (10) > HTTP/1.1将序列 CR LF 定义为除实体主体之外的所有协议元素的行尾标记
RFC2616在技术上被 RFC7230所淘汰,但它没有做出重大改变,并再次在 第三部分中调用 CRLF 作为分隔符,而 RFC 引用 RFC5234,附录 B.1将“ CRLF”定义为 %x0D %x0A。
%x0D %x0A
然而,认识到人们会为了任何目的打破标准,在 第19.3条中有一个“容忍条款”(注意它重复了 正确序列) :
消息头字段的行结束符是序列 CRLF。但是,我们建议应用程序在解析这样的报头时,将单个 LF 识别为行结束符,而忽略前导 CR。
最新款的 RFC72303.5
虽然起始行和头字段的行终止符是序列 CRLF,但是收件人可以将单个 LF 识别为行终止符,并忽略之前的任何 CR。
因此,除非你想成为邪恶的或以其他方式打破 RFC 的规则,使用 \r\n。
CRLF (“ r n”) ,因为浏览器遵循 RFC2616。
因为 RFC2616是这么说的(第2.2节,“基本规则”) :
HTTP/1.1定义了 CR LF 序列 作为所有行的结束标记 协议元素,除了 实体(见附录19.3) 容忍申请) 内的行结束标记 实体-主体由其 关联媒体类型,如 第3.7条。 CRLF = CR LF
HTTP/1.1定义了 CR LF 序列 作为所有行的结束标记 协议元素,除了 实体(见附录19.3) 容忍申请) 内的行结束标记 实体-主体由其 关联媒体类型,如 第3.7条。
CRLF = CR LF