2015-05-29 16 views
5

Quando un web server reclama ContentType: text/plain in una risposta HTTP, il client può supporre che newlines sia '\ n' o '\ r \ n', o qualcos'altro, o dovrebbe consentire entrambi?Qual è il newline corretto da usare con text/plain ContentType?

Quali standard specificare? Sono perso e confuso tra gli standard. RFC 2046 sembra definire il sottotipo "plain", ma ci si riferisce a RFC 822.

Ho sfogliato RFC 822 ma sono confuso se sta dicendo che CRLF (\ r \ n) non è esplicitamente consentito (nel corpo del messaggio), o se CRLF dovrebbe essere implicitamente permesso perché qualsiasi carattere ASCII è legale dopo la riga vuota?

RFC 5322 definisce il 'formato di messaggio Internet' e non sono sicuro se questo si applica a HTTP (sembra destinato per e-mail), ma in particolare dice SOLO CR o LF nel corpo del messaggio che dovresti vedere è il Combinazione CRLF?

risposta

3

RFC 2046 sezione 4.1.1 dice:

"La forma canonica di qualsiasi MIME 'testo' sottotipo deve sempre rappresentare un'interruzione di linea come una sequenza CRLF Allo stesso modo, ogni occorrenza di CRLF in MIME. 'Testo' devono rappresentare un'interruzione di riga È inoltre vietato l'uso di CR e LF al di fuori delle sequenze di interruzioni di linea. "

Per essere onesti, tuttavia, se si sta utilizzando questo per scopi di analisi o visualizzazione, non ci farei affidamento. La maggior parte dei server web imposterà il tipo di contenuto dall'estensione del file, quindi qualsiasi file Unix con estensione .txt otterrà il testo/il tipo di contenuto semplice (illegalmente, per quanto riguarda il paragrafo precedente).