网站调用新浪微博内容(当浏览器向服务器发送请求的时候,发出http请求消息报文,)
优采云 发布时间: 2022-04-12 20:05网站调用新浪微博内容(当浏览器向服务器发送请求的时候,发出http请求消息报文,)
浏览器向服务器发送请求时,发出HTTP请求消息,服务器返回数据时,发出HTTP响应消息。两种类型的消息均由起始行、消息头和指示消息头组成。它由末尾的空行和可选的消息正文组成。http请求消息中,起始行收录请求方法、请求的资源、http协议的版本号,消息头收录各种属性,消息体收录数据,get请求没有消息体,所以消息头后的空行中没有其他数据。在http响应消息中,起始行包括http协议版本、http状态码和状态,消息头收录各种属性,
如下图,从fiddler抓到的http请求和http响应,get请求的内容是空的,所以消息头和消息体后面的空行都是空的。
服务器发送的响应报文如下,浏览器正常接收到服务器发送的http报文
从上面可以看出,cookie是http请求和http响应的头部信息中一个非常重要的消息头属性。
什么是饼干?
当用户第一次通过浏览器访问域名时,被访问的Web服务器会向客户端发送数据,以维护Web服务器与客户端之间的状态。这些数据是 cookie,由互联网站点创建以识别用户。存储在用户本地终端上用于身份识别的数据,cookie中的信息一般都是加密的,cookie存储在缓存或者硬盘中,而硬盘是一些小的文本文件,当你访问网站@ > ,会读取网站@>对应的cookie信息,cookie可以有效提升我们的上网体验。一般来说,一旦 cookie 保存在计算机上,只有创建 cookie 的 网站@> 才能读取它。拿着。
为什么需要 cookie
http 协议是一种无状态的面向连接的协议。http协议是基于tcp/ip协议层的协议。客户端与服务器建立连接后,它们之间的 tcp 连接始终保持。时间多长,由服务器端设置。当客户端再次访问服务器时,会继续使用上次建立的连接。但是,由于http协议是无状态的,web服务器并不知道这两个请求。不管是不是同一个客户端,这两个请求都是独立的。为了解决这个问题,web程序引入了cookie机制来维护状态。cookie可以记录用户的登录状态,通常用户登录成功后web服务器会发送。用于标记会话有效性的签名,这使用户免于多次身份验证和登录网站@>。记录用户的访问状态。
cookie 的类型
会话cookie(session cookie):这类cookie只在会话期间有效,存储在浏览器的缓存中。当用户访问 网站@> 时,会创建会话 cookie。当浏览器关闭时,它会被浏览器删除。
持久cookie(persistent cookie):这种cookie在用户会话中长时间生效。当你将cookie的属性max-age设置为1个月,那么这个月就会收录在相关url cookie的每个http请求中。所以它可以记录很多用户初始化或者自定义的信息,比如第一次登录的时间,弱登录的状态。
安全cookie:安全cookie是https访问下的cookie形式,以确保cookie在从客户端到服务器的过程中始终处于加密状态。
httponly cookie:这种cookie只能在http(https)请求上传递,对客户端脚本语言无效,从而有效避免跨站攻击。
第三方cookies:第一方cookies是在当前访问的域名或子域下生成的cookies。
第三方 cookie:第三方 cookie 是由第三方域创建的 cookie。
饼干的组成
cookie是HTTP消息头中的一个属性,包括:cookie名称(name)cookie值(value)、cookie过期时间(expires/max-age)、cookie动作路径(path)、cookie域名(domain)、使用cookies用于安全连接(安全)。
前两个参数是cookie应用的必要条件,还包括cookie的大小(大小,不同的浏览器对cookie的数量和大小有不同的限制)。
python模拟登录
设置一个cookie处理对象,负责给http请求添加cookie,并且可以从http响应中获取cookie,向网站@>登录页面发送请求,包括登录url、post请求数据、http文章-标头使用 urllib2.urlopen 发送请求并接收 Web 服务器的响应。
首先我们看登录页面源码
当我们使用 urllib 处理 url 的时候,其实是通过 urllib2.openerdirector 实例来工作的,它会自己调用资源来执行各种操作,比如传递协议、打开 url、处理 cookie 等。默认开启器处理该问题,基本的 urlopen() 函数不支持身份验证、cookie 或其他高级 http 函数。要支持这些函数,您必须使用 build_opener() 函数来创建您自己的自定义 opener 对象。
cookielib 模块定义了一个自动处理 http cookie 的类,用于访问那些需要 cookie 数据的 网站@>。cookielib 模块包括 cookiejar、filecookiejar、cookiepolicy、defaultcookiepolicy、cookie 以及 filecookiejar mozillacookiejar 和 lwpcookiejar 的子类,cookiejar 对象可以管理 http cookie,向 http 请求添加 cookie,以及从 http 响应中获取 cookie。filecookiejar 对象主要是从文件中读取cookies或者创建cookies。其中,mozillacookiejar就是创建一个兼容mozilla浏览器cookies.txt的filecookiejar,例如lwpcookiejar就是创建一个兼容libwww-perl的set-cookie3文件格式的filecookiejar实例。用 lwpcookiejar 保存的 cookie 文件很容易被人类阅读。默认是filecookiejar没有保存功能,已经实现了mozillacookiejar或者lwpcookiejar。所以你可以使用 mozillacookiejar 或 lwpcookiejar 来自动保存 cookie。
[Python]
#!/usr/bin/envpython
#编码:utf-8
*敏*感*词*系统
*敏*感*词*商
导入urllib2
导入urllib
*敏*感*词*请求
导入cookielib
##此代码用于解决中文报错问题
重新加载(系统)
sys.setdefaultencoding("utf8")
################################################# ###
#每个人都登录