HTTP、Cookie、Session知识小计

一、HTTP 协议核心原理

1. HTTP 是什么

HTTP 是超文本传输协议 ,是浏览器和服务器之间通信的标准规则。所有网页、接口、图片、数据传输,都基于 HTTP 完成。

2. HTTP 最重要特性:无状态

无状态 = 服务器不记住任何用户。每一次请求都是独立的,服务器不知道:

  • 是谁发的请求
  • 之前有没有发过请求
  • 有没有登录

这就是必须使用 Session 实现登录状态的根本原因。

3. GET 请求详解

作用

获取数据、查询数据。

特点

  • 参数拼接在 URL 地址后面
  • 可见、不安全,不能传密码等敏感信息
  • 长度有限制(大约 2KB 以内)
  • 会被浏览器缓存、保存到历史记录
  • 幂等:多次请求结果一样
  • 适合:查图书、查列表、查购物车

4. POST 请求详解

作用

提交数据、新增、修改、删除、登录。

特点

  • 参数放在请求体中,不在 URL 显示
  • 安全、隐私性强
  • 数据大小无限制
  • 不会被缓存
  • 适合:登录、加入购物车、提交表单

5. GET 与 POST 最核心区别

  • 查数据 → GET
  • 传敏感数据 / 改数据 → POST

二、会话技术:Cookie 与 Session(必考重点)

1. 为什么需要会话?

因为 HTTP 无状态,服务器无法识别用户身份。必须通过会话技术让服务器 "记住" 用户。

  • 保存在浏览器中的一小段文本数据
  • 由服务器创建,通过响应头返回给浏览器
  • 浏览器之后每次请求都会自动带上 Cookie
  • 容量小(最多几 KB)、可被用户禁用、可篡改、不安全

3. Session 原理

  • 保存在服务器内存中的对象
  • 每个用户拥有独立的 Session
  • 服务器只给浏览器一个 SESSIONID
  • 真正的用户信息(用户 ID、登录状态)存在服务器
  • 安全、可靠、不能被篡改
  • Session 依赖 Cookie 传递 SESSIONID
  • Cookie 只存 ID,Session 存真实数据
  • 关闭浏览器 → Cookie 失效 → Session 无法识别

对比:

对比维度 Cookie Session
存储位置 浏览器客户端 服务器端
存储内容 只存字符串(通常是 SESSIONID),也可直接存用户数据 存真实用户数据:用户 ID、登录状态、权限等
安全性 低:数据暴露在客户端,可被篡改、窃取 高:数据只在服务器,客户端拿不到真实信息
容量限制 约 4KB 无限制(服务器内存决定)
生命周期 可设置持久化时间,或随浏览器关闭而失效 依赖SESSIONID,默认超时 / 服务器重启后失效
依赖关系 不依赖 Session 依赖 Cookie 传递 SESSIONID
使用场景 记住登录状态(如 "记住我")、用户偏好设置 登录会话管理、用户身份识别、购物车数据
典型问题 易被篡改、窃取,不适合存敏感数据 服务器压力较大,Session 共享需要额外处理

5. 登录流程(Session 核心逻辑)

  1. 用户输入账号密码发送请求
  2. 后端校验成功
  3. 服务器创建 Session,把用户 ID存入 Session
  4. 服务器自动把 SESSIONID 写入浏览器 Cookie
  5. 后续请求浏览器自动带 SESSIONID
  6. 服务器通过 ID 找到对应用户 → 识别登录状态

6. 一句话区分

Cookie 存在浏览器,不安全;Session 存在服务器,安全。

四、Servlet 核心作用(后端控制层)

1. Servlet 是什么

运行在服务器端的 Java 程序,专门处理浏览器请求。

2. Servlet 的四大功能

  1. 接收前端请求参数
  2. 获取 Session,判断用户是否登录
  3. 调用数据库执行增删改查
  4. 返回 JSON 格式结果给前端

五、前后端交互完整流程

1. 前端做什么

  • 收集用户输入(账号、密码、图书 ID)
  • 通过 AJAX 发送请求
  • 传递参数给后端
  • 接收 JSON 结果
  • 根据状态码判断成功 / 失败
  • 弹窗提示、页面跳转、渲染列表

2. 后端做什么

  • 接收请求
  • 获取参数
  • 判断登录状态(Session)
  • 操作数据库
  • 返回固定格式 JSON(code + message)

3. 前后端交互规范

统一使用 JSON 格式。通过 code 状态码判断结果:

  • 200:成功
  • 401:未登录
  • 999 / 500:失败
相关推荐
虎头金猫5 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
wuyk5555 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
XUEYUAN52125 天前
ASN 自治系统号风控:平台如何通过 IP 所属自治域批量识别代理流量
python·网络协议·http·网络安全·socks5
QYRdata5 天前
年均增速24.2%!机器人数据湖未来六年增长动能强劲
网络·机器人·服务发现
CHENKONG_CK5 天前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
chshang19925 天前
工业路由器是什么?浅谈5G工业网络中的IR602
网络·物联网·5g·智能路由器
萧瑟余晖5 天前
Netty 核心组件与 Reactor 模型详解
网络·架构
ITxiaobing20235 天前
IP 定位服务选型指南:从准确率到工程落地的技术考察
linux·服务器·网络
wuyk5555 天前
【Socket 进阶之路】第 9 章 Linux 网络服务量产稳定性优化|心跳保活、TIME_WAIT、SO_LINGER、内存池、断线重连、完整异常防护框架
linux·服务器·开发语言·网络·物联网
z落落5 天前
C#UDP+串口服务端+UDP 客户端(含 CRC16 校验)
网络·网络协议·udp