wget 自动发送用户名密码
这篇讲的是作者在排查一个奇怪现象时,对wget命令和HTTP Basic Auth认证机制的一次深入观察。核心问题是:一个需要用户名密码才能访问的受保护URL,当服务器上的某个wget任务没有显式提供凭证时,竟然能成功访问,这看起来不合常理。 作者从这个矛盾点出发,逐步揭开了背后的原理。原来,当wget没有收到认证信息时,它会发起一个不带凭证的初始请求。服务器收到后会返回401状态码和一个`WWW-Authenticate`头部,告知客户端需要进行Basic认证。这时,wget会自动检查系统中已有的网络凭证存储(例如~/.netrc文件),如果找到了匹配该服务器地址的用户名和密码,就会自动附上,完成认证。 所以,这个看似“自动”的成功访问,实际上是wget与系统凭证管理协作的结果,而非魔法。文章不仅解释了wget的行为,也提醒开发者,当遇到认证相关的意外成功或失败时,检查系统的凭证存储是一个容易被忽略的关键步骤。