大家应该都知道Cookie,在我看来Cookie分两种,一种是存储数据,另外一种是保持连接状态,我们主要谈第二种。
先说第一种:这就是简单的存储数据了,比如我们做了一个搜索框,每次都要在搜索框下面显示出用户以前搜索过的关键词,这种情况下我们就可以把用户每次搜索的值存入cookie,然后每次读取cookie显示出来就可以了。
第二种cookie:此类cookie是为了保持和服务器的通信连接,这种cookie一般都是服务器返回cookie,cookie里有唯一标识。然后客户端每次请求都会带有这个cookie,服务器就能由此得到是哪个客户端请求的,由此而来的一系列问题就产生了。
举例:
比如某一网站需要登录,然后一用户登录之后,我们只需要拿到该客户端此网页下的cookie,我们就可以在别处使用获取到的cookie登录此网站。
然后我们用C#代码来通过例子说明下:
首先我们先编写一个Get请求的函数
/// <summary> /// Get请求函数 /// </summary> /// <param name="url">请求地址</param> /// <param name="data">cookie</param> /// <returns></returns> static string GetContent(string url,string data) { string content; HttpWebRequest httpRequest = (HttpWebRequest)HttpWebRequest.Create(url); httpRequest.Headers.Add("Cookie",data); httpRequest.Referer = url; httpRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko"; httpRequest.Accept = "text/html, application/xhtml+xml, */*"; httpRequest.ContentType = "application/x-www-form-urlencoded"; httpRequest.Method = "GET"; HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse(); using (Stream responsestream = httpResponse.GetResponseStream()) { using (StreamReader sr = new StreamReader(responsestream, System.Text.Encoding.UTF8)) { content = sr.ReadToEnd(); } } return content; }
函数只有两个参数,第一个为请求地址,第二个就是cookie。然后我们获取这个地址的网页源代码返回。
string data = "__guid=108592272.1970508205390738000.1540350263873.1567; ASP.NET_SessionId=uz3pqatk454p0zjl5bzcxxxx"; string url1 = "http://code.sammh.com/Center/index.html";//此地址最好为需要登录过后的地址,这样才可以看出来测试效果 Response.Write(GetContent(url1,data));
大家可以试试,这样就可以直接进入需要登录进入的地址,然后获取网页源代码输出,当然,cookie肯定是登录过后所获取的cookie。
然后我教大家如何获取这个cookie,当然肯定是获取自己的cookie,如果大家想入非非想去获取别人网站的cookie,这个大家自行学习,这里不多阐述。
大家登录了某个网站,进入了页面,然后按F12,选择Network菜单,找到当前的请求,然后点击出现下图:
在红框里的就是cookie,只要拿到此cookie,就可以实现无账号密码登录了,当然这是最简单的cookie,很多大网站对cookie做了很多操作,即使我们拿到了cookie,也不能实现直接登录。
----------End-------------
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句