301 moved permanently、302 found、303 see other
301/302/303都表示重定向,所以放在一起讲解。
301表示永久重定向(301 moved permanently),表示请求的资源分配了新url,以后应使用新url。
302表示临时性重定向(302 found),请求的资源临时分配了新url,本次请求暂且使用新url。302与301的区别是,302表示临时性重定向,重定向的url还有可能还会改变。
303 表示请求的资源路径发生改变,使用GET方法请求新url。她与302的功能一样,但是明确指出使用GET方法请求新url。
新url指的是,第一次请求返回的location。
举例说明
1、浏览器访问http://write.blog.csdn.net, csdn中“我的博客”
2、服务器,返回状态码 302(url临时改变)和location
3、浏览器,请求location指定的地址,完成请求。也就是说,浏览器一共请求了2次!
文章图片
【http 301、302、304、400、405、415状态码解释】
304 not modified
客户端发送附带条件的请求时(if-matched,if-modified-since,if-none-match,if-range,if-unmodified-since任一个)服务器端允许请求访问资源,但因发生请求未满足条件的情况后,直接返回304Modified(服务器端资源未改变,可直接使用客户端未过期的缓存)。304状态码返回时,不包含任何响应的主体部分。304虽然被划分在3xx类别中,但是和重定向没有关系。
举例说明
请求hao123主页,js、css、图片状态码很多是304
文章图片
随便找一个看看,会发现有header中有判断资源是否修改的设置。
文章图片
400 bad request
表示请求的报文中存在语法错误,比如url含有非法字符。
提交json时,如果json格式有问题,接收端接收json,也会出现400 bad request
比如常见的json串,数组不应该有",但是有"了。
错误的json
{
"name": "BeJson",
"url": "http://www.bejson.com",
"page": 88,
"isNonProfit": true,
"links": "[//多了[前边的"
{
"name": "Google",
"url": "http://www.google.com"
}
]" //多了]前边的"
}
405 method not allowed
问题原因:请求的方式(get、post、delete)方法与后台规定的方式不符合。
比如: 后台方法规定的请求方式只接受get,如果用post请求,就会出现 405 method not allowed的提示
415
后台程序不支持提交的content-type,就会返回415,spring mvc错误信息如下
The server refused this request because the request entity is in a format not supported by the requested resource for the requested method.
unsupported media type
9年全栈开发经验,请关注个人公众号
文章图片
推荐阅读
- 网络夺命连环问系列|网络夺命连环问5--HTTP怎么传输大文件()
- Android笔记|Retrofit2.5是如何解析在接口类中定义的方法()
- okhttp|你想要的系列(网络请求框架OkHttp3全解系列 - (四)拦截器详解2:连接、请求服务(重点))
- Android消息推送MQTT
- 前端|(2.6w字)网络知识点灵魂拷问——前端面试必问
- 分布式|理论 | 优雅的构建一个健壮的API接口
- datepicker 日期控件,两个文本框共一个日期控件
- HTTP报文头Accept和Content-Type总结
- vue|vue 前后端分离自定义的状态码如何获取res.data