什么是HTTP的无状态(举例详解)
HTTP是无状态的,简单来说,你这次访问了服务器,关闭网页之后,再次访问服务器,服务器是没有意识到又是你来访问的。
✅比喻:
把 你(用户) 比作想寄快递的人,快递驿站的电脑系统(服务器) 负责记录寄件信息,每次去驿站操作,就像发一次 HTTP 请求。
- 第一次去驿站寄件📦
你抱着包裹走进驿站,跟工作人员说:“我要寄这个包裹到北京!”
工作人员接过包裹,登记信息(收件人、地址、电话 ),打印面单贴好,把包裹收走。
→ 对应 第一次 HTTP 请求:你主动找服务器 “办事”,服务器记录你的操作。 - 出门逛一圈,再回驿站查进度📦
你逛了半小时,又回到驿站,问工作人员:“我刚才寄的包裹,现在到哪了?”
工作人员一脸懵:“你谁啊?刚才寄包裹的人太多了,我哪记得你寄没寄过!你重新说清楚是哪个包裹呀?”
→ 对应 关闭网页 / 间隔一段时间后,再次发 HTTP 请求:服务器完全 “忘” 了你之前的操作,没法直接关联上 “同一个人、同一件事”,因为 HTTP 本身是 “无状态” 的,每次请求独立,不记历史 - 对比 “有状态” 的理想情况📦
要是驿站系统 “有状态”,会怎么做?
你第一次寄件后,系统给你发个 取件码(类似 Session ID 存到 Cookie ),你第二次去查进度,报出取件码,工作人员一查就知道:“哦!是你刚才寄的去上海的包裹,现在还在分拣中心呢~”
→ 对应 Session + Cookie 配合:用 “取件码(Session ID )” 让服务器记住你、关联上历史操作,解决无状态的问题。
Cookie、Session、Token的区别笔者明天出一篇详解~
完美撒花~