请教关于 http 状态码的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hamalz
V2EX    问与答

请教关于 http 状态码的问题

  •  
  •   hamalz 2017-06-10 23:46:09 +08:00 2210 次点击
    这是一个创建于 3118 天前的主题,其中的信息可能已经有所发展或是发生改变。

    访问一个 api 来验证数据,比如说 email 是否已注册过或者是验证码之类的,验证失败了返回 400 bad request 还是 403 forbidden ?不太理解两个的区别

    9 条回复    2017-06-11 10:35:06 +08:00
    crab
        1
    crab  
       2017-06-10 23:47:22 +08:00
    返回 200 更好吧,然后响应内容标志是否注册这样。
    qiayue
        2
    qiayue  
    PRO
       2017-06-10 23:49:12 +08:00
    400 说的是请求错误,在 api 这个场景中一般是缺少参数
    403 一般表示权限不对,比如未登录,或者已登录但你请求的是别人的信息
    noe132
        3
    noe132  
       2017-06-10 23:50:51 +08:00
    2xx 是请求成功
    3xx 是资源已被转移
    4xx 是请求失败
    5xx 是服务器错误

    要返回查询结果,肯定是请求成功啊。
    hamalz
        4
    hamalz  
    OP
       2017-06-10 23:59:43 +08:00
    @crab
    @noe132
    意思是用 200 表示请求本身是成功的,然后通过响应内容来判断验证结果?我想的是直接通过状态码来判断验证结果。
    flynaj
        5
    flynaj  
       2017-06-11 00:03:22 +08:00 via Android
    API 肯定是 200,看看其他人写的
    wly19960911
        6
    wly19960911  
       2017-06-11 00:10:57 +08:00 via Android
    不要根据状态码好,你是用 400 作为错误,假如测试真的出现 400 错误不要调试半天?

    还是返回数据判断最好,以后也好改
    hamalz
        7
    hamalz  
    OP
       2017-06-11 00:15:27 +08:00
    @crab
    @flynaj
    @wly19960911
    我明白了,感谢回答
    imn1
        8
    imn1  
       2017-06-11 00:15:48 +08:00
    首先,这个状态码完全可以在后台程序设定,并不能完全确认
    400 一般是判断来自客户端的请求不合理
    401 一般是客户端身份判断不正确,例如登录没通过
    403 多是服务器端主动拒绝
    oh
        9
    oh  
       2017-06-11 10:35:06 +08:00 via iPhone
    如果想用 http 状态码做判断,记得上 https,不然有些地区运营商会把非 200 劫持,返回一个 200 状态的 html 页面
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1183 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 23:45 PVG 07:45 LAX 15:45 JFK 18:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86