当前位置: 首页 > news >正文

爬虫基础(三)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概念,对以后学习爬虫具有一定辅助作用。

http://www.lryc.cn/news/530286.html

相关文章:

  • 【Super Tilemap Editor使用详解】(十三):快捷键指南(Keyboard Shortcuts)
  • 【Leetcode 每日一题】119. 杨辉三角 II
  • 简单看看会议系统2(时延分析)(TODO)
  • Linux中 端口被占用如何解决
  • OpenAI o3-mini全面解析:最新免费推理模型重磅发布
  • C++:虚函数与多态性习题2
  • 利用metaGPT多智能体框架实现智能体-1
  • Kubernetes组成及常用命令
  • oracle: 多表查询之联合查询[交集intersect, 并集union,差集minus]
  • 力扣第149场双周赛
  • AI开发之 ——Anaconda 介绍
  • Spring中ObjectProvider的妙用与实例解析
  • Easy系列PLC尺寸测量功能块(激光微距应用)
  • 当卷积神经网络遇上AI编译器:TVM自动调优深度解析
  • 《网络编程基础之完成端口模型》
  • Axure PR 9 旋转效果 设计交互
  • 完美还是完成?把握好度,辨证看待
  • C++的类Class
  • C++中的内存管理
  • MySQL为什么默认引擎是InnoDB ?
  • ComfyUI安装调用DeepSeek——DeepSeek多模态之图形模型安装问题解决(ComfyUI-Janus-Pro)
  • 电脑要使用cuda需要进行什么配置
  • 利用Muduo库实现简单且健壮的Echo服务器
  • Scratch 《像素战场》系列综合游戏:像素战场游戏Ⅰ~Ⅲ 介绍
  • Android学习制作app(ESP8266-01S连接-简单制作)
  • 三甲医院大型生信服务器多配置方案剖析与应用(2024版)
  • 【Unity3D】实现横版2D游戏——单向平台(简易版)
  • 大白话讲清楚embedding原理
  • 电脑优化大师-解决电脑卡顿问题
  • el-table组件样式如何二次修改?