网站调用新浪微博内容(当浏览器向服务器发送请求的时候,发出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")

  ################################################# ###

  #每个人都登录

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线