关于http code 308的记录

最近在项目中须要作一个文件上传的功能,使用的组件是element
ui的upload组件,在测试的过程当中发现后端返回的状态是308永久重定向,上传的过程当中不只发起了上传文件自己的请求,还有一个 看起来不相干的请求,经过查询资料终于弄清了为何上传失败以及308状态码的含义

如图,是当时请求的截图:chrome

图片描述

图1 上传请求
图片描述后端

图2 重定向请求浏览器

经过网上查找资料,找到了这篇文章,文章已经对308状态码的含义讲解得很清楚了,就是请求的地址已经被永久重定向到另外一个URI,且在请求返回的response headers中会有一个叫作"Location"的header来指明被重定向的位置。测试

我这里上传失败的缘由是接口地址原本应该是“/security/file/”,而我写成了“/security/file”,地址后面少了一个“/”,所以如图1所示,response headers中的“Location”指明了被重定向的位置,也就有了图2中的这个请求。ui

这里前2个file的请求是同样的,至于为何会出现2次,还没弄清缘由,是由于chrome浏览器比较高级,会自动多尝试一次请求吗?实际上在IE中,只会出现一次上传的请求,后2次都不会出现,如图3。而在firefox中,file的请求一次,重定向资源的请求一次,如图4所示。
图片描述
图3 IE中的全部请求
图片描述
图4 firefox中的全部请求spa

这里还有一个没弄清的问题是图2中的请求其实是后端在Apache中的一个配置,为何会重定向到这里也还须要进一步肯定。firefox

相关文章
相关标签/搜索