Yanıtlar:
\r\n
, çünkü protokol belirtiminde satır sonu olarak tanımlanır. RFC2616, bölüm 2.2, "Temel Kurallar" ın başlangıcında, açıkça belirtmektedir :
CR = <US-ASCII CR, satır başı (13)>
LF = <US-ASCII LF, satır besleme (10)>
HTTP / 1.1, CR LF dizisini varlık dışındaki tüm protokol öğeleri için satır sonu işareti olarak tanımlar -vücut
RFC2616 teknik olarak RFC7230 tarafından geçersiz kılınmıştır, ancak önemli değişiklikler yapmaz ve yine CRLF'yi bölüm 3'te sınırlayıcı olarak çağırır ve RFC , "CRLF" olarak tanımlamak için RFC5234, Ek B.1'e başvurur%x0D %x0A
.
Bununla birlikte, insanların hangi amaçla olursa olsun standardı kıracağını kabul ederek, bölüm 19.3'te bir "tolerans hükmü" vardır ( doğru diziyi tekrarladığını unutmayın ):
İleti başlığı alanları için satır sonlandırıcısı CRLF dizisidir. Bununla birlikte, bu tür başlıkları ayrıştırırken uygulamaların tek bir LF'yi hat sonlandırıcı olarak tanımasını ve önde gelen CR'yi yoksaymasını öneririz.
Daha yeni RFC7230'da, § 3.5
Başlangıç satırı ve başlık alanları için satır sonlandırıcı CRLF dizisi olsa da, bir alıcı tek bir LF'yi satır sonlandırıcı olarak tanıyabilir ve önceki CR'leri yok sayabilir.
Bu nedenle, Kötülük olmak veya RFC kurallarını başka bir şekilde ihlal etmek istemiyorsanız kullanın \r\n
.
\ r \ n çünkü RFC 2616 böyle diyor (Bölüm 2.2, "Temel Kurallar"):
HTTP / 1.1, CR LF dizisini
varlık gövdesi dışındaki tüm protokol öğeleri için satır sonu işareti olarak tanımlar (
toleranslı uygulamalar için bkz. Ek 19.3 ). Bir varlık gövdesi içindeki satır sonu işareti, bölüm 3.7'de açıklandığı gibi ilişkili ortam türüne göre tanımlanır.CRLF = CR LF
CRLF ("\ r \ n"), çünkü tarayıcılar RFC2616'yı izliyor .