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)自己太粗心,流程没有走完就开始找线上的问题了。

  • 相关阅读:
    layui timeline使用
    Java随机数使用
    Matlab信号处理工具箱函数
    高斯白噪声(white Gaussian noise,WGN)
    概率分布之间的距离度量以及python实现
    Wasserstein距离 和 Lipschitz连续
    线性分式变换(linear fractional transformation)
    算法的时间复杂度和空间复杂度-总结
    随机森林(Random Forest,简称RF)
    增强学习与马尔科夫决策过程
  • 原文地址:https://www.cnblogs.com/odirus/p/5192678.html
Copyright © 2011-2022 走看看