zoukankan      html  css  js  c++  java
  • 一次曲折的调试精力

    标签:与标准不符会有哪些后果

    公司有部分业务采用的是PHP,框架采用的是国人开发的ThinkPHP,由于业务简单,以前是直接暴露Apache给用户,但是现在考虑到性能以及其他的一些因素,所以直接在前面加上nginx,这样既不会影响老业务,也不需要重新捣鼓原来的配置。

    问题发生在一个APP页面访问时,直接把这串URL放到浏览器里面返回的状态码是200,但是通过APP访问的时候返回的状态码是404。我就纳闷了,同样的网络怎么会有不同的响应呢。于是打开Fiddler,手机连接到Fiddler上,返回状态码的确是404。更加疑惑,后来才发现,我在浏览器里面测试的这个页面是需要通过header参数进行认证的,浏览器里面没法直接设置header,所以返回的页面上的内容一直是未认证,但是状态码是200。当使用APP访问的时候,APP携带了header进行访问,所以第一步顺利通过,在进行第二步验证header的时候,由于PHP没有安装memcache扩展,所以出现了直接出现报错页面,但该报错页面的状态码是404(用Fiddler只是看了下状态码,并没有看返回页面的具体内容,太粗心了,导致一直以为是找不到页面)。

    从此事件看出,

    (1)现在提供给APP的接口都是返回json内容,即时出现认证未通过,HTTP status code 依然是200,只是通过返回的内容里的状态码来状态码,是否可应考虑在后期对业务状态码和错误状态进行结合呢

    (2)框架不应该在错误页面返回404状态码,很容易让人误解。

    (3)自己太粗心,流程没有走完就开始找线上的问题了。

  • 相关阅读:
    3、Linux知识点/dos基础命令
    2、进制转换
    1、软件测试基础####################################################
    50.React跳转路由传参3种方法和区别
    49.react中使用less
    48.vue-awesome-swipe使用
    47、安装node-sass后运行报错
    46、VUE + JS 面试宝典
    45、导航钩子函数中使用next()和next('指定路径')的区别:
    44、css实现水波纹效果
  • 原文地址:https://www.cnblogs.com/odirus/p/5192678.html
Copyright © 2011-2022 走看看