【发布时间】:2013-11-15 05:41:05
【问题描述】:
我有一个 IE10 发送的 POST 请求的wireshark 捕获。 POST 请求由RFC 1867 指定发出,其中包含boundary:
Content-Type: multipart/form-data; boundary=945637143527273; charset=UTF-8
让我觉得很奇怪的是
charset=UTF-8
令牌之后的部分
boundary=945637143527273;
当我查看 RFC 中的 Examples 部分时,Content-Type 标头始终由边界终止,并且没有诸如 charset 之类的尾随数据。
那么,规范中是否有一些插件允许这种行为,应该忽略尾随数据还是我(作为符合规范的 HTTP 服务器)放弃请求并向客户端发送错误?
编辑:对该主题的进一步调查将我引向这个问题:
What rules apply to MIME boundary?
接受的答案是指RFC 2046,其中边界指定如下:
boundary := 0*69<bchars> bcharsnospace
bchars := bcharsnospace / " "
bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" /
"+" / "_" / "," / "-" / "." /
"/" / ":" / "=" / "?"
因此,由于bcharsnospace 不包含;,charset=UTF-8 部分显然不属于边界。在这种情况下我应该忽略它还是 Content-Type 标头的值无效?
【问题讨论】:
-
SubValue (parameters) 顺序无关紧要。你打破
;并拆分=以获得标题的子值。然后你只需参考'boundary'值和'charset'值...不管它们的顺序如何。
标签: http internet-explorer-10 rfc