webrequest标题的顺序是否重要?

时间:2012-06-25 21:34:22

标签: http-post httpwebrequest http-request http-error

我正在发送POST请求将图片上传到网站 在页面中,有一个FileUpload和一个input (textBox),在fiddler中,我发现该页面正在使用Multipart Post请求模式发送一些数据(Content Disposition: multipart-formdata;) 一切似乎都没问题,因为小提琴手的一切都与我的应用发布的内容以及页面发送的内容相同...只是不关于标题顺序......

我的问题是,将标题放入正确的顺序是否真的很重要?如果是的话,我该怎么办呢? (因为我们只是在请求中设置了一些属性,所以没有设置顺序的位置......)

感谢任何建议......

3 个答案:

答案 0 :(得分:6)

HTTP标头的顺序对于具有不同名称的标头并不重要。但是,如果有多个具有相同名称的标题,则顺序很重要。

请参阅RFC 2616

  

具有不同字段名称的标题字段的顺序      收到的并不重要。然而,这是"良好的做法"发送      首先是general-header字段,然后是request-header或response-      标题字段,以实体标题字段结尾。

     

具有相同字段名称的多个消息头字段可以是      当且仅当整个字段值出现在消息中时出现      标题字段被定义为以逗号分隔的列表[即,#(值)]。      必须可以将多个标题字段合并为一个      " field-name:field-value"对,不改变语义      消息,通过将每个后续字段值附加到第一个,每个      用逗号分隔。 标题字段具有相同的顺序      因此收到的字段名称很重要      解释组合字段值,因此代理不得      转发邮件时更改这些字段值的顺序。

答案 1 :(得分:2)

如果您的订单错误,Akamai 阻止您。

$ curl -v -H "$UA" -H "$ACCEPT" -H "$ENCODING" $URL |& grep '< HTTP'
< HTTP/1.1 403 Forbidden
$ curl -v -H "$ACCEPT" -H "$UA" -H "$ENCODING" $URL |& grep '< HTTP'
< HTTP/1.1 301 Moved Permanently

他们使用特定客户端的隐式排序来检测恶意用户代理。请参阅我的博客主题:

http://gwillem.gitlab.io/2017/05/02/http-header-order-is-important/

答案 2 :(得分:1)

我使用Chrome的webRequest api的经验,从来没有任何保证的http标头顺序。所以,在这方面,标题顺序并不重要。