2010-08-18 7 views
10

Deseo hacer una pregunta acerca de los datos multipart/form. Encuentro el encabezado http de la publicación de varias partes y el tipo de contenido: multipart/form-data; boundary = -----...--- boundaryNumber. Quiero preguntar, ¿cuántos de '-' entre el boundaryNumber y '='?¿Qué es '-' en multipart/form-data?

Respuesta

26

No es obligatorio un solo -. Puedes tener cualquier cantidad de ellos. En realidad, es un misterio para mí por qué los usuarios-agentes tienden a agregar tantos. Probablemente sea tradicional porque en los viejos tiempos, cuando la gente todavía miraba con regularidad el tráfico real del protocolo, proporcionaba una buena separación visual. Hoy en día no tiene sentido.

Tenga en cuenta, sin embargo, que cuando usa el límite en la secuencia, debe estar precedido por dos guiones (--). Eso es parte del protocolo. Por supuesto, el hecho de que la mayoría de los agentes de usuario usen muchos guiones en su frontera hace que esto sea muy difícil de ver con el ejemplo.

Además, la última límite (que marca el final del mensaje) se prefija y sufijo por dos guiones (--).

Así que en resumen, se podría llamar su límite OMGWTFPLZDIEKTHX, y luego su tráfico podría tener este aspecto:

Content-Type: multipart/form-data; boundary=OMGWTFPLZDIEKTHX 

--OMGWTFPLZDIEKTHX 
Content-Type: text/plain 

First part (plain text). 
--OMGWTFPLZDIEKTHX 
Content-Type: text/html 

<html>Second part (HTML).</html> 
--OMGWTFPLZDIEKTHX-- 
+0

gracias por su respuesta. – Questions

+1

+1 para diferenciar entre los dos bordes (-) en la especificación frente a los superfluos (---) que a menudo se agregan al límite ... – LesterDove

+0

¿Qué sucede cuando tienes contenido después de la última línea '--OMGWTFPLZDIEKTHX- -'? – Pacerier

2

El número de guiones depende de la cantidad que desee. Puede ser cero, si lo desea, es solo que más guiones hace que el límite sea más obvio.

El límite consiste en una línea que contiene dos guiones más todo después de "boundary =". Así que si su cabecera dijo boundary=ABC, el límite parece

--ABC 
+0

gracias por su respuesta. – Questions

1

En su definición de los límites, no se requieren guiones. Al usar ese límite para separar dos partes distintas del cuerpo, debe comenzar con dos guiones, seguidos de su cadena de contorno previamente definida.

Esto se explica en RFC 1341 (MIME), y puede encontrar información adicional allí en la sección de Partes múltiples (como vinculada).

+0

gracias por su respuesta. – Questions

1

Es completamente arbitrario.

El punto del límite es definir el comienzo y el final de sus datos. No importa de qué se trate, siempre que no sea parte del contenido.

+0

gracias por su respuesta. – Questions