HTTP

135 阅读2分钟

https 和 http 区别

HTTPS = HTTP + 安全层(SSL/TLS)

  1. HTTP是明文传输的,不安全;HTTPS是加密传输的,非常安全。(例如: 通过免费WiFi盗密码) 
  2. HTTP使用80端口,HTTPS使用443端口。
  3. HTTP较快,HTTPS较慢。
  4. HTTPS的证书一般需要购买(但也有免费的),HTTP不需要证书。

http状态码

2xx操作被成功接收并处理
3xx重定向,需要进一步的操作以完成请求
4xx表示浏览器方面出错
5xx表示服务器方面出错

200请求成功。一般用于GET与POST请求
304继续使用本地缓存 协商缓存
401未登录
403token 过期
404请求不存在

什么是http缓存

将资源(html,css,js,image...)缓存到本地. 第二次加载时直接从本地读取,减少CPU计算,页面渲染,网络请求

强制缓存

  • 给缓存设置有效期 Cache-Control: max-age=300
  • 表示缓存有效期是300s
  • 如果缓存在有效期内会直接从本地读取数据.
  • 在 chrome 控制台的 network 选项中可以看到该请求返回 200 的状态码,并且size显示from disk cachefrom memory cache
  • from memory cache表示是从缓存中读取

截屏2022-03-08 下午7.00.20.png

协商缓存

  • 协商缓存是在强制缓存失效的情况下进行的一种机制,用于验证缓存的有效性
  • 当浏览器发现强制缓存失效时,
    • 会向服务器发送请求,
    • 该请求会附带上次缓存的时间
    • 服务器会根据请求的条件进行验证,
    • 从上次缓存到现在有没有变更:
      • 没有变更: 返回 304 继续使用本地缓存,
      • 有变更: 返回 200 不使用本地缓存,

http 版本

http1.0

  • 最基础的协议
  • 只实现了get post 方法

http1.1

  • 增加了缓存策略 cache-conrol E-tag
  • 支持断点续传/大文件分片上传, 状态码206
  • 支持新的方法: GET POST PUT DELETE
  • 支持长链接 Connection: keep-alive, 一次TCP链接多次请求
    • http1.0, 每发送一次请求都会来一次tcp的连接与断开
    • http1.1, 一次TCP连接, 我们可以发多次请求

http2.0

  • 压缩header减少体积
  • 一次TCP连接, 可发多次并发请求,
    • http1.1不能并发
    • http2.0开始不再需要雪碧图来优化
  • 服务端推送
    • 适合单向推送:例如股价更新、新闻推送、监控仪表盘
    • websocket适合: 需双向交互, 如聊天室、