无论google还是度娘,查询http状态码的含义是总是晦涩难懂,前一段时间配合公司进行了一次域名升级,才真的对301和304这两个状态码有的更深一步的了解。
301
301,官方示意永久性移动,表示请求的网页永久移动到了新的位置,服务器返回此响应(对get或者head请求的响应),是会自动请求者转到新的位置。
什么意思呢。。。比如说,现在我的网站域名是www.aaa.com,在没有做任何更改之前我的所有文件资源的请求返回的状态码应该是200。现在由于战略升级,我需要有一个响亮的域名,来配合我的产品气质,于是我需要把域名切换为www.bbb.com。但是这就会产生一个问题,我这次域名升级不可能通知到每一个人,一些老用户就找不到我的网站的入口了,这种情况下,一般我们都会请运维大哥配合做强跳,如果用户访问的是www.aaa.com,服务器接收到这个请求之后,会将所有请求直接打到www.bbb.com所对应的服务器上,这是,浏览器接收到的返回码就是301了,也就是所谓的请求的网页永久性的转移到新的位置。
304
304,未修改,自从上次请求之后,请求的网页未修改过,但是请求者应继续使用原有的位置来进行以后的请求。
在浏览器的性能优化当中,我们为了提升页面的打开速度,经常会将一些不长修改的文件,比如css文件,js文件,以及一些图片文件做缓存,以节省下载速度。浏览器的缓存有两种模式,一种是强缓存,一种是协商缓存。强缓存命中时不会向服务器发送请求。而协商缓存回想浏览器发送请求,但是浏览器不会发送返回的数据,而是读取本地缓存,这时,命中协商缓存的请求返回码就是304,表示使用本地缓存中的文件,不从服务器获取数据。