前端知识点总结(#4 HTTP)

93 阅读3分钟

五、HTTP

1. http状态码

  1. 状态码分类
  • 1xx 服务器收到请求
  • 2xx 请求成功,如200
  • 3xx 重定向,如302
  • 4xx 客户端错误,如404
  • 5xx 服务端错误,如500
  1. 常见状态码
  • 200 成功
  • 301 永久重定向(配合location,浏览器自动处理)(浏览器会记住这个网址)
  • 302 临时重定向(配合location,浏览器自动处理)(浏览器不会记住)
  • 304 资源未被修改
  • 404 资源未找到
  • 403 没有权限
  • 500 服务器错误
  • 504 网关超时
  1. 协议和规范:就是一个约定,要求大家都跟着执行

2. http methods

  1. 传统的methods
  • get获取服务器的数据
  • post向服务器提交数据
  1. 现在的methods
  • get获取数据
  • post新建数据
  • patch/put 更新数据
  • delete删除数据
  1. Restful API
  • 一种新的API设计方法
  • 传统API设计:把每个url当作一个功能
  • Restful API设计:把每个url当做一个唯一的资源
  1. 如何设计一个资源?
  • 尽量不用url参数
  • 用method表示操作类型

3. http headers

  1. 常见的Request Headers
  • Accept:浏览器可接收的数据格式
  • Accept-Encoding:浏览器可接收的压缩算法,如gzip
  • Accept-Language:浏览器可接收的语言,如zh-CN
  • Connection:keep-alive 一次TCP连接重复使用
  • cookie
  • Host:请求的域名
  • User-Agent (UA): 浏览器信息
  • Content-type:发送数据的格式,如application/json
  1. 常见的Response Headers
  • Content-type:返回数据的格式,如application/json
  • Content-length:返回数据的大小,多少字节
  • Content-Encoding:返回数据的压缩算法,如gzip
  • Set-Cookie:当服务端要向客户端改cookie时,用这个来改
  1. 自定义header
  2. 缓存相关的headers
  • Cache-Control,例如Expires
  • Last-Modified,例如If-Modified-Since
  • Etag,例如If-None-Match

4. http缓存

  1. 缓存
  • 把一些没必要重新获取一边的东西存起来
  • 为什么需要缓存?
    • 网络请求耗费大量的时间,要尽量减少网络请求的体积和数量,
    • 网络请求不稳定
  • 哪些资源可以被缓存?
    • 静态资源(js css img)
  1. http缓存策略(强制缓存+协商缓存)
  • 强制缓存
    • Cache-Control:在Response Headers中,控制强制缓存的逻辑
    • cache-control的值:max-age, no-cache(不强制缓存), no-store, private, public
    • Expires,已被cache-control代替
  • 协商缓存
    • 服务端缓存策略
    • 服务端判断客户端资源,是否和服务端资源一样
    • 一致则返回304,否则返回200和最新的资源
    • 资源标识(在Response Headers中,有两种)
      • Last-Modified:资源的最后修改时间
      • Etag:资源的唯一标识(一个字符串,类似于人类的指纹),优先使用Etagx
  1. 刷新操作方式,对缓存的影响
  • 正常操作:地址栏输入url,跳转链接,前进后退等。对强制缓存有效,协商缓存有效。
  • 手动刷新:F5,点击刷新按钮,右击菜单刷新。对强制缓存失效,协商缓存有效。
  • 强制刷新:ctrl + F5。对强制缓存失效,协商缓存失效。