JavaScript对象在HTTP请求中占用的数据大小(kB)是多less?

给定一个JavaScript对象:

var data = { foo: 'bar', answer: 42, bestXmlParser: 'regex' ... } 

我怎样才能确定这将在HTTP请求中占用什么大小?

这将只使用纯ASCII字符。

最终,对象将被转换为XML(通过node-soap SOAP对象),并被转换为SOAP协议使用的任何编码(我假设字符,但不知道)。

我知道有开销,这不会完全等于最终的HTTP请求的大小,尤其是在转换为XML之后

然而,我从对象本身确定的粗略大小将帮助我节制我的请求大小,并避免生成HTTP 413 Request Entity Too Large

  1. 将XHR请求发送到您的服务器,并在Chrome开发人员工具中打开“ networking”选项卡。
  2. 一旦打开,点击代表你刚刚做出的XHR请求的链接。
  3. 在响应或请求标题下查找Content-Length http标题。

该数字是响应或请求正文中的数据字节数。

更新:

也Blob可以告诉你的字节。 例:

 var b = new Blob(['{"test":"one two three"}'], {type: "text/plain;charset=UTF-8"}); b.size //=> 24 

数据可以是不同的types( String,ArrayBuffer,Blob ),也可以是任何顺序。 例:

 var b24 = new Blob(['{"test":"one two three"}'], {type: "text/plain;charset=UTF-8"}); var b18 = new Blob(['Hello cruel world!'], {type: "text/plain;charset=UTF-8"}); var blob = new Blob(['hello world', b24, b18]); blob.size //=> 53, (24+18+11 = 53 bytes) 

更多在这里: http : //www.w3.org/TR/FileAPI/#dfn-Blob

更新2:

在Node.js中,看起来像Buffers可以用来完成同样的事情。 更多信息: http : //nodejs.org/api/buffer.html#buffer_class_method_buffer_bytelength_string_encoding

例:

 > str = 'hello world' > Buffer.byteLength(str, 'utf8') + ' bytes' '11 bytes'