JMeter-为什么发送默认的User-Agent标头

在JMeter中发送HTTP请求时,添加了User-Agent标头,例如:

  

用户代理:Apache-HttpClient / 4.5.10(Java / 1.8.0_191)   内容类型:文本/纯文本   主持人:api.example.com

我在文档中没有找到任何原因,

但是在JMeter docs

中提到了它的存在
  

在此示例中,我们创建了一个测试计划,告诉JMeter覆盖默认的“ User-Agent”请求标头,并改用特定的Internet Explorer代理字符串。

在“高级”->“实现”中更改为Java时,它不会发送额外的标头,因此与HTTPClient4

相关
  

HttpClient随每个请求发送一个默认的User-Agent标头

但是背后的原因是什么?

此外,当我尝试通过在Header Manager中添加具有空值的User-Agent来删除它时,

仍然发送具有空值的User-Agent,是否有办法避免发送User-Agent标头?

q33342074 回答:JMeter-为什么发送默认的User-Agent标头

哪个文档? JMeter文档不应包含有关基础Java SDK(对于Java实现)或Apache HttpComponents(对于HttpClient4实现)的全面文档。

对于后一个,“解释”位于HttpClientBuilder类中

if (userAgentCopy == null) {
    if (systemProperties) {
        userAgentCopy = System.getProperty("http.agent");
    }
    if (userAgentCopy == null && !defaultUserAgentDisabled) { 
        userAgentCopy = VersionInfo.getUserAgent("Apache-HttpClient","org.apache.http.client",getClass());
    }
}

如果没有提供User-Agent标头,则底层Apache HttpComponents库隐式添加默认标头,因为客户端应根据RFC 2616发送User-Agent字符串。

Well-behaved JMeter test should represent real browser as close as possible,因此如果您看到此默认User-Agent字符串,则表明您的JMeter设置不正确,因此测试结果将不可靠。检出

本文链接:https://www.f2er.com/3130286.html

大家都在问