(爬虫学习笔记4)Cookies基本理解(Cookies的概述、属性结构、与爬虫关系的基本理解)

一、Cookies 概述:

​ HTTP有一个特点,叫做“无状态”。HTTP无状态是指HTTP协议对事务处理是没有记忆力的,也就是说服务器不知道客户端是什么状态,服务器不会记录用户的信息(简单来说就是,如果没有”Cookies“,用户每一次打开同一个网站都要进行登录操作,如果有了“Cookies”,用户只需要在第一次打开网站时进行登录操作,之后在一段时间内,再次访问此网站时就不需要进行登录操作了)。

​ 这时候保持HTTP连接状态的技术就出现了,它们分别是”会话“和”Cookies“,其中“会话”在服务器端,“Cookies”在客户端。“Cookies”会将用户登录信息存储在本地,当用户打开浏览器与服务器建立起会话时,浏览器会自动将“Cookies”信息发送给服务器,服务器通过识别“Cookies”信息并鉴定出是哪个用户,然后判断登陆状态并返回对应的回应。

二、Cookies 属性结构:

在这里插入图片描述

可以看到,这一个整体(Cookies)里有很多条目,其中每个条目可以称为“Cookie”。它有如下几个属性:

  • Name( 名称 ):该 Cookie 的名称。一旦创建,该名称便不可修改。
  • Value( 值 ):该 Cookie 的值。如果值为 Unicode 字符,需要为字符编码。如果值为二进制数据,则需要使用 BASE64 编码。
  • Domain( 域 ):可以访问该 Cookie 的域名。例如:如果设置为 “zhihu.com” ,则所有以 “zhihu.com” 结尾的域名都可以访问该 Cookie 。
  • Max Age( 过期/最长时间 ):该 Cookie 失效的时间,单位为秒,也常和 Expires 一起使用,通过它可以计算出其有效时间。Max Age如果为整数,则该 Cookie 在 Max Age 秒之后失效。如果为负数,则关闭浏览器时 Cookie 即失效,浏览器也不会以任何形式保存该 Cookie。
  • Path( 路径 ):该 Cookie 的使用路径。如果设置为 / path / ,只有路径为 / path / 的页面可以访问该 Cookie。如果设置为 / ,则本域名下的所有页面都可以访问该 Cookie。
  • Size 字段( 大小 ):此 Cookie 的大小。
  • HTTP 字段( HttpOnly ):Cookie 的 HttpOnly 属性。若此属性为 true,则只有在 HTTP 头中会带有此 Cookie,而不能通过 document.cookie 来访问此 Cookie。
  • Secure:该 Cookie 是否仅被使用安全协议传输。安全协议有 HTTPS 和 SSL 等,在网络上传输数据之前先将数据加密。默认为 false 。

三、Cookies 与爬虫关系的基本理解:

​ Cookies 保持会话的原理:客户端第一次请求服务器时,服务器会返回一个响应头中带有 ‘Set-Cookie’ 字段的响应给客户端,用来标记用户,客户端浏览器会把 Cookie 保存起来,当浏览器再一次请求该网站时,浏览器会把此 Cookies 放到请求头一起提交给服务器,Cookies 携带了会话 ID 信息,服务器检查该 Cookies 即可找到对应的会话是什么,然后再判断会话来以此辨认用户状态,如果会话中的某些设置登录状态的变量是有效的,那就证明用户处于登录状态,此时返回只有登录之后才能查看的网页内容,浏览器再进一步解析便可以看到了。

​ 我们可以认为 Cookies 里面保存了登录需要的凭证,有了它,只需要再下次请求携带 Cookie 发送请求而不必重新输入用户名、密码等信息重新登录了。

​ 因此在爬虫中,有时候处理需要登录才能访问的页面时,我们一般会直接将登录成功后获取的 Cookies 放在请求头里直接请求(前提是 Cookies 没有),而不必重新模拟登录。

所有内容全部引自《python3 网络爬虫开发实战(人民邮电出版社)》,此笔记仅用于学习交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章