前端知识点总结(#4 HTTP)
五、HTTP
1. http状态码
- 状态码分类
- 1xx 服务器收到请求
- 2xx 请求成功,如200
- 3xx 重定向,如302
- 4xx 客户端错误,如404
- 5xx 服务端错误,如500
- 常见状态码
- 200 成功
- 301 永久重定向(配合location,浏览器自动处理)(浏览器会记住这个网址)
- 302 临时重定向(配合location,浏览器自动处理)(浏览器不会记住)
- 304 资源未被修改
- 404 资源未找到
- 403 没有权限
- 500 服务器错误
- 504 网关超时
- 协议和规范:就是一个约定,要求大家都跟着执行
2. http methods
- 传统的methods
- 现在的methods
- get获取数据
- post新建数据
- patch/put 更新数据
- delete删除数据
- Restful API
- 一种新的API设计方法
- 传统API设计:把每个url当作一个功能
- Restful API设计:把每个url当做一个唯一的资源
- 如何设计一个资源?
3. http headers
- 常见的Request Headers
- Accept:浏览器可接收的数据格式
- Accept-Encoding:浏览器可接收的压缩算法,如gzip
- Accept-Language:浏览器可接收的语言,如zh-CN
- Connection:keep-alive 一次TCP连接重复使用
- cookie
- Host:请求的域名
- User-Agent (UA): 浏览器信息
- Content-type:发送数据的格式,如application/json
- 常见的Response Headers
- Content-type:返回数据的格式,如application/json
- Content-length:返回数据的大小,多少字节
- Content-Encoding:返回数据的压缩算法,如gzip
- Set-Cookie:当服务端要向客户端改cookie时,用这个来改
- 自定义header
- 缓存相关的headers
- Cache-Control,例如Expires
- Last-Modified,例如If-Modified-Since
- Etag,例如If-None-Match
4. http缓存
- 缓存
- 把一些没必要重新获取一边的东西存起来
- 为什么需要缓存?
-
- 网络请求耗费大量的时间,要尽量减少网络请求的体积和数量,
- 网络请求不稳定
- 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
- 刷新操作方式,对缓存的影响
- 正常操作:地址栏输入url,跳转链接,前进后退等。对强制缓存有效,协商缓存有效。
- 手动刷新:F5,点击刷新按钮,右击菜单刷新。对强制缓存失效,协商缓存有效。
- 强制刷新:ctrl + F5。对强制缓存失效,协商缓存失效。