JavaScript对象在HTTP请求中会占用多少数据大小(kB)?

JavaScript对象在HTTP请求中会占用多少数据大小(kB)?,javascript,node.js,http,Javascript,Node.js,Http,给定一个JavaScript对象: var data = { foo: 'bar', answer: 42, bestXmlParser: 'regex' ... } 如何确定HTTP请求中的大小 这将仅使用普通ASCII字符 最终,该对象将被转换为XML(SOAP对象通过节点SOAP)并作为SOAP协议使用的任何编码进行传输(我假设是字符,但不确定) 我知道会有开销,这与我最终发出的HTTP请求的大小并不完全相同,尤其是在转换为XML之后 但是,我从对象本身确定的粗略大小将帮

给定一个JavaScript对象:

var data = {
  foo: 'bar',
  answer: 42,
  bestXmlParser: 'regex'
  ...
}
如何确定HTTP请求中的大小

这将仅使用普通ASCII字符

最终,该对象将被转换为XML(SOAP对象通过
节点SOAP
)并作为SOAP协议使用的任何编码进行传输(我假设是字符,但不确定)

我知道会有开销,这与我最终发出的HTTP请求的大小并不完全相同,尤其是在转换为XML之后

但是,我从对象本身确定的粗略大小将帮助我限制请求大小,并避免生成过大的
HTTP 413请求实体

  • 将XHR请求发送到服务器并打开Chrome Developer Tools中的网络选项卡
  • 打开后,单击表示您刚才发出的XHR请求的链接
  • 在响应或请求标题下查找内容长度http标题
  • 该数字是响应或请求正文中的数据字节数


    更新:

    此外,blob还可以告诉您字节数。例如:

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

    数据可以是不同的类型(字符串、ArrayBuffer、Blob)和任何顺序。例如:

    var b = new Blob(['{"test":"one two three"}'], {type: "text/plain;charset=UTF-8"});
    b.size //=> 24
    
    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)
    
    详情如下:


    更新2:

    在Node.js中,
    缓冲区可以用来完成同样的任务。详情如下:

    例如:

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

    这取决于对对象的编码方式。对象只是内存中的某个区域。如果您想通过HTTP发送数据,您必须首先转换为可通过HTTP传输的数据(可能是字符数据)。请求也会有来自标题等的开销。谢谢,我用我所知道的编码更新了Q。谢谢。我正在寻找一种在我的应用程序中通过编程实现这一点的方法。。。var b=newblob([data],{type:“text/plain;charset=UTF-8”});控制台日志(b.size);酷,谢谢!看起来很有希望。Node.js中是否有等效的方法?我注意到
    Blob
    在那里不是全局的。感谢它为我的目的工作,我不确定这在HTTP请求中是否是相同的数据大小,尽管我认为字节是字节,不管它们如何使用,除非在HTTP级别上发生一些积极的压缩。。。我不确定。但即使是这样,字节也会比原始字节少,而不是多。我认为节点缓冲区/浏览器blob会显示原始字节。