c httpclient抓取网页(java语言下一个支持http协议的登录意义是什么?)
优采云 发布时间: 2021-10-17 21:09c httpclient抓取网页(java语言下一个支持http协议的登录意义是什么?)
介绍
HttpClient是Java语言下支持HTTP协议的客户端编程工具包。实现了HTTP协议的所有方法,但不支持JS渲染。我们在做一些小工具的时候,可能需要登录一些网站来获取信息,那么HttpClient就是你的好帮手,废话少说,进入实战。
登录的实际意义
在HTTP泛滥的今天,我们每天都要登录一些网站,那么登录有什么意义呢?首先,我们必须对cookies有一定的了解。Cookie 是存储在本地的小文件。服务器发送命令,浏览器在本地读写。在访问某些网站时,浏览器会检查是否有网站的cookie信息。如果有,在发送访问请求时会携带这些内容,服务器可以读取到浏览器。在请求中发送cookie信息,可以在响应请求时写入cookie信息。Cookie信息包括键值、内容、过期时间、归属网站。
说到cookies,我就快做完了,那登录有什么问题呢?登录意味着服务器将 cookie 写入您的浏览器。如果你只是在你的电脑上写了一个cookie,别有用心的人伪造cookie也可能有机会登录网站,所以服务器会在内存中保留一份相同的信息,这个过程叫做一个对话。如果点击网站中的注销按钮,服务器会清除内存中的cookies,也会清除浏览器中与登录相关的cookies。知道了这一点,我们就可以开始了。
二 找到登录密钥cookie
这里我们可以使用wireshark来抓包分析。打开知乎的首页,打开wireshark,开始*敏*感*词*端口,输入用户名和密码,点击login查看wireshark抓到的数据包。截图如下:
第一张图是本地post提交数据。
第二张图是提交的信息,包括_xsrf、密码、remember_me、email。注意提交的信息包括cookies,_xsrf可以从知乎的主页获取。
第三张图是服务器返回的信息。请注意,其状态为 200,表示成功。
第四章的图是服务器返回的数据。请注意,它具有三个 cookie 设置和一条指示登录是否成功的消息。
通过上面的步骤我们可以知道什么?一是发送登录请求时的cookie和post数据格式,二是可以获取登录的cookie信息(第四张图)。