美文网首页
http请求中常用格式汇总

http请求中常用格式汇总

作者: 松松土_0b13 | 来源:发表于2019-08-01 15:21 被阅读0次

    现在的web开发,大部分请求都是http方式的请求。常用的格式有:xml,json,form表单,字节流

    xml

    xml请求现在用的很少,大部分的应用场景都能被json代替,可能在一些比较老的系统中才用到吧,比如java的Web Services;有些公司可能会将数据转换成xml,然后保存在本地;另外,微信的事件消息推送的是xml格式数据。

    json

    json格式的数据,体积小,灵活性好。对象和数组可以无限嵌套,特别是可以和js中的对象可以无缝链接

    //拼接 x = {"a":1}格式的字符串,可以得到js的object的对象
    eval("var x= {}");console.log(x)
    
    //这种方式最常用
    JSON.parse("{}")
    

    另外new Function也可以解析json数据

    form表单

    form表单提交的方式分为两种,x-www-form-urlencoded和multipart/form-data,后者传输的时候可以传输二进制的文件
    自从ajax兴起以后,x-www-form-urlencoded的请求方式就越来越少了,不过,还是有一些实用优势的:

    • 可以将提交请求和页面跳转统一为一个步骤
    • 可以实现文件下载,虽然a标签也可以实现下载,但是form表单支持post方式的文件下载

    multipart/form-data主要用于多媒体文件的传输,也什么好说的,网上例子很多

    字节流数据传输

    在流量很珍贵的情况下,json这种轻量级的数据格式可能也不够用了。那还有没有一个字节流量都不浪费、用最少的流量传最多数据的方法了,答案是有的。
    关系型表的数据存储逻辑就可以拿过来用,一张表包括表头的描述和表体的内容:


    • 在传输数据的时候,表头只传一次,这样就节省了很多描述语言
    [
      ["id","type_id","name","value","orderline","description"],
      [1,1,"社交","1","1",null],
      ... 
    ]
    
    • 我们可以先约定好表头格式,开发者按照约定的文档进行开发即可,比如第1位字节表示什么,第2位表示什么
    [
      [1,1,"社交","1","1",null],
      ... 
    ]
    
    • 还有更变态的一种方法就是把多余的符号全部省略,不过这种方式对数据格式的约定非常严格,技术细节不讨论了,只列个例子吧
    [
      11社交11null,
      ... 
    ]
    

    当然,最后面这种方式传输的流量是最少的,缺点就是数据格式的文档定了以后,不太容易扩展,比如我要新增一个传输字段,或者某一个传输字段可能要消耗几百个字节变长字段,相当于数据库中的varchar,这个时候,我们可以用两个字段表示这个数据,一个字段用于描述(长度,含义),一个字段是这个数据的值。
    就到此为止了。

    相关文章

      网友评论

          本文标题:http请求中常用格式汇总

          本文链接:https://www.haomeiwen.com/subject/wxbqdctx.html