Gaya break baris mana yang lebih disukai untuk digunakan dalam header HTTP: \r\n
atau \n
, dan mengapa?
sumber
Gaya break baris mana yang lebih disukai untuk digunakan dalam header HTTP: \r\n
atau \n
, dan mengapa?
\r\n
, karena itu didefinisikan sebagai garis istirahat dalam spesifikasi protokol. RFC2616 menyatakan di awal bagian 2.2, "Aturan Dasar" , cukup jelas:
CR = <US-ASCII CR, carriage return (13)>
LF = <US-ASCII LF, linefeed (10)>
HTTP / 1.1 mendefinisikan urutan CR LF sebagai penanda garis akhir untuk semua elemen protokol kecuali entitas -tubuh
RFC2616 secara teknis sudah usang oleh RFC7230, tetapi tidak membuat perubahan drastis dan lagi-lagi menyebut CRLF sebagai pembatas di bagian 3 , dan referensi RFC RFC5234, Lampiran B.1 untuk mendefinisikan "CRLF" sebagai %x0D %x0A
.
Namun, mengakui bahwa orang akan melanggar standar untuk tujuan apa pun, ada "ketentuan toleransi" di bagian 19.3 (perhatikan bahwa itu mengulangi urutan yang benar ):
Terminator baris untuk bidang header pesan adalah urutan CRLF. Namun, kami merekomendasikan bahwa aplikasi, ketika mengurai header tersebut, mengenali LF tunggal sebagai terminator garis dan mengabaikan CR terkemuka.
Dalam RFC7230 yang lebih baru , § 3.5
Meskipun terminator garis untuk bidang mulai-baris dan header adalah urutan CRLF, penerima MUNGKIN mengenali LF tunggal sebagai terminator garis dan mengabaikan CR sebelumnya.
Oleh karena itu, kecuali Anda ingin menjadi Jahat atau melanggar aturan RFC, gunakan \r\n
.
\ r \ n karena RFC 2616 mengatakan demikian (Bagian 2.2, "Aturan Dasar"):
sumber
CRLF ("\ r \ n"), karena browser mengikuti RFC2616 .
sumber