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

数据采集(爬虫)

http是无状态的,即HTTP协议对事物处理是没有记忆能力的,服务器不知道客户端是什么状态

如果后续需要处理前面的信息,则必须重新传入

说的更直白一点,就是服务器不会记录客户端之前发送的请求,每次请求都是独立的。服务器处理完一个请求并返回响应后,连接就会关闭,不会保留与该请求相关的任何状态信息

两个保持HTTP联系状态的技术:session和cookies

session在服务端,用于保存用户的cookies信息

cookies在客户端(浏览器端),浏览器在下次访问网页时会自动附带上cookies值,将它发送给服务器,服务器通过识别cookies判断是哪个用户,判断用户是否是登入状态进而返回对应的响应

那么什么是cookies?

cookies是网站记录用户状态信息而存储在浏览器中的小段文本数据   

cookies包含的信息十分广泛,具体如下:

  • 核心技术信息(由服务器和浏览器自动处理):这是每个cookie的最基本的部分,用于确保cookie能够被正确发送和处理
  • 网站功能信息(用于提升用户体验):这些是网站为了正常运作或记住用户的偏好而储存的信息
  • 跟踪与分析信息:这些是第三发(如广告商、数据分析公司)设置的cookie,用于跨网站跟踪用户的行为,从而构建用户的兴趣画像
Cookie 名称常见模式很可能的作用举例说明
包含 sessionsesssessidJSESSIONID会话标识符:这是最重要的Cookie,用于保持你的登录状态。sessionid=abc123def456...
包含 tokenaccess_tokenrefresh_token认证令牌:现代Web应用(如单页应用)常用它来管理登录状态。access_token=eyJhbGciOiJ... (很长的一串JWT令牌)
包含 csrfxsrf-token安全令牌:用于防止跨站请求伪造攻击,通常在表单提交时使用。csrftoken=8dfh3k9j...
包含 _ga_gid_gatGoogle Analytics:用于网站流量统计分析。_ga=GA1.2.123456789.1234567890
包含 _fbpfrFacebook Pixel:用于Facebook广告追踪和转化跟踪。_fbp=fb.1.123456789.1234567890
包含 consentopt_inprivacy用户同意管理:记录你是否同意了Cookie使用政策。cookie_consent=true
包含 cartbasket购物车信息:在电商网站存储你临时加入购物车的商品。cart_id=item1:2,item2:1
名称很乱,如 uidid用户标识符:可能是网站或广告平台给你分配的唯一ID,用于追踪。uid=12345

cookie的作用:

  • 会话管理:保持用户的登入状态。用户登入一次,网站通过cookie就知道后续的用户都是你,无需每换一次页面就要输入一次密码
  • 个性化设置:记住用户的偏好,比如语言,主题(深色或浅色)、字体大小
  • 购物车:在电商网站,即使没有登入,也能把商品加入购物车。这背后就是cookie在临时保存信息
  • 跟踪与分析:记录用户的浏览行为。比如广告商通过Cookie知道你对登山杖感兴趣,然后在不同网站上向你展示登山用品。

什么是session?

我们可以用一个非常贴切的比喻来理解:

核心比喻:酒店入住

Cookie= 你的房卡
Session = 酒店前台的“入住登记簿

现在,我们来分解这个过程:一场完整的“Web访问”如何工作

第1步:你第一次访问网站(走进酒店)
你访问 `www.example.com`。
你的浏览器(你)是陌生人,没有Cookie(房卡)。 服务器(酒店前台)看到你不认识,于是:
创建一个新的Session:在它的数据库或内存中开辟一个新的“房间”,并生成一个**唯一的Session ID(房间号)。这个Session里暂时是空的。
通过Cookie把这个Session ID发给你**:它在HTTP响应头中说:“嘿,浏览器,请把这个Session ID存为Cookie,下次来的时候带上”。就像前台给你一张写了房间号的房卡。
这个Cookie通常叫做 `sessionid`、`JSESSIONID` 等。

第2步:你登录网站(办理入住登记)
你输入用户名和密码点击登录。
你的浏览器发送登录请求,并**自动带上第一步中获得的那个包含Session ID的Cookie**(你刷房卡进入房间)。
服务器(前台)收到请求,**通过Cookie里的Session ID找到对应的Session记录**(根据房卡上的号码查到你开的房间)。
服务器验证你的账号密码正确后,**就把你的用户信息(如user_id, username)写进这个Session记录里**(在前台登记簿上这个房间号后面写上你的名字和身份证号)。
现在,这个Session就标志着你“已登录”了。

