面试常问有关响应状态码3XX

前端开发的小伙伴们是不常常被问到3xx响应状态码前端

通常我们前端小伙子知道的 3xx属于的是重定向范围,面试

可是面试官通常会问到这几个经常使用的30一、30二、30三、30四、307这几个状态码的做用和区别。浏览器

那么301表明什么缓存

301的英文是 moved permanently (永久性重定向)看下图服务器

永久性重定向。服务器对你客户端说:‘你如今请求的资源不在我这,我无法给你,可是我能够告诉你,你能够去这个某个地址拿到这个资源,而且之后这个资源都会在我给你的地址那,你保存一下这地址,之后不要在找我要这个资源了’。post

实际上服务器和客户端是这么交流的,请求的资源已被分配到新的URI(统一资源标识符),之后应使用资源如今所指的URI。代理


302 表明什么呢?cdn

302 的英文表示是 Found,临时性重定向,看下图blog


服务器告诉你:‘你如今所请求的资源目前不在我这,被临时放到某个地址的服务器了,可是之后可能还会从某个服务器那拿过来,此次我给你一个临时的地址你去请求吧。资源

303表明什么呢?

303 SeeOther  也是临时重定向的一种,是否是不少小伙伴都懵逼了。什么鬼啊,来看图


服务器告诉你:‘你如今所请求的资源目前不在我这,被临时放到某个地址的服务器了,可是之后可能还有从某个服务器那拿过来,此次我给你一个临时的地址你去请求吧,不过你去哪请求的时候必须使用GET方法,这点与302状态码有区别。

好比,当时使用post方法访问CGI程序,其执行后的处理结果是但愿处理结果是但愿客户端能以get方法重定向另外一个uri上去时,返回303状态码。虽然302Found状态码也能够实现相同的功能,可是303是最合理的。

当30一、30二、303响应状态码返回时,几乎全部的浏览器都会把POST改为GET,并删除请求报文内的主体,以后请求会自动再次发送

307表明什么呢?

307 Temporary Rediract临时性重定向

临时重定向。该状态码与302Found有着相同的含义。尽管302标准禁止POST变成GET,但实际使用时你们并不遵照。

307 会遵守浏览器标准,不会从post变成get。可是对于处理响应时的行为,每种浏览器有可能出现不一样的状况

304 Not Modidied 英文直译 没有发生改变

304虽然属于3xx类别中可是和重定向没有关系,304 是一个很是好玩的状态,当浏览器拿到状态码是304 的时候,就会从本地资源中拿请求的资源或者代理服务器直接返回本地的资源,304属于走缓存,这个交互机制会在之后的文章写出来,请你们多多关顾

相关文章
相关标签/搜索