V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JasonHu
V2EX  ›  职场话题

后端写的接口不区分 get 跟 post 是什么感受?

  •  
  •   JasonHu · 2019-07-10 10:29:23 +08:00 · 15690 次点击
    这是一个创建于 1999 天前的主题,其中的信息可能已经有所发展或是发生改变。

    作为一个前端切图仔而言,所有请求全部用 get 都可以跑通。包括登录

    116 条回复    2019-07-12 07:41:44 +08:00
    1  2  
    BranZuo
        101
    BranZuo  
       2019-07-11 09:59:20 +08:00
    语义上,GET 用于获取资源,POST 用于处理资源。当然用 GET 方法处理资源、POST 方法获取资源也是可以的,只能说是“合法”的,但不是“符合语义”的。
    zhuweiyou
        102
    zhuweiyou  
       2019-07-11 10:05:31 +08:00
    全 post 比较好,万一表单上传呢。
    Seney
        103
    Seney  
       2019-07-11 10:08:13 +08:00
    @Stlin 不出意外可能都是用一个模板生成的 或者会有公共处理的模块 0.0 如果限定传入参数 json 用 post 也合理
    zjsxwc
        104
    zjsxwc  
       2019-07-11 10:24:11 +08:00
    安全性重要接口 post
    请求体 size 大的接口用 post

    不重要的接口用 get



    对于 get 接口最简单恶意的攻击方式就是 img src="<你的 get 接口>"
    icy37785
        105
    icy37785  
       2019-07-11 10:32:10 +08:00 via iPhone
    咋前面一堆我感觉贴子都没看明白就开始喷的,然后还能吵起来。
    这帖子说的情况明明是后端不限制 post 还是 get 提交数据,现在是前端因为都支持所以就全 get 了,你们这里喷后端说 get 提交这问题那问题,这关后端毛事情啊。
    感觉就是后端也不知道前端会怎么提交数据,给了规范前端也嫌烦,不如全给支持了,你前端爱咋地咋地。
    总感觉现在的人阅读理解能力有问题,
    abcbuzhiming
        106
    abcbuzhiming  
       2019-07-11 12:00:20 +08:00
    @rockyou12 你提到的 w3c 标准,我随便找了个机翻:

    特别是,已经建立了这样的惯例:GET 和 HEAD 方法不应该具有采取除检索之外的动作的重要性。 这些方法应该被认为是“安全的”。 这允许用户代理以特殊方式表示其他方法,例如 POST,PUT 和 DELETE,以便使用户意识到正在请求可能不安全的操作。

    请问哪里说了和缓存有关?

    你不要转进好不好,你自己说的和缓存有关,你要说 http method 有提示用户安全性的作用,这个我承认(不过我们现实里不会用 http method 去表示安全,其实后端在接口实现上会考虑安全问题,而不是用 method 方式去提醒)。但是你自己在前面说的是缓存。

    还有,http client 会对 get 进行缓存的例子,麻烦你举出来,现代一点的 http client。我还是那句话,就算是 http client。我倾向是你们没用对,而不是人家实现错了
    Stlin
        107
    Stlin  
       2019-07-11 13:08:15 +08:00
    @Seney #103 后端是 JAVA,是不是用的一个模板我也不清楚,不过给后台的数据确实是只能 json
    rockyou12
        108
    rockyou12  
       2019-07-11 14:59:45 +08:00
    @abcbuzhiming 得了,你还要机翻,我也不和你辩了
    lscho
        109
    lscho  
       2019-07-11 15:14:04 +08:00
    @abcbuzhiming 大兄弟,你连 get 请求可能会被缓存都不知道,还说别人学艺不精,真是涨见识了。这不是常识吗?你自己去翻翻你经常浏览的网站的接口,get 请求是不是都有时间戳来防止缓存。
    passerbytiny
        110
    passerbytiny  
       2019-07-11 15:41:18 +08:00
    要么按照 HTTP/RESTful 风格,至少区分 GET、POST、PUT、PATCH、DELETE。
    要么按照万事从简风格(其实就是老版 Servlet/JSP 风格),GET、POST 全部按照 REQUEST 处理,剩下的一个都不要。

    “读用 GET,写用 POST ”、“查询用 GET,增删改用 POST ”这种只使用 GET、POST 还做区分的,有一句话能很形象的说明:一瓶不满半瓶咣当。
    abcbuzhiming
        111
    abcbuzhiming  
       2019-07-11 16:45:34 +08:00
    @rockyou12 因为我英文不够好所以我机翻,免得有人说我英文不好。你说不要机翻,行啊,你告诉我你这段哪里提到和缓存有关了
    abcbuzhiming
        112
    abcbuzhiming  
       2019-07-11 16:49:05 +08:00
    @lscho 对,我还真不知道 get 请求有可能会被缓存,我只知道 w3c 标准实现里,控制缓存由 http header cache-control 里,从没听说过根据 http method 类型来决定缓存的,默认 get 所以就缓存的标准和 http client 实现我还真没见过,你们不是比我见识多吗?让你们给出 get 请求就缓存的标准和 http client 实现。你们就是不给。让我说啥?
    unco020511
        113
    unco020511  
       2019-07-11 17:02:05 +08:00
    坚持 restful 规范,如果后端觉得无所谓,那只能说明他们做的不对,你自己坚持对的就行了
    takahashibigs
        114
    takahashibigs  
       2019-07-11 17:37:42 +08:00
    有看工作的同学可以来了解下
    base 杭州城西 [光年实验室] 招一名高级 Web 前端开发
    需要熟悉前端自动化和工程化、webpack,有 Node.js 和小程序开发经验的
    能够精通使用 React 框架和独立开发组件的朋友可以联系我( Gnlab666 )

    技术氛围很好,团队平均代码年龄超 10 年,办公电脑都是顶级配置
    15-25* 14 薪+股权
    rockyou12
        115
    rockyou12  
       2019-07-11 21:39:52 +08:00
    @abcbuzhiming 你也别杠了,多码几年代码再回来看这个贴吧。最好把英文也提高下,看下协议原文怎么定义的
    JaguarJack
        116
    JaguarJack  
       2019-07-12 07:41:44 +08:00 via iPhone
    restful 还是很好的 无脑 get post 简直坑
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2842 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:45 · PVG 20:45 · LAX 04:45 · JFK 07:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.