• 一次曲折的调试精力


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

    公司有部分业务采用的是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)自己太粗心,流程没有走完就开始找线上的问题了。

  • 相关阅读:
    021.day21 反射 Class类 反射常用操作
    020.day20 线程概述 多线程优缺点 线程的创建 线程常用方法 生命周期 多线程同步
    019.day19 缓冲流 对象流 标准输入输出流
    018.day18 map集合如何实现排序 File类 IO流 字节流 字符流 编码
    017.day17 Map接口 克隆 treeSet集合排重缺陷
    016.day16 HashSet TreeSet 比较器Comparable Comparator
    015.day15
    014.day14
    013.day13
    线程
  • 原文地址:https://www.cnblogs.com/odirus/p/5192678.html
Copyright © 2020-2023  润新知