关于cnblog登陆的研究

"HTTP/1.1 302 Found

Cache-Control: private, no-cache="Set-Cookie
Content-Type: text/html; charset=utf-8
Location: http://www.cnblogs.com/
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
Set-Cookie: .DottextCookie=0C6843C9E03ACE08F327EC32398EA8211C65BB6E33AD4F79991E57E53A537F437A12515A3CF111EA1FE20FE87CD6A8FE2D9D32CCA0418DBFD183B6B965DDB8D2BCA79CECE3F1810BE1F873515C71526DB4DD0D64D682F809C5EB43B46FAF5D61392157BDF9B38E0F4CD0E0F9; domain=.cnblogs.com; path=/; HttpOnly
X-Powered-By: ASP.NET
X-UA-Compatible: IE=edge
Date: Mon, 25 Feb 2013 00:58:31 GMT
Content-Length: 140

<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="http://www.cnblogs.com/">here</a>.</h2>
</body></html>

 

上面文字是发送登陆cnblog请求http://passport.cnblogs.com/login.aspx?ReturnUrl=http%3a%2f%2fwww.cnblogs.com%2f后返回的header,HTTP/1.1 302 Found这个是重定向的意思。怎么做到的我登陆blog的时候,他直接跳转了,这个返回header怎么分析。因为我并没有看到

<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="http://www.cnblogs.com/">here</a>.</h2>
</body></html>

只有在出错的时候才会看到,在php模拟post的时候,没有加curl_setopt($ch,CURLOPT_FOLLOWLOCATION,TRUE);这句话才会出现的

其实原因很简单,看下面的聊天记录:

那就是实际上那时候已经登录了

妖媚の竪琴手 9:29:20

被跳转掉了

13路公交车 9:29:28

13路公交车 9:29:32

因为没设定那个值

13路公交车 9:29:51

所以他只能是返回<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="http://www.cnblogs.com/">here</a>.</h2>
</body></html>

13路公交车 9:29:55

让我手动点击了

妖媚の竪琴手 9:30:17

但是你点击过去 根本没有发送cookie

妖媚の竪琴手 9:30:32

因为你手点的 是把你浏览器下的cookie带过去

妖媚の竪琴手 9:30:36

而不是你另存的 (这个能不能不用cookiefile,用字串行吗?之后考虑)

13路公交车 9:31:55

13路公交车 9:32:04

所以点击的话

13路公交车 9:32:10

返回的就是404了

妖媚の竪琴手 9:32:37

应该是这样

posted @ 2013-02-25 09:18  no13bus  阅读(275)  评论(0编辑  收藏  举报