抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

HTTP

HTPP:Hyper Text Transfer Protocol,超文本传输协议,定义了客户端与服务器之间说话的规则,是应用层协议。

  • 应用层协议
  • 基于TCP
  • 默认是无状态的(每次请求独立,服务器不记住你)
    工作原理:客户端发起请求 -> 服务器返回响应

HTTP是无状态的,怎么办?

HTTP默认不记住用户
比如登录后刷新网站,服务器不知道你是谁。

解决方案

Cookie + Session

  • 服务器生成 session_id,通过 Set-Cookie 发给浏览器
  • 浏览器下次请求自动带上 Cookie: session_id=...
  • 服务器查 session 存储,识别用户
    Token(如JWT)
  • 登录成功后返回一个加密 Token
  • 客户端每次请求在 Header 中携带:Authorization: Bearer <token>
  • 服务器验证 Token 合法性

HTTP/1.1 HTTP/2 HTTP3

HTTP/1.1 经典版本,支持持久连接,但队头阻塞(一次只能传一个文件)
HTTP/2 多路复用(多个请求并行)、头部压缩、二进制帧,速度大幅提升
HTTP/3 基于 QUIC(UDP),解决 TCP 队头阻塞,更适合移动网络

HTTPS

TSL就是新版的SSL

核心:TLS握手过程

  1. 客户端打招呼,浏览器告诉服务器:我将使用HTTPS协议,支持哪些加密算法
  2. 服务器回应:选择一个加密套件,发送自己的数字证书
  3. 客户端检验服务器的数字证书
  4. 生成会话密钥
    • 浏览器生成一个随机的“对称密钥”
    • 用服务器的公钥去加密,发送给服务器
    • 服务器用自己的私钥解密,得到会话密钥
  5. 开始加密通信:双方用同一个会话密钥加密/解密所有的HTTP数据

为什么需要HTTPS

  1. http是明文传输
  2. 无法验证服务器身份
  3. 数据可能被篡改

HTTP和WebSocket有什么区别?

HTTP是“请求-响应”模式,Web Socket是全双工持久连接。

评论