PowerShell 5中Invoke-WebRequest的RawContentLength与Content.Length差异问询
关于PowerShell 5中Invoke-WebRequest的RawContentLength与Content.Length差异的解析
嘿,我来帮你彻底搞清楚这个差异的核心原因!
咱们先把这两个属性的本质拆解开:
RawContentLength:这个值对应的是服务器返回的完整HTTP响应总字节数——它包含了所有内容:从HTTP响应头(比如Content-Type、Date、Server这类字段),到响应头和响应体之间的分隔空行(\r\n\r\n),再加上真正的HTML页面响应体,全部都算在这个长度里。Content.Length:这个值只统计纯响应体的字节数,也就是PowerShell已经帮你剥离了所有HTTP响应头之后,剩下的那部分HTML页面内容的长度。
看你的测试结果:250286 - 250250 = 36字节,这36字节正好就是HTTP响应头加上分隔空行的总长度。你可以运行下面的命令验证一下:
$test1.RawContent | Select-Object -First 100
你会看到类似HTTP/1.1 200 OK开头的响应头内容,数一下这些内容的字节数,刚好和两者的差值对应上。
说白了,PowerShell 5里的RawContent就是服务器返回的「原汁原味」完整HTTP报文,而Content是已经处理好、只保留页面有效内容的部分,这就是两者长度存在差异的根本原因。
内容的提问来源于stack exchange,提问作者Ari Linn
相关产品推荐
相关产品推荐

