【问题标题】:What's the difference between \r\n and \n\r\n 和 \n 有什么区别
【发布时间】:2012-03-07 15:53:52
【问题描述】:

在终端中,两者似乎没有区别

echo -en 'first\r\nsecond'echo -en 'first\n\second'

但在没有 \r 的代码中它不起作用

echo -en 'GET /test HTTP/1.1\r\nHost: localhost\r\n\r\n' | nc localhost 9292 

有效,但是

echo -en 'GET /test HTTP/1.1\r\nHost: localhost\n\n' | nc localhost 9292 

没有

谁能解释为什么会这样?

【问题讨论】:

标签: character-encoding control-characters


【解决方案1】:

一些应用程序可以将 \r\n(又名 CRLF,回车换行)和 \n(又名 LF,换行)等效地处理为换行符序列。你的终端就是一个例子。

HTTP/1.1 Specification 规定 HTTP 标头行始终以 CRLF 结尾。因此,符合规范的 HTTP 服务器(例如您在 localhost:9292 上运行的服务器)不会将 LF 本身解释为有效的 HTTP 标头行终止序列。

【讨论】:

    猜你喜欢
    • 2011-04-18
    • 2013-03-04
    • 1970-01-01
    • 2010-11-19
    • 2011-04-28
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多