爬虫基础(三)Session和Cookie讲解

目录

一、前备知识点

(1)静态网页

(2)动态网页

(3)无状态HTTP

二、Session和Cookie

三、Session

四、Cookie

(1)维持过程

(2)结构


正式开始说 Session和Cookie之前,有些基础知识需要知道,我们先来看一下:

一、前备知识点

(1)静态网页

比如,我们写了一段html代码,然后保存为一个html文件

该文件所在主机,具有服务器

那么其他人就可以通过访问服务器,来打开这个html写的网页。

这就叫,静态网页

静态网页有一个很大的缺陷:

比如,我们修改该网页时,只能再打开html代码,然后修改,很不灵活。

(2)动态网页

动态网页,则不同于此。

它用编程语言编写,可以动态解析URL,灵活呈现内容

除此之外,还有账号密码功能

就是这种账号密码功能,离不开Session和Cookie

(3)无状态HTTP

当我们进入部分网站,点击登陆

弹出账号密码界面,输入之后,可以自动返回界面

我们发现下一次我们再登陆时,不用再登陆而是自动保存了

该的界面是原来我们网站的界面,它没有消失

我们不要想当然的认为,这是正常的

正常来说,HTTP是无记忆的,

即,++服务器只负责处理响应和请求,不负责保存历史++。

这,就叫无状态HTTP

而为了,保存HTTP的连接状态,让我们能够返回之前的界面,新技术出现了,即:Session和Cookie

二、Session和Cookie

Session放在服务器端,用来保存用户信息。

Cookie放在客户端,即浏览器端,当用户注册后,会获得凭证,客户端再次访问网页时,服务器通过识别Cookie,判断是哪个用户在访问。

三、Session

Session,即会话

在web中,Session对象储存用户信息

这样,在用户跳转不同程序时,其不会丢失

四、Cookie

关于,Cookie我们知道它相当于凭证,网站为鉴别用户身份,存储用户身上的数据

(1)维持过程

客户第一次登陆网站

网站返回一个set-cookie字段给客户,用以标记客户

客户端浏览器自动保存cookie

当客户下一次登陆cookie时,将保存的cookie提交给网页

服务器根据cookie中信息查找对应session,判断用户身份

若有效则可以查看网页内容

(2)结构

以csdn网站为例:

依次点击:检查 - application - storage - cookies

其中:

**Name(名称):**Cookie 的名称,是一个唯一的标识符。

**Value(值):**与 Cookie 名称关联的值。

**Domain(域名):**Cookie 所属的域名。

Path(路径):指定 Cookie 的有效路径。只有在该路径及其子路径下,Cookie 才会被发送到服务器。

Expires / Max-Age(过期时间)

  • Expires:指定 Cookie 的过期时间(具体日期和时间)。

  • Max-Age:指定 Cookie 的有效期(以秒为单位)。

  • 注意:如果未设置过期时间,Cookie 将成为会话 Cookie,在浏览器关闭时自动删除。

Size(大小):Cookie 的大小(以字节为单位)。

HttpOnly:如果启用,JavaScript 无法通过 document.cookie 访问该 Cookie,只能由服务器读取。

Secure:如果启用,Cookie 只能通过 HTTPS 协议传输,确保安全性。

SameSite:控制 Cookie 是否在跨站请求中发送,用于防止跨站请求伪造(CSRF)攻击。

可选值:Strict:仅在同站点请求中发送。Lax:在导航到目标站点时发送(例如点击链接)。None:允许跨站发送(需要与 Secure 一起使用)。

Partitioned(分区):用于跨站场景下的 Cookie 分区,确保 Cookie 仅在特定上下文中使用。


本章简单介绍了Session和Cookie概念,对以后学习爬虫具有一定辅助作用。

相关推荐
Jerry.张蒙20 分钟前
AI工具Opencode助力SAP提质增效实践
大数据·运维·服务器·人工智能·运维开发
JustHappy8 小时前
古法编程秘籍(七):互联网到底是什么?把两台电脑怎么说话搞懂就够了
前端·后端·网络协议
snow@li8 小时前
SEO-文章标题:写文章时候,分类+主标题+大纲+解释 作为标题 / 不点进去也知道全文覆盖什么 / 标题即架构
前端
鹤落晴春8 小时前
RH124问答3:从命令行管理文件
linux·运维·服务器
guslegend9 小时前
大模型驱动大数据SRE智能运维
大数据·运维
kyriewen9 小时前
Git Commit 前自动修复代码风格?配置 Husky + lint-staged,从此 CR 只聊逻辑
前端·git·面试
遇见火星9 小时前
Docker Compose 完全入门:一键启动所有容器
运维·docker·容器·docker compose
小和尚同志9 小时前
AI 自动化测试探索(一):Playwright MCP
前端·人工智能·aigc
火山上的企鹅9 小时前
Codex实战:APP远程升级服务搭建(三)后台管理页面(APK 上传、版本管理、多应用页签)
服务器·网络·数据库·oracle·qgc
老马识途2.09 小时前
在AI的帮助下理解spring的启动过程
java·前端·spring