rendre plus tolérant #HTTP_HEADER et son : #2350

Closed
opened 12 years ago by cam.lafit · 5 comments
Owner

#HTTP_HEADER est assez sensible à la présence des espaces, en effet
#HTTP_HEADER{Location : url_web} ne sera pas accepté à tout les coups contrairement à #HTTP_HEADER{Location: url_web}

Il pourrait être bon de considérer ces 2 cas comme similaires.

#HTTP_HEADER est assez sensible à la présence des espaces, en effet *#HTTP_HEADER{Location : url_web}* ne sera pas accepté à tout les coups contrairement à *#HTTP_HEADER{Location: url_web}* Il pourrait être bon de considérer ces 2 cas comme similaires.
Owner

Je me dis au contraire que cette fonction doit être fiable et envoyer ce qu'on écrit tel quel, sans essayer d'être plus maline que l'auteur.

Par ailleurs, ça fait prendre de mauvaises habitudes à l'écriture et entraîne un cercle vicieux où tout le monde doit appliquer cette "tolérance", qui devient donc partie de la norme de facto. Par exemple, IE qui essayait d'être sympa en interprétant &nbsp sans point-virgule comme une entité, c'était une fausse bonne idée car du coup les gens mettaient ça dans leur code HTML et ça passait pas sur les autres navigateurs, ou alors ils devaient se mettre à faire pareil.

Si la spec dit "Location: xxx", je pense qu'on devrait la respecter. Est-ce que tu as des exemples de cas où ça serait important d'avoir cette tolérance ?

Je me dis au contraire que cette fonction doit être fiable et envoyer ce qu'on écrit tel quel, sans essayer d'être plus maline que l'auteur. Par ailleurs, ça fait prendre de mauvaises habitudes à l'écriture et entraîne un cercle vicieux où tout le monde doit appliquer cette "tolérance", qui devient donc partie de la norme de facto. Par exemple, IE qui essayait d'être sympa en interprétant &nbsp sans point-virgule comme une entité, c'était une fausse bonne idée car du coup les gens mettaient ça dans leur code HTML et ça passait pas sur les autres navigateurs, ou alors ils devaient se mettre à faire pareil. Si la spec dit "Location: xxx", je pense qu'on devrait la respecter. Est-ce que tu as des exemples de cas où ça serait important d'avoir cette tolérance ?
Poster
Owner

Ciao

Je n'ai pas de cas technique bloquant juste d'usage, du genre tu perd ta journée à chercher le bogue.
De plus la spec (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html) me semble du coup imprécise sur la question de cet espace.

Les exemples sont sans espace mais la spécification isole à chaque fois le ":" par un espace.

Ciao Je n'ai pas de cas technique bloquant juste d'usage, du genre tu perd ta journée à chercher le bogue. De plus la spec (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html) me semble du coup imprécise sur la question de cet espace. Les exemples sont sans espace mais la spécification isole à chaque fois le ":" par un espace.
Owner

C'est vrai que la spec ne semble pas stricte sur la question des espaces. C'est flagrant dans le cas des points-virgules, même dans leurs exemples.

Du coup ça veut dire que les clients HTTP (les navigateurs) sont censés être souples aussi quand ils reçoivent un header avec des espaces.

Notre balise #HTTP_HEADER doit donc effectivement accepter d'envoyer un header formaté ainsi, mais quoi qu'il en soit elle n'aurait aucune raison de le transformer au vol.

C'est vrai que la spec ne semble pas stricte sur la question des espaces. C'est flagrant dans le cas des points-virgules, même dans leurs exemples. Du coup ça veut dire que les clients HTTP (les navigateurs) sont censés être souples aussi quand ils reçoivent un header avec des espaces. Notre balise #HTTP_HEADER doit donc effectivement accepter d'envoyer un header formaté ainsi, mais quoi qu'il en soit elle n'aurait aucune raison de le transformer au vol.
Owner

Qu'est ce que tu entends par

#HTTP_HEADER{Location : url_web} ne sera pas accepté à tout les coups

La balise #HTTP_HEADER renvoie bêtement en entête HTTP tout ce que tu lui donne en argument (Shit in, shit out). Je ne vois pas ce qu'elle devrait faire. Ce n'est pas à SPIP d'interpréter et de ré-écrire des headers mal écrits, c'est exactement le genre de truc "automagique" qui génère des bugs.

Qu'est ce que tu entends par <pre> #HTTP_HEADER{Location : url_web} ne sera pas accepté à tout les coups </pre> La balise #HTTP_HEADER renvoie bêtement en entête HTTP tout ce que tu lui donne en argument (Shit in, shit out). Je ne vois pas ce qu'elle devrait faire. Ce n'est pas à SPIP d'interpréter et de ré-écrire des headers mal écrits, c'est exactement le genre de truc "automagique" qui génère des bugs.
Owner

Statut changé à Fermé

**Statut changé à Fermé**
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.