linux – 基本HTTP身份验证 – 使用Cookie进行wget

我正在使用以下命令从站点检索数据:

wget http://www.example.com --user=joe --password=schmoe --auth-no-challenge

我将其扩展为递归,但是,我的理解是,这将在每个请求上重新发送HTTP Auth凭据.

因此,是否可以运行基本HTTP身份验证一次,捕获cookie,然后使用这些cookie触发递归加载?

这似乎不起作用:

wget --save-cookies=cookies.txt --user=joe --password=schmoe --auth-no-challenge http://www.example.com

其次是:

 wget --load-cookies=cookies.txt -r -p http://www.example.com/pages.html

最佳答案 HTTP Basic认证方案是 not a persistent, cookie-based authentication scheme,类似于 Bearer方案(例如Oauth2),因此需要在所有后续请求上传递凭证.如果浏览器缓存凭证,那么例外将在“应用程序”层,但这是一个浏览器便利构造(其中一个有 minimal control结束),并且在这种情况下不适用于wget.

07004 is a good summary of the 07005 of HTTP Basic, including the fact that credentials need to be sent with every request.

查看Hypertext Transfer Protocol (HTTP) Authentication Scheme Registry以获取完整的身份验证方案列表.

点赞