关于常见HTTP响应码

官方文档(英文版):http://doc.canglaoshi.org/rfc/rfc1945.txt
官方文档(中文版):http://doc.canglaoshi.org/rfc-cn/RFC1945.txt
常见HTTP响应码通俗描述:

  • 200:成功响应,需要注意,这仅仅表示服务器端成功的进行了响应这项操作,并不表示业务的成功,例如尝试登录时,如果用户名或密码错误导致登录失败,只要服务器端成功的响应了,响应码也是200

  • 302:重定向,服务器端处理请求后,会响应此响应码和另一个目标路径,通常,浏览器收到此响应码后会自动请求新的目标路径

  • 400:请求参数错误,例如服务器端对某个请求参数设置了“不允许为null”的约定,而客户端却未提交此参数,或某请求参数必须是数值类型的,客户端提交的却是一个无法转换为数值类型的参数值
    出现此问题时,你应该通过断点或打桩等方式观察提交的请求参数,并查看服务器端对请求参数的约束
    - 在Spring MVC框架中,@RequestParam默认具有“不允许为null”的约定
    - 在Spring MVC框架中,会尝试自动将请求参数转换为服务器端声明的参数类型
    - 在Spring MVC框架中,使用了Hibernate Validation验证机制后,也会对请求参数产生约束,具体约束需参考所使用的注解
    - 基于以上框架的进阶框架具有同样效果,例如添加了spring-boot-starter-web依赖项的Spring Boot工程是使用Spring MVC接收请求参数的,添加了spring-boot-starter-validation依赖项的Spring Boot工程则是使用Hibernate Validation实现的请求参数验证

  • 401:未授权,通常出现在未登录,却尝试请求必须登录才允许访问的资源时

  • 403:禁止访问,通常出现在已经登录,却不具备访问权限时,例如普通用户尝试请求管理员权限的资源时
    -出现此问题时,如果你使用了Spring Security框架,你应该检查Spring Security的配置类中的相关配置,例如白名单路径,并检查你是否开启了授权访问,如果已开启,你还应该通过断言或打桩等方式观察当前登录的用户的权限清单,并检查在请求资源上设置的权限规则

  • 404:请求的资源不存在,通常是客户端提交请求的URL错误
    - 出现此问题时,你应该检查客户端提交请求的URL与服务器端设置的接收请求参数的URL是否一致
    - 在确保客户端提交请求的URL是你预期的时,关于服务器端,你应该:
    – 如果你请求的是服务器端的某个静态资源,你应该检查此资源是否存在,在Spring Boot工程中,默认的静态资源文件夹是src/main/resources/static,并且,需要注意,如果你显式的配置了静态资源文件夹,将会覆盖此默认项
    –如果你的服务器端是通过Spring MVC框架开发的,你应该检查:
    - 控制器是否已经正常启用,你可以在控制器类中显式的添加无参数构造方法,并在其中输出任何内容,当启动项目时,你应该可以在控制台看到输出语句中的内容,如果看不到,则表示控制器没有被创建,则需要检查组件扫描配置的包、控制器类是否添加了@Controller@RestController注解,如果你使用的是Spring Boot工程,默认组件扫描的包是创建工程时指定的Group Id和Artifact Id组件的包名
    - 请求路径是由控制器类上的@RequestMapping注解(如果存在的话)和处理请求的方法上的@RequestMapping或以此为元注解的其它注解(例如@GetMapping等)组合得到的,你应该检查这2处的注解

  • 405:请求方式错误,例如服务器端要求使用POST方式提交请求,而客户端却使用GET方式提交请求
    - 出现此问题时,你应该检查客户端的请求方式,如果是直接在浏览器的地址栏中输入URL提交的请求,是GET方式的,如果是通过HTML表单或其它异步提交方式,除非显式的使用POST方式,否则都是GET方式的,另外,在服务器端,你需要检查如何配置的请求URL,例如使用@PostMapping时,则限制了客户端的请求方式必须是POST

  • 406:不可接收的,通常出现在基于Spring MVC的工程中,将服务器端的响应方式设定为响应JSON格式的正文时,如果属于此情景,你应该检查:
    - - 是否正确的添加了jackson-databind依赖项
    - -是否在Spring MVC配置类上添加了@EnableWebMvc注解

  • 500:服务器内部错误,通常是因为服务器端出现了异常且始终未显式的捕获
    - 出现此问题时,你应该检查服务器端控制台的异常信息,如果无信息,你应该检查项目中是否使用了Spring MVC统一处理异常的机制,并且在处理异常时未添加e.printStackTrace()等方式将异常信息输出

  •   		-  
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值