**第3步:你在网站内浏览(在酒店内活动)**
*   你点击“我的账户”、“购物车”等链接。
*   每个请求,浏览器都会**自动带上那个Session ID Cookie**(你每次去酒店的健身房、餐厅,都要刷房卡)。
*   服务器**每次都用这个Session ID去查它的“登记簿”**(前台每次刷房卡都核对一下信息)。
*   一旦它发现这个Session ID对应的Session里存在登录信息,它就认为你是合法用户,并返回相应的页面数据(允许你使用设施)。

**第4步:你退出登录(办理退房)**
*   你点击“退出”。
*   服务器收到请求,**直接销毁它那边的Session记录**(前台把登记簿上你的那条记录划掉,房间收回)。
*   同时,它可能会告诉浏览器清除这个Session Cookie(让你的房卡失效)。
*   此后,即使你的浏览器还保存着那个Session ID(你捡到了旧房卡),但服务器那边已经找不到对应的Session了(前台发现这个房间号已经无效了),所以你会被当作未登录用户。

**第5步:Session过期(酒店自动清理)**
*   如果你长时间不活动(比如30分钟没有发送请求),服务器为了节省资源,会**自动销毁过期的Session**(酒店规定,房间闲置超过24小时自动清空)。
*   这时,你的登录状态也就失效了。

---

### 为什么需要Session和Cookie这样配合?

这主要是由于 **HTTP协议本身是“无状态”的**。这意味着服务器处理每个请求时,都把它当作一个全新的、独立的请求,它不会记住你上一次是谁。

Session和Cookie的机制就是为了在无状态的HTTP之上**创建一种“状态”或“记忆”**。

*   **Cookie** 负责在**客户端(浏览器)** 存储一个“钥匙”(Session ID)。
*   **Session** 负责在**服务器端** 存储真正的用户数据(锁着的信息宝箱)。

这种设计非常巧妙:
1.  **安全**:敏感的用户数据(如登录状态、用户ID)存储在服务器端,相对安全。客户端只存储一个无意义的ID字符串。
2.  **高效**:服务器不需要在每次响应中都传递大量用户数据,只需传递一个小的ID即可。

总结:Cookie 和 Session 的关系

特性CookieSession
存储位置客户端(浏览器)服务器端(内存、数据库、文件)
存储内容一个标识符(Session ID)详细的用户状态(登录信息、购物车等)
安全性相对较低,用户可查看、禁用、篡改相对较高,数据在服务器上
生命周期可以设置长期有效(持久Cookie)通常较短,与浏览器会话同步或自定义超时

多路加速:了解多线程的基本原理:

进程可以理解为一个独立运行的程序单位

进程是线程的集合,是由一个或多个线程构成的

线程是操作系统进行运算调度的最小单位,是进程中的一个最小运行单元

并发和并行

http://www.dtcms.com/a/406207.html

相关文章:

  • 学习Java第二十二天——苍穹外卖Day10-all
  • C语言底层学习(3.指针、函数与数组)(超详细)
  • 基于XTDIC-SPARK三维高速测量系统的电子产品跌落测试研究
  • 前端终极布局方案Grid
  • 微服务与面向服务编程(SOA)入门指南:从架构演进到 Spring Cloud 实践(初学者友好版)
  • 微服务配置中心高可用设计:从踩坑到落地的实战指南(二)
  • 【信号处理】检波算法
  • 【Web前端|第三篇】JavaScript事件
  • 【数据结构】二叉树全面详解
  • 信号处理与系统设计,第二节课笔记
  • 设计模式(C++)详解——解释器模式(2)
  • Spring Cloud构建分布式微服务架构的完整指南
  • php网站做多久郑州建设网
  • jsp网站开发的使用表格电子商务网站建设的核心是
  • 快速将多个PPT、PPTX幻灯片统一转换成浏览器能直接打开的HTML网页文件
  • IROS 2025将于10月在中国杭州举办,爱迪斯通携手机器人训练与遥操作专家XSENS、HAPTION参展
  • 后海做网站公司网址搜索引擎入口
  • Java之链表
  • IDEA 高效配置指南:从基础到进阶的设置全解析
  • 用 SeaTunnel 同步 MySQL 到 Doris:全量增量 + SQL 过滤
  • C++项目:仿muduo库高并发服务器--------Any类的实现
  • ELK 企业级日志分析系统实战教程
  • 驻马店怎么建设自己的网站wordpress 导出到pdf
  • 网站建设成本表一般什么行业做网站的多
  • 阳台光伏、储能系统再升级!双路电能表,您家能源的“智能管家”
  • 【Unity 入门教程】四、如何制作一个 Perfab
  • 浅谈高校门户网站建设的规范标准找做废薄膜网站
  • Word和WPS文字中的题注没有更新?全选按F9刷新
  • Spring Boot集群 集成Nginx配置:负载均衡+静态资源分离实战
  • 本地生活软件开发指南:从用户需求到商业闭环的实战逻辑