2013-01-20 6 views
0

Je pense à une application qui utilisera HTTP pour transférer des blocs de nombres avec des types de données comme "network-endian, signed 32-bit integer" ou "ieee binary64, network-endian", etc. Pour cette application, je (probablement) vouloir mettre cette information de type dans les en-têtes HTTP plutôt que dans le corps du message.MIME Type pour tableaux numériques?

Cela semble être un travail pour en-tête Content-Type, mais je ne connais pas de types MIME standard pour ce genre de chose. Y a-t-il? Si non, quelle est la meilleure option? Inventer un type de contenu? Inventer un nouvel en-tête HTTP? Mettez-le dans le corps du message après tout?

+1

Sonne à moi comme "le mettre dans le corps après tout". Le corps peut facilement être un format de votre choix sans avoir à modifier et/ou ignorer les en-têtes HTTP. Laissez HTTP prendre soin de lui-même et utilisez le corps pour vos propres données. Le corps peut facilement avoir son propre format d'en-tête et de corps; Ainsi, vous enverriez des en-têtes HTTP suivis d'une ligne vide et de vos propres en-têtes, suivis de vos données. – tripleee

Répondre

0

S'il s'agit d'un en-tête, le nom de champ de l'en-tête définit son contenu, et non le type de contenu; ils devraient être complètement séparables. C'est-à-dire, un Content-Type qui a une relation particulière avec/requirement pour un en-tête est une odeur de conception de protocole. Je le mettrais dans le corps du message et je frapperais un nouveau type de média - mais seulement après avoir vraiment regardé les options actuelles, qui sont nombreuses. Les formats sont durs.

+0

Pouvez-vous clarifier votre premier paragraphe? Je veux que les méta-données décrivent quel type d'information est dans le corps. C'est * exactement * à quoi sert Content-Type. Même si je ne devrais pas l'utiliser pour d'autres raisons. D'un autre côté, je suis très réticent à «monnayer un nouveau type de média», car mon but est d'inventer un simple protocole réseau (dans cette application, le transfert de numéros est essentiel, le transport sur HTTP est gravy). –

+0

J'ai lu votre question comme voulant mettre les données dans les en-têtes, pas dans le corps. Si vous voulez mettre les données dans le corps, jetez un oeil à JSON, BSON, Thrift, ProtoBuffers, etc etc. –