2012-03-07 81 views
0

在終端好像沒有什麼區別兩個什麼之間的區別 r n和 n

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 

任何人都可以解釋它爲什麼是?

+1

請參閱http://stackoverflow.com/questions/3091524/what-are-carriage-return-linefeed-and-form-feed – Zaki 2012-03-07 15:57:30

回答

1

某些應用程序可以同時處理\ r \ n(a.k.a.CRLF,回車換行)和\ n(又名LF,換行)等同於換行符序列。你的終端就是一個例子。

HTTP/1.1 Specification指示HTTP標題行始終以CRLF結尾。因此,符合規範的HTTP服務器(例如您在localhost上運行的那個:9292)不會將LF本身解釋爲有效的HTTP標題行終止序列。

相關問題