Http标头名称被修改

时间:2011-11-27 21:57:09

标签: python django http http-headers

我正在使用httplib和django。当我执行以下操作时:

conn.request("PUT", "/udj/users/3/library/songs", headers={"X-Udj-Ticket-Hash" : hash,
   "content-type" : "text/json"}, body='{"blah": 2}')

我的服务器然后报告没有发送X-Udj-Ticket-Hash名称的标头。相反,它显示已发送名称为HTTP_X_UDJ_TICKET_HASH的标头。为什么我的标题名称会被修改? django是这样做的,还是客户端的问题?

1 个答案:

答案 0 :(得分:0)

想出来,问题在于django。来自documentation here

  

除了CONTENT_LENGTH和CONTENT_TYPE之外,如上所述,请求中的任何HTTP头都将转换为META密钥,方法是将所有字符转换为大写,用下划线替换任何连字符,并在名称中添加HTTP_前缀。因此,例如,名为X-Bender的标头将映射到META密钥HTTP_X_BENDER。

我真的不喜欢这个。有谁知道为什么这样做了?