HTTP code
前端缓存
- 客户端缓存,代理服务器缓存,还有缓存如何去验证它的可用性
HTTP重要性
- 前端所有的静态资源加载和数据加载都是要通过HTTP协议进行发送
- 价值提升
- 只要你是中高级的岗位,不可能不问你HTTP相关的内容,而且一般面试官要问你的时候,他不会说给你提醒,让你往深的去讲,他只会问你相关的一些知识,然后看你讲的什么。
HTTP协议 简单例子
- 输入URL 打开网页
- AJAX获取数据
- img标签加载图片
Cache-Control 设置
- max-age = 100 (秒)缓存时间
- 通过设置public 、private 来控制只是客户端缓存、可以可以通过代理服务器进行缓存
- 可以通过设置must-revalidate 在缓存过期之后,必须到服务端上进行验证之后,才能继续使用缓存
no-cache 、 no-store 设置
- 可以控制我们是否使用缓存
缓存验证
- 涉及到缓存我们就要考虑缓存的验证,因为缓存的可用性,因为缓存是存储在客户端的,客户端并不知道服务端是否有改变缓存的这部分数据,那么我们缓存有时候就需要进行一个验证
- 可以通过last-modified配合if-modified-since进行验证
- 还可以通过etag配合if-none-match进行验证
- 缓存是web服务中对性能提升最大的一环,所以深入理解HTTP缓存,非常重要
HTTP 更多有意义的头
- Content-Type 、 Content-Encoding等用来约束数据类型
- Cookie保持会话信息(seesion的方法就是通过Cookie来实现的)
- CORS实现跨域并保持安全性限制
深入到TCP
- 什么是三次握手
- HTTPS链接的创建过程,以及为什么HTTPS就是安全的
- 什么是长链接,为什么需要长链接
- HTTP2的信道复用又为什么能提高性能