此篇文章是自学于慕课网双越老师的前端课程所做的笔记,如有不妥将会删除。
http状态码
什么是http状态码
“HTTP状态码(HTTP Status Code)是表示网页服务器超文本传输协议响应状态的3位数字代码。即当服务器收到某种请求时,例如,当用户通过浏览器访问你的网页页面,服务器会向这个浏览器返回一个代码响应请求。这个代码就称为:HTTP状态码。”
在浏览器中可以看到下面这些是状态码
状态码的分类
常见状态码
301的情况大多数是在自己的域名已经到期,换了一个域名,所以要永远改变地址了,老的域名 永远不会被用了
302的情况,只是暂时访问另一个临时的地址
304,你已经请求过这个资源了,你这个资源还有效
404没有 找到这个服务
403没有权限,是因为还有没有注册和登录
504,访问到服务器的时间太长
http method
传统的methods
现在的methods
下面的post方法的含义变更了,变成了新建数据,比如新建一片博客,
Restful API
Resful Api设计:把每个url当做一个唯一的资源
如何将url设计成一个资源
不使用url参数
用method表示操作类型
和下面进行比对
http headers
常见的Request Headers
第二点压缩算法的目的是为了使接收了资源更小,访问速度更快
同域请求都会带上cookie,Host就是你请求的域名
常见的Response Headers
可以在浏览器下面观看两者
http缓存
什么是缓存
百度百科如下:
浏览器缓存(Browser Caching)是为了加速浏览,浏览器在用户磁盘上对请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。它是网站访问统计最难解决的问题之一。
但是,Web服务器可能因此而未计算一个页面或广告已被阅览的次数。
缓存的方式节约了网络的资源,提高了网络的效率。
那些资源可以被缓存
一般是js,css,img等一些静态资源,因为这些资源一旦生成就不会被修改
http的强制缓存
初次请求
浏览器初次请求的时候,服务器会向浏览器发送一些资源,和Cache-Control,
Cache-Control在Response Heafers中
控制强制缓存的逻辑
例如
这上面的意思是将这个资源缓存一年的时间
将这个logo图片 缓存上面这么长的时间
再次请求
再次请求的时候就会直接读取本地缓存,访问速度比初次访问熟读要快的多
如下例子
disk cache 的标志就是访问的本地缓存
缓存过期
缓存时间到了,就会过期了就会向服务器再次的发送请求
cahe-control的值
no-cache 是不用本地的强制缓存,交给服务端处理
no-store 就是最彻底的,既不用本地的强制缓存,也不用服务端处理,直接让服务器把资源重新发一份,
private的意思是只允许最终用户做缓存
而public 可让中间的一些代理做缓存
关于Expires
知道这么回事就可以了
http缓存-协商缓存(对比缓存)
协商缓存是服务端缓存的策略,就是让服务端来判断这个资源是不是可以被缓存和使用缓存内容,也就是服务器判断客户端资源是否和服务端的资源一样,如果是一样的就返回状态码304,否则就返回200。
如下图
协商缓存就是要拿资源标志对比的上述过程,来看看是不是可以使用缓存
资源标志有哪些
Last-Modified
初次请求,服务器发现资源可以被缓存,服务器返回资源和Last-Modified标志到浏览器,再次请求的时候,request headers 带着 if-Modified-Since(相当于一个key,而他对应的值是Last-Modified),然后服务器就会对比两边的Last-Modified的值,如果他们的值相等就会返回304,如果这个值不相等,说明资源被改过了,服务器要重新返回资源和Last-modifed。状态码为200
Etag
和上面的last-Modified的过程和逻辑是一样的
上面的if-None-Match的内容就是这个Etag的key和value