概述
本文介绍 npm 包 agentkeepalive-ntlm 的使用方法。该包可以解决使用 Node.js 做 http 请求时,因 NTLM 认证问题造成的性能问题。
安装
通过 npm 安装:
npm install agentkeepalive-ntlm
使用
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ----- - ------------------------------- ----- -------------- - --- ------- ----------- --- --------------- --- -------- ------ ----------------- ----- -- -------- ------- --- ---------- ------- --- ----- ------- - - ----- ------------------ ----- --- ----- ------- ------- ------ -------- - ---------------- ----- ------------------ - -- ----- --- - --------------------- ----- -- - ------------------------ -------------- ------- -- - ------------------ ----------- --- ------------- -- -- - --------------- ---- ---- -- ------------ --- --- --------------- --- -- - ---------------------- ---- -------- --------------- --- -- --- ---- ----- ------ ----------------------------- -- ----- ---- -- ------- ---- -------------------- ----------
参数说明
new Agent(options)
创建 Agent 实例,options 可选参数:
maxSockets
: 最大 http sockets 数量,默认为 100。maxFreeSockets
: 最大空闲 http sockets 数量,超过数量将会被销毁,默认为 10。timeout
: http 请求默认超时时间,单位为毫秒,默认为 1000。keepAliveTimeout
: keep-alive sockets 超时时间,单位为毫秒,默认为 15000。
req.setAgent(agent)
将 Agent 实例赋值给请求,用于复用 HTTP 连接。
Authorization 头
NTLM 认证方法使用 Authorization 头,包含对应的 NTLM token 经过 Base64 编码后的字符串,格式如下:
Authorization: NTLM TlRMTVNTUAABAAAAB4IAoAAAAAAAAAAAAAAAAAAAAAAA==
需要注意的是,NTLM token 中一般包含了认证的用户名和密码,必须使用 SSL 或者其他安全措施确保传输过程不被中间人攻击捕获。为了更好的安全性,建议进行集成测试。
总结
本文介绍了如何使用 npm 包 agentkeepalive-ntlm 来提高 Node.js 做 http 请求的性能。通过该包,我们可以很方便的复用 HTTP 连接,避免了因为频繁开启和关闭连接而产生的效率损失。同时,要保证认证信息的安全性,加强途中的传输保护,确保数据不被中间人截获。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005587281e8991b448d5acd