当前位置: 首页 > 面试题库 >

HTTP多部分(POST)请求中的boundary参数是什么?

薛经艺
2023-03-14
问题内容

我正在尝试开发一个侧边栏小工具,该工具可以自动检查网页中我的转让配额的演变过程。我快要解决了,但是我需要做的最后一步是:将带有正确POST数据的HttpRequest发送到php页面。使用firefox插件,标题的“ Content-Type”如下所示:

Content-Type=multipart/form-data; boundary=---------------------------99614912995

参数“边界”似乎是随机的,而POSTDATA是这样的:

POSTDATA =-----------------------------99614912995
Content-Disposition: form-data; name="SOMENAME"

Formulaire de Quota
-----------------------------99614912995
Content-Disposition: form-data; name="OTHERNAME"

SOMEDATA
-----------------------------99614912995--

我不明白如何使用神秘的“边界”参数返回来正确模拟POSTDATA。

有人知道我该怎么解决吗?


问题答案:

引用RFC 1341的7.2.1节,我认为是标头boundary参数的相关位Content-Type(对于MIME):

“ multipart”的所有子类型都具有相同的语法…

多部分实体的Content-Type字段需要一个参数“边界”,该参数用于指定封装边界。封装边界定义为一行,该行完全由两个连字符(“-”,十进制代码45)组成,后跟来自Content-Type标头字段的边界参数值。

然后澄清:

因此,典型的多部分Content-Type标头字段可能如下所示:

 Content-Type: multipart/mixed; boundary=gc0p4Jq0M2Yt08jU534c0p

这表明该实体由几个部分组成,每个部分本身的结构与RFC 822消息在语法上相同,不同之处在于标头区域可能完全为空,并且每个部分前面都带有–gc0p4Jq0M2Yt08jU534c0p行

注意事项:

  1. 封装边界必须出现在行的开头,即,在CRLF(回车换行)之后
  2. 该边界必须紧随其后,或者是另一个CRLF和下一部分的标题字段,或者是两个CRLF,在这种情况下,下一部分没有标题字段(因此,假定其为Content-Type text /平原)。
  3. 封装边界不能出现在封装中,并且长度不能超过70个字符,这不包括两个前导连字符。
    最后但并非最不重要的:

最后一个主体部分之后的封装边界是一个显着的定界符,指示不再跟随其他主体部分。这样的定界符与之前的定界符相同,在行的末尾添加了另外两个连字符:

--gc0p4Jq0M2Yt08jU534c0p--

我希望这对以后的其他人有所帮助,因为在获取全貌之前我必须漫游一段时间(请确保阅读必要的RFC以获得最深刻的理解)。



 类似资料:
  • 我已经写了一段时间的iPhone应用程序,发送数据到服务器,接收数据(通过HTTP协议),没有想太多。理论上,我主要熟悉进程,但我不太熟悉的部分是HTTP多部分请求。我知道它的基本结构,但它的核心我不知道。 似乎每当我发送不同于纯文本的东西(如照片,音乐),我必须使用多部分请求。有人能简单地向我解释一下为什么要用它,它的优点是什么吗? 如果我使用它,为什么这样发送照片更好?

  • 我正在使用Swagger编辑器来记录Node中内置的现有API,但它一直给我以下错误: 路径上的架构错误。/上载/Rate.post.parameters[0]不完全是来自 此错误出现在我代码的 3 个位置: paths./upload/Rate.post。参数[0] paths./upload/Rate.post。参数[1] paths./users/register.post.paramete

  • 我试图做一个POST请求,但我不能让它工作: 我基本上想复制这个超文本传输协议请求(不是ajax),就像它是由html表单发起的一样: URL:/api 参数:用户名和密码

  • 本文向大家介绍PHP中Http协议post请求参数,包括了PHP中Http协议post请求参数的使用技巧和注意事项,需要的朋友参考一下 本文给大家介绍PHP中Http协议post请求参数,具体内容如下所示: WEB开发中信息基本全是在POST与GET请求与响应中进行,GET因其基于URL的直观,易被我们了解,可POST请求因其信息的隐蔽,在安全的同时,也给开发者们模拟发送带来了麻烦。接下来的几篇博

  • 我们公司有一个基于.NET的网站 几天前,我们向网站程序员请求一个webservice。昨天他给了我一个URL 当我从localhost打开URL时,它显示了一个页面,我可以从我们请求编程的四个方法(函数)中选择一个。 通过选择其中一个,一个新的页面显示如下: SOAP 1.1 以下是SOAP 1.1请求和响应示例。显示的占位符需要用实际值替换。 POST/webservices/findstat

  • 问题内容: 我正在尝试通过带有POST请求的照片上传 根据自述文件,我应该能够做到这一点 问题是,这不起作用。我收到测试服务器的回复,说它转储了0个post变量。 我已经确认该HTML小页面服务器处于工作状态 所以问题是,请求模块在做什么?有没有更好的方法来发送节点? 问题答案: 经过更多研究后,我决定使用。这使得分段上传非常容易。