Newsgroup: it.comp.software.newsreader
Titolo: Dubbio sul folding degli header

Come ben sapete gli header lunghi possono essere spezzati su piů linee.
La regola č quella di andare a capo ed iniziare la riga con uno spazio
oppure un tab.
Mi sono imbattuto tuttavia in un dubbio atroce, lo spazio che apre la
riga č da considerarsi parte o no dell'header?
Se guardiamo alla RFC2822 c'č scritto:
---------------------------------RFC2822---------------------------------
2.2.3. Long Header Fields
   Each header field is logically a single line of characters comprising
   the field name, the colon, and the field body.  For convenience
   however, and to deal with the 998/78 character limitations per line,
   the field body portion of a header field can be split into a multiple
   line representation; this is called "folding".  The general rule is
   that wherever this standard allows for folding white space (not
   simply WSP characters), a CRLF may be inserted before any WSP.  For
   example, the header field:
           Subject: This is a test
   can be represented as:
           Subject: This
            is a test
   Note: Though structured field bodies are defined in such a way that
   folding can take place between many of the lexical tokens (and even
   within some of the lexical tokens), folding SHOULD be limited to
   placing the CRLF at higher-level syntactic breaks.  For instance, if
   a field body is defined as comma-separated values, it is recommended
   that folding occur after the comma separating the structured items in
   preference to other places where the field could be folded, even if
   it is allowed elsewhere.
   The process of moving from this folded multiple-line representation
   of a header field to its single line representation is called
   "unfolding". Unfolding is accomplished by simply removing any CRLF
   that is immediately followed by WSP.  Each header field should be
   treated in its unfolded form for further syntactic and semantic
   evaluation.
---------------------------------RFC2822---------------------------------
Sia dall'esempio sia in particolare dall'ultimo paragrafo sembra chiaro
che lo spazio sia da considerarsi parte del header (infatti prescrive di
rimuovere solo il CRLF).
Ma se perň guardiamo gli header Face e X-Face spesso sono splittati su
piů linee, ed in tal caso lo spazio (o il tab) di inizio riga va
eliminato per la corretta visualizzazione del contenuto ... mi chiedo
quindi dove sta l'inghippo.
Questi header sono splittai male? Sono io che interpreto male la RFC?!?!
-- 
My body is a temple. Do you want to come over for midnight mass?
 
 |\ |       |HomePage   : 
http://nem01.altervista.org
 | \|emesis |XPN (my nr): 
http://xpn.altervista.org

quindi dove sta l'inghippo.
L'header Face č codificato base64, giusto? In questo caso gli spazi vanno
sempre tolti perchč non fanno parte della codifica.
-- 
-antonio-
www.geminisoft.com
(email valida sul mio sito)

 oppure un tab.
[cut]
Piccolo aggiornamento, ho fatto delle prove ed in effetti sia per le
Face che per le X-Face non ci sono differenze se inserisco a piacere
degli spazi e presumo anche dei tab e altri caratteri "ascii non
printabili".
Per le X-Face infatti mi sono riguardato il codice ed una delle prime
operazioni fatte prima di decodificare le X-Face č quella di rimuovere
questi caratteri non printabili.
Per la Face invece probabilmente il giochetto fa parte della
codifica/decodifica base64.
Detto questo direi che quindi il modo piů safe di riunire gli header
splittati č di lasciare gli spazi.
-- 
Do not attempt to traverse a chasm in two leaps.


 sempre tolti perchè non fanno parte della codifica.
Ecco qua appunto (vedi mio altro post) :-D
Comunque non direi che gli spazi "vanno tolti", è il decoder base64 che
dovrebbe trascurarli (o almeno così si comporta il modulo base64 di
Python).
-- 
(A)bort, (R)etry, (I)nfluence with large hammer


Python).
Era quello che intendevo.


 Era quello che intendevo.
Ok, allora ci siamo intesi :-)
-- 
If you can't be good, be careful. If you can't be careful, give me a
call.
