精华内容
下载资源
问答
  • 他传的格式
    千次阅读
    2020-02-28 19:02:59

    首先我们先来说一下,为什么后端返回的是时间戳,而不直接返回一个具体的时间给我们:因为时间的格式有很多种,不同的页面可能对不同的时间显示需求不同。比如05-8-8 上午9:17 2005-8-8 9:17:42 2005年8月8日 上午09时17分42秒2005年8月8日 09时17分42秒 GMT+08:00传字符串的话前端怎么知道你传的是哪种格式的,他没办法解析你的字符串。不如直接传时间戳再由前端转化成他想要的格式。至于前端传给后台,其实正常来说也应该传时间戳的,只是你传字符串也被Springmvc转化成Date格式了的,要是你直接用Servlet来写,传的字符串肯定是不会被转化成Date的。
    所以,后端给前端页面返回时间戳是为好让前端页面更灵活的展示时间。

    定义:Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中(比如Linux系统),也在许多其他操作系统中被广泛采用。

    //时间格式化
    export function dateFormat(fmt, date) {
        let ret;
        const opt = {
            "y+": date.getFullYear().toString(),        // 年
            "M+": (date.getMonth() + 1).toString(),     // 月
            "d+": date.getDate().toString(),            // 日
            "h+": date.getHours().toString(),           // 时
            "m+": date.getMinutes().toString(),         // 分
            "s+": date.getSeconds().toString()          // 秒
            // 有其他格式化字符需求可以继续添加,必须转化成字符串
        };
        for (let k in opt) {
            ret = new RegExp("(" + k + ")").exec(fmt);
            if (ret) {
                fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
            };
        };
        return fmt;
    }
    

    使用方法,假如后端传过来一个时间戳: time = 1514345477;

    //1、首先将时间戳转换成 date时间对象
    let date = new(time*1000); 
    此时打印 date 就是中国标准时间: Wed Dec 27 2017 11:31:17 GMT+0800 (中国标准时间)
    //因为时间戳是以秒计算的,date时间是以毫秒计算的,所以这里要乘以1000
    
    2let create_time = dateFormat(‘yy-MM-dd hh:mm:ss’,date)
       console.log(create_time)  // 打印 2017-12-27 11:31:17
    

    然后最后打印的就是:2017-12-27 11:31:17 这样的时间格式

    更多相关内容
  • jQuery向后台数据的时候,我们会发现会自动转化成查询字符串,不能真正传入一个json。而且用jquery对表单序列化的时候,返回的格式是一个数组,还需要作进一步转换。其实只要我们在ajax方法中配置一些东西就可以...
  • 常见视频编解码格式

    千次阅读 2019-07-25 15:39:06
    常见视频编解码格式 1视频文件类别 常言道:物以类聚,人以群分。视频文件也不例外,细细算起来,视频文件可以分成两大类:其一是影像文件,比如说常见的VCD便是一例。其二是流式视频文件,这是随着国际互联网的...
    常见视频编解码格式
    

    1视频文件类别
    常言道:物以类聚,人以群分。视频文件也不例外,细细算起来,视频文件可以分成两大类:其一是影像文件,比如说常见的VCD便是一例。其二是流式视频文件,这是随着国际互联网的发展而诞生的后起视频之秀,比如说在线实况转播,就是构架在流式视频技术之上的。
    1.1影像格式
      日常生活中接触较多的VCD、多媒体CD光盘中的动画……这些都是影像文件。影像文件不仅包含了大量图像信息,同时还容纳大量音频信息。所以,影像文件的“身材”往往不可小觑。

    1. AVI格式
    2. MOV格式
    3. MPEG/MPG/DAT格式
      1.2流式视频格式
        目前,很多视频数据要求通过Internet来进行实时传输,前面我们曾提及到,视频文件的体积往往比较大,而现有的网络带宽却往往比较“狭窄”,千军万马要过独木桥,其结果当然可想而知。客观因素限制了视频数据的实时传输和实时播放,于是一种新型的流式视频(Streaming Video)格式应运而生了。这种流式视频采用一种“边传边播”的方法,即先从服务器上下载一部分视频文件,形成视频流缓冲区后实时播放,同时继续下载,为接下来的播放做好准备。这种“边传边播”的方法避免了用户必须等待整个文件从Internet上全部下载完毕才能观看的缺点。到目前为止,Internet上使用较多的流式视频格式主要是以下三种:
    4. RM(Real Media)格式
        RM格式是RealNetworks公司开发的一种新型流式视频文件格式,它麾下共有三员大将:RealAudio、RealVideo和RealFlash。RealAudio用来传输接近CD音质的音频数据,RealVideo用来传输连续视频数据,而RealFlash则是RealNetworks公司与Macromedia公司新近合作推出的一种高压缩比的动画格式。RealMedia可以根据网络数据传输速率的不同制定了不同的压缩比率,从而实现在低速率的广域网上进行影像数据的实时传送和实时播放。这里我们主要介绍RealVideo,它除了可以以普通的视频文件形式播放之外,还可以与RealServer服务器相配合,首先由RealEncoder负责将已有的视频文件实时转换成RealMedia格式,RealServer则负责广播RealMedia视频文件。在数据传输过程中可以边下载边由RealPlayer播放视频影像,而不必像大多数视频文件那样,必须先下载然后才能播放。目前,Internet上已有不少网站利用RealVideo技术进行重大事件的实况转播。
    5. MOV文件格式(QuickTime)
        MOV也可以作为一种流文件格式。QuickTime能够通过Internet提供实时的数字化信息流、工作流与文件回放功能,为了适应这一网络多媒体应用,QuickTime为多种流行的浏览器软件提供了相应的QuickTime Viewer插件(Plug-in),能够在浏览器中实现多媒体数据的实时回放。该插件的“快速启动(Fast Start)”功能,可以令用户几乎能在发出请求的同时便收看到第一帧视频画面,而且,该插件可以在视频数据下载的同时就开始播放视频图像,用户不需要等到全部下载完毕就能进行欣赏。此外,QuickTime还提供了自动速率选择功能,当用户通过调用插件来播放QuickTime多媒体文件时,能够自己选择不同的连接速率下载并播放影像,当然,不同的速率对应着不同的图像质量。此外,QuickTime还采用了一种称为QuickTime VR的虚拟现实(VR,Virtual Reality)技术,用户只需通过鼠标或键盘,就可以观察某一地点周围360度的景象,或者从空间任何角度观察某一物体。
    6. ASF(Advanced Streaming Format)格式
        Microsoft公司推出的Advanced Streaming Format (ASF,高级流格式),也是一个在Internet上实时传播多媒体的技术标准,Microsoft公司的野心很大,希图用ASF取代QuickTime之类的技术标准。ASF的主要优点包括:本地或网络回放、可扩充的媒体类型、部件下载、以及扩展性等。ASF应用的主要部件是NetShow服务器和NetShow播放器。有独立的编码器将媒体信息编译成ASF流,然后发送到NetShow服务器,再由NetShow服务器将ASF流发送给网络上的所有NetShow播放器,从而实现单路广播或多路广播。这和Real系统的实时转播则是大同小异。
      2常见的视频的编码及封装格式
      2.1常见视频编码格式
      常见的编码格式有H.264、H.263、MPEG-1、MPEG-2、MPEG、4、Sorenson Spark、VC-1、JPEG、RV、DivX、On2 True Motion VP6。对于高清视频来说,主流的编码技术目前主要有 MPEG-2、DivX、XVID、H264/AVC、VC-1、RMVB 和 WMV-HD 等等。其中,H264/AVC、VC-1、MPEG-2 是蓝光(Blu-ray Disc)所选择的编码格式,也是目前最流行的高清视频编码格式。另外就是高清视频的封装格式,封装格式和编码格式是互相区别的,许多人会把它们混淆。
      下图为常见编码格式的logo:
      在这里插入图片描述
      图1.1常见编码格式logo
    7. H264/X264/AVC 编码格式
      绝大多数视听玩家对于 H264 编码都不会感到陌生,H264 编码的身世显赫,是 ITU-T(国际电信联盟视频编码专家组)与 ISO/IEC(国际标准化组织动态图像专家组)合作组成的 JVT(联合视频组)推动的新一代数字视频编码标准,也称为 MPEG-4/AVC 编码。H264 编码依托雄厚的背景,在技术上独树一帜,大幅领先于其它编码算法。
      X264 编码,是 H264 编码的一个开源分支,它符合 H264 标准,其功能在于编码,而不作为解码器使用,X264 编码最大的特点在于注重实用,它在不明显降低编码性能的前提下,努力降低编码的计算复杂度,X264 对于 H264 编码中的一些复杂编码特性做了折衷处理,其压缩视频体积小于XVID(MPEG-4)编码视频,以小体积、高画质的特点得到了广泛认可。
    8. H.263编码格式
      H.263是国际电联ITU-T的一个标准草案,是为低码流通信而设计的。但实际上这个标准可用在很宽的码流范围,而非只用于低码流应用,它在许多应用中可以认为被用于取代H.261。H.263的编码算法与H.261一样,但做了一些改善和改变,以提高性能和纠错能力。
      1998年IUT-T推出的H.263+是H.263建议的第2版,它提供了12个新的可协商模式和其他特征,进一步提高了压缩编码性能。如H.263只有5种视频源格式,H.263+允许使用更多的源格式,图像时钟频率也有多种选择,拓宽应用范围;另一重要的改进是可扩展性,它允许多显示率、多速率及多分辨率,增强了视频信息在易误码、易丢包异构网络环境下的传输。另外,H.263+对H.263中的不受限运动矢量模式进行了改进,加上12个新增的可选模式,不仅提高了编码性能,而且增强了应用的灵活性。H.263已经基本上取代了H.261
    9. MPEG-1 编码格式
      MPEG-1是MPEG组织制定的第一个视频和音频有损压缩标准。视频压缩算法于1990年定义完成。1992年底,MPEG-1正式被批准成为国际标准。MPEG-1是为CD光碟介质定制的的视频和音频压缩格式。一张70分钟的CD光碟传输速率大约在1.4Mbps。而MPEG-1采用了块方式的运动补偿、离散馀弦变换(DCT)、量化等技术,并为1.2Mbps传输速率进行了优化。MPEG-1随后被Video CD采用作为核心技术。MPEG-1的输出质量大约和传统录像机VCR,信号质量相当,这也许是Video CD在发达国家未获成功的原因。
    10. MPEG-2 编码格式
      MPEG-2 编码标准是由 MPEG(Moving Picture Experts Group)工作组发布的视频与音频压缩国际标准。MPEG-2 编码于 1994 年发布,常用于广播信号(卫星电视、有线电视)的视频和音频编码,经过后期不断修改,不仅成为 DVD 的核心技术,还应用于 HDTV 高清电视传输。
    11. MPEG-4 编码格式
      MPEG4于1998 年11 月公布,原预计1999 年1月投入使用的国际标准MPEG4不仅是针对一定比特率下的视频、音频编码,更加注重多媒体系统的交互性和灵活性。MPEG-4标准主要应用于视像电话(Video Phone),视像电子邮件(Video Email)和电子新闻(Electronic News)等,其传输速率要求较低,在4800-64000bits/sec之间,分辨率为176X144。MPEG-4利用很窄的带宽,通过帧重建技术,压缩和传输数据,以求以最少的数据获得最佳的图像质量。
    12. Sorensen Spark编码格式
      Sorenson编解码器可以指三个专有的视频编解码器:Sorenson视频,Sorenson视频3或Sorenson Spark。 Sorenson视频也被称为Sorenson视频编解码器,Sorenson视频量化或SVQ。Sorenson Spark也被称为H.263或FLV1Sorenson(而且有时误为Flash视频(FLV),这是以Adobe Flash容器格式名称命名)。 这两种编解码器的设计由Sorenson媒体公司。Sorenson视频是用在苹果的QuickTime和Sorenson Spark在用在Adobe Flash容器中。
    13. VC-1 编码格式
      WMV(Windows Media Video)作为经久不衰的一种视频编码,一直在不断改进,2003 年,微软基于 WMV 第九版(WMV9)编码技术,正式提出了 VC-1 编码标准,并于 2006 年正式成为国际标准。VC-1 编码作为较晚推出的高清编码算法,自然吸收了 MPEG-2 与 H264 编码的优点,其压缩比介于 MPEG2 和 H264 之间,编解码复杂性仅有 H264 的一半,即压缩时间更短、解码计算更小,在微软的大力推动下,VC-1 编码已经得到了 BD 蓝光光盘、电影及电视学会(SMPTE)的支持。
      近几年来,为了更好的推广 WMV9/VC-1 编码标准,微软不遗余力的建立了 WMV-HD 高清资源站点,大量发布采用 VC-1 编码压制的 720P、1080P 宣传片及演示片(WMV-HD 视频格式) ,试图营造声势,吸引用户关注。不过,中庸的技术(与 H264 相比无明显编码优势)、封闭的平台(限于 Windows 系统)、后发的劣势(2006 年通过成为国际标准)仍然给微软 VC-1 编码的应用前景带来了较大的不确定性。
    14. JPEG编码格式
      JPEG 是Joint Photographic Experts Group(联合图像专家小组))的缩写。JPEG的压缩方式通常是破坏性资料压缩(lossy compression),意即在压缩过程中图像的品质会遭受到可见的破坏,有一种以JPEG为基础的标准Progressive JPEG是采用无失真的压缩方式,但Progressive JPEG并没有受到广泛的支援。
    15. RV编码格式
      RealVideo格式文件包括后缀名为RA、RM、RAM、RMVB的四种视频格式。 Real Video是一种高压缩比的视频格式,可以使用任何一种常用于多媒体及Web上制作视频的方法来创建RealVideo文件。例如Premiere、 VideoShop以及AfterEffects等,对于文件的播放可用realplayer和暴风影音播放。
    16. DivX编码格式
      DivX格式,这是由MPEG-4衍生出的另一种视频编码(压缩)标准,也即我们通常所说的DVDrip格式,它采用了MPEG4的压缩算法同时又综合了MPEG-4与MP3各方面的技术,说白了就是使用DivX压缩技术对DVD盘片的视频图像进行高质量压缩,同时用MP3或AC3对音频进行压缩,然后再将视频与音频合成并加上相应的外挂字幕文件而形成的视频格式。其画质直逼DVD并且体积只有DVD的数分之一。这种编码对机器的要求也不高,所以DivX视频编码技术可以说是一种对DVD造成威胁最大的新生视频压缩格式,号称DVD杀手或DVD终结者。
    17. On2 TrueMotion VP6编码格式
      On2 TrueMotion VP6是主要的移动视频标准,他采用了Adobe Flash Lite™ 3的一些标准,数以百计的网络门户,用户自己制作的内容,以及社交网络普遍采用基于Flash的VP6格式。
      2.2视频的封装格式
        封装格式其实是一个“容器”,它不同于编码格式,封装就相当于捆绑打包,将已经编码好的视频文件和音轨文件打包在一起,并按照一定规则建立排序和索引,便于播放器或播放软件来索引播放。常见的封装格式有 MKV、AVI、MOV、TS、PS 等等,高清媒体文件的后缀名(扩展文件名)一般都是媒体的封装格式。

    (1)MOV 格式:MOV 多见于 Apple QuickTime 网站上的电影预告片。MOV 类似于 RMVB,过于封闭自守,民间制作组没有人会用这个不方便的形式。
      (2)AVI 格式:AVI 封装是微软在上世纪 90 年代初创立的封装标准,是当时为对抗 QuickTime 的 MOV 格式而推出的,因为当时还没有流式播放需要,AVI 的将索引布置在打包文件的尾部,这就使得AVI封装不能做到流式播放(流媒体)。AVI 封装只能支持有限的几种视频音频编码形式,且AVI不能支持音频的 VBR 动态比特率编码。
      (3)TS 格式:TS(Transport Stream)是一种比较先进的封装形式,蓝光原盘中,就采用了 TS 封装。TS 封装支持几乎所有编码的高清视频和音轨文件。PS(Program Stream)封装的技术基本和 TS 相同,但 PS 封装和 AVI 一样,都不是流媒体,不能够支持流式播放,PS 封装使用在原先的 HDDVD 中。在高清标准下,MPEG-2 编码的视频文件主要采用 TS 封装格式。
      (4)MKV 格式:MKV(Matroska)是一种新兴的多媒体封装格式,可以将各类视频编码、16 条或以上不同格式的音频和语言不同的字幕封装在一个文件内,它具有开放源代码、音视频编码丰富、网络亲和性好等优势,已经得到众多视频压制组和玩家的支持,正逐渐成为高清视频的主流视频格式。H264 编码与 X264 编码目前大多采用 MKV 封装格式。
    3视频的播放组件及调用流程
      视频文件的解码过程如下依次需要用到的组件有“分离器”、“解码器”、“渲染器”,它们统称为“滤镜”。
    3.1分离器(Splitter)
      要正确地播放多媒体文件,播放器首先要正确地调用分离器,把视频流和(或)音频流正确地分离出来,然后交给解码器进行解码,这就是分离器的使命。上文中说到有不少的封装格式,每一种封装格式都必须有相对应一种分离器,才能正确的把视频和音频分离出来以供解码器解码。
    常用的分离器有:
     Gabest MPEG Splitter(Media Player Classic 作者编写的分离器)、
     KMP Splitter(KMPlayer 原配的分离器)
     Haili Media Splitter
    这三种分离器能够支持较多的封装格式,其它的分离器还有
     Moonlight-Elecard MPEG2 Demultiplexer(月光分离器)、
     nVIDIA Transport Demux(nVIDIA 公司的分离器,配合 PureVideo 使用)、
     CyberLink Demux(PowerDVD 软件中的分离器)
    3.2解码器(Decoder)
      解码器在整个视频的播放中占据了最主要的位置,它的作用是对由分离器分离出来的音频流和视频流分别进行解码。解码器又分为视频解码器和音频解码器。
    常见的视频解码器有:

    1. MPEG-2 视频解码器
       InterVideo Video Decoder(WinDVD 的解码器)
       CyberLink DTV Video/SP Filter
       CyberLink Video/SP Filter(PowerDVD 的解码器)
       Moonlight-Elecard MPEG2 Video Decoder
       nVIDIA Video Decoder(nVIDIA PureVideo 的解码器)
       Sonic CinemasterVideo、Gabest Video Decoder

    2. H264/X264/AVC 视频解码器
       CyberLink H.264/AVC Decoder(PowerDVD 的解码器)、
       CoreAVC DirectShow Video Decoder
       Moonlight H264 Video Decoder
       ffdshow MPEG-4 Video Decoder

    3. VC-1 视频解码器
      CyberLink VC-1 Deocder(PowerDVD 的解码器)、Media Player Classic Video Decoder、WMVideo Decoder DMO(微软的解码器)等等。
      常见的音频解码器有:
       CyberLink Audio Decoder(PowerDVD 的解码器)
       AC3 Filter
       InterVideo Audio Decoder
       nVIDIA Audio Decoder
      3.3渲染器(Renderer)
        渲染器与解码器一样,分为视频渲染器和音频渲染器,解码后的视频数据经过视频渲染器的渲染后呈现到显示设备上,解码后的音频经过音频渲染器的渲染后从声卡输出。渲染在视频播放的过程中是很重要的,因为它会影响到视频最终的效果,不同的渲染器有不同的技术特性,对电脑的配置(主要是 CPU 和显卡)的要求也不一样。
      视频渲染器主要有以下几种:

    4. 旧式视频渲染器(Video Renderer):
      这种是最原始的渲染器,它接收到来自解码器解码后的数据流,在显示设备上显示。这种渲染器基本上不能调用到显卡硬件特性,全靠 CPU 来完成渲染任务。

    5. 覆盖合成器(Overlay Mixer):
      覆盖合成器能够将若干路视频流合并输出到显示设备上,并且它能够很好地调用显卡硬件的拉伸,颜色空间变换等硬件功能,以减少对 CPU 资源的占用率。视频覆盖的画面质量事实上取决于显卡硬件。通常在使用覆盖合成器的时候无法直接对正在播放的视频截图。

    6. VMR 渲染器(Video Mixing Renderer):
      VMR 对覆盖合成器进行了改进,它是基于 DirectX 的视频渲染器,能够支持 16 路的视频流混合。VMR 根据 DirectX 版本的不同,可以分为 VMR7 和 VMR9,其中 VMR7 基于 DirectDraw7(2D),而 VMR9 基于 Direct3D9(3D),VMR9 可以支持视频特效(Video Effects)和视频变换(Video Transitions)。VMR 根据渲染模式的不同又分为“窗口化”(Windowed)、“无窗口”(Windowless)、“未渲染”(Renderless)模式。

    7. EVR 增强型视频渲染器(Enhanced Video Renderer)
      微软在 Windows Vista 系统就开始引入的新视频渲染器,当然也包含在新的操作系统 Windows 7 中。它与 VMR 最大的区别就是能够支持 DXVA 2.0。

      要将 4:2:0 YUV 转换为 4:4:4 YUV,按照前面讲述的两个方法进行操作即可。首先将 4:2:0 图像转换为 4:2:2,然后将 4:2:2 图像转换为 4:4:4。您还可以切换两个上转换过程的顺序,因为操作顺序对于结果的视觉质量不会产生真正的影响。

    展开全文
  • 3D建模的通用文件格式

    千次阅读 2020-04-24 17:06:38
    FBX OBJ

    FBX
    在这里插入图片描述

    OBJ
    在这里插入图片描述

    展开全文
  • http 协议基本格式

    千次阅读 多人点赞 2022-03-30 18:18:16
    http 协议基本格式 文章目录http 协议基本格式一、http 是什么?二、fiddler使用2.1 使用2.2 抓包原理2.3 抓包结果2.3.1 HTTP请求2.3.2 http响应2.3.3 协议格式总结三、request(请求)3.1 URL基本格式3.1.1 URL ...

    http 协议基本格式

    一、http 是什么?

    ​ http 协议是前后端的一个桥梁,想要完成一个网站光写完前端页面还不行,还得需要后端的加持,客户端和服务器之间,是基于网络来进行通信的,而他们两个通信就需要通过http协议来连接,HTTP协议就是常见,也常用的网络通信协议

    • HTTP 协议有个重要的特点就是:一发一收的模式:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bEAMvTtI-1648635483067)(https://cdn.jsdelivr.net/gh/power152/Image/202203281750052.png)]

    1、客户端:主动发起网络请求的一端;
    2、服务器:被动接受网络请求的一端;
    3、请求:客户端给服务器发的数据;
    4、响应:服务器给客户端返回的数据;
    

    网络编程中,除了一发一收的模式之外,还有其他模式:

    1、多发一收:上传大文件;

    2、已发多收:看直播;

    3、多发到收:串流(steam link,moonlight…)

    ​ 在应用层上面的协议是有很多种的,such as:DNS,POP,SSH…,但是http协议是非常广泛的应用层协议,这个帖子主要是介绍http协议的基本格式。

    二、fiddler使用

    ​ 要想看到http的基本格式可以借助Chrome浏览器开发者工具自带的功能来看,浏览器和服务器的交互数据,但是这种始终是不完善的。

    image-20220327161011520

    浏览器自带的功能数据并不是很完善所以我们需要用到第三方工具 fiddler 这个工具来抓包,fiddler很好安装直接在官网下载即可。

    下载地址: https://www.telerik.com/fiddler/

    image-20220327162406383

    在官网选择经典模式(因为不要钱😁😁😁),安装下载即可。

    安装好之后先选择tools然后options点击https在找图中内容全选,再安装提示,安装一个证书,由于我已经安装过了就没有弹出证书,同常情况下,跟着提示走会安装一个证书就可以用了。我这里只是简略的说明下安装步骤,详细的大家可以去网上搜索,网上很多关于fiddler的详细安装教程,我这里就不赘述了,下面主要说明下fiddler的使用方法。

    image-20220327162550442

    2.1 使用

    1、首先刚进 fiddler左侧会有东西,把他全部清除掉,再从浏览器地址栏搜索你想要的地址。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d74IaJ40-1648635483069)(https://cdn.jsdelivr.net/gh/power152/Image/202203281749213.png)]

    2、此时左侧会有很多选项,选项中字体有一些为蓝色的可能就是我们要抓的包,抓包这种东西得多抓几次才会抓准确,下来自己练习多玩玩就会装包了

    image-20220327164146968

    3、请求与响应

    image-20220327175415120

    2.2 抓包原理

    ​ Fiddler之所以能够获得到这些HTTP请求的详细情况,主要是因为Fiddler相当于一个“代理‘的作用。也可以想象成一个代购,人在中国但是你想买国外的东西,这是后就需要代购了,代购直接在国外买东西,然后给你寄过来,这时候代购的这个人对于你买的东西是一清二楚。Fiddler就相当于中间的代购,浏览器给服务请求发送的数据服务器响应返回的数据,就会被Fiddler给都获取。

    image-20220328154145543

    2.3 抓包结果

    2.3.1 HTTP请求

    POST https://edu.bitejiuyeke.com/tms/login HTTP/1.1
    Host: edu.bitejiuyeke.com
    Connection: keep-alive
    Content-Length: 117
    sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="99", "Microsoft Edge";v="99"
    sec-ch-ua-mobile: ?0
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.52
    Access-Control-Allow-Methods: PUT,POST,GET,DELETE,OPTIONS
    Content-Type: application/json;charset=UTF-8
    Access-Control-Allow-Origin: *
    Accept: application/json, text/plain, */*
    Access-Control-Allow-Headers: Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild
    sec-ch-ua-platform: "Windows"
    Origin: https://edu.bitejiuyeke.com
    Sec-Fetch-Site: same-origin
    Sec-Fetch-Mode: cors
    Sec-Fetch-Dest: empty
    Referer: https://edu.bitejiuyeke.com/login
    Accept-Encoding: gzip, deflate, br
    Accept-Language: zh-CN,zh;q=0.9
    
    {"username":"132424328182","password":"Zo/BAcYpgdfsgsMg9yPf/nM2g==","uuid":"e04184dbda5d45ad9991b2a8b1dbd639","status":0}
    

    1、首行

    POST https://edu.bitejiuyeke.com/tms/login HTTP/1.1
    方法+URL+版本号
    

    2、协议头(header)

    ​ 从 Host 开始,遇到空行结束

    ​ 协议头里面是“键值对”结构,每个键值对占一行,每个键和值之间使用 冒号空格 来分割。

    3、空行

    ​ 空行是协议头的结束标记。

    4、协议正文(body)

    ​ 空行后面的部分,有的请求是有的body的,有的没有,我这上面的百度就没有。body是允许为空字符串的,正文的话大部分是有多种格式,其中就有json格式(这上面我抓的包不是),不知道json格式,可以看看,我之前写的 json基本用法

    2.3.2 http响应

    image-20220327183021323

    1、首行:

    HTTP/1.1 200 OK
    版本号+状态码+状态码解释
    

    2、协议头(Header)

    ​ 协议头里面是“键值对”结构,每个键值对占一行,每个键和值之间使用 冒号空格 来分割。

    3、空行

    ​ 空行是协议头的结束标记。

    4、响应正文

    ​ 空行后面的内容都是Body. Body允许为空字符串. 如果Body存在, 则在Header中会有
    一个Content-Length属性来标识Body的长度; 如果服务器返回了一个html页面, 那么html页
    面内容就是在body中 。

    响应的正文都是显示在浏览器上面的,常见的显示正文格式就是html,因为许多网站的html都是压缩过的,所以要点检上面的解压缩,才不会乱码,因为压缩过后,网络传输的数据量就变少了,就更节省网络带宽,

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gSEFQ46L-1648635483072)(https://cdn.jsdelivr.net/gh/power152/Image/202203281749926.png)]

    对于服务器来说,硬件资源有四个部分

    1、带宽资源 (也是成本最高的)。

    2、CPU

    3、内存资源

    4、硬盘资源

    2.3.3 协议格式总结

    一张图搞定;

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DZ83P6Rn-1648635483073)(../image/image-20220327185129146.png)]

    • HTTP 的协议报文格式:

    请求(request):

    1、首行:方法 + URL + 版本号

    2、请求头(header):键值对结构,每个键值对占一行,键和值之间使用 冒号空格 分割

    3、空行:header 的结束标志

    4、正文。(可有可无)

    响应(response):

    1、首行:版本号+状态码+状态码的描述

    2、响应头:键值对结构,每个键值对占一行,键和值之间使用 冒号空格 分割

    3、空行:header 的结束标志

    4、正文。(可有可无)

    三、request(请求)

    3.1 URL基本格式

    ​ 我们再浏览器中地址栏,就是输入的URL,就是平常说的网址。URL(Uniform Resource Locator) 统一资源定位符,互联网上面每个文件都有一个唯一的URL,URL也表示文件的位置以及浏览器改怎么处理。

    • 一个完整的URL

    image-20220328161955717

    1、协议名:这个不多说
    2、登录信息:原来有,现在基本上不会显示了,都是通过抓包来看用户账户
    3、域名:也称之为ip地址,ip地址是描述一个主机在网络上的具体位置,域名是可以转换为ip地址的(DNS),由于ip地址太难记了,就出现了域名
    4、端口号:具体区分主机上面的某一个程序,一台主机太多的程序了,通过端口号可以找的对应的程序,平时地址栏没有端口号,可能浏览器自动加上默认的端口号(HTTPS:443;HTTP:80)存在特殊情况也可以手动加入端口号;
    5、文件路径:这个很好理解,就是利用端口号找到程序再利用文件路径精确定位某个文件
    6、查询字符串:一般从问号开始就是查询字符串query String,query String是客服端给服务器的参数,这个参数是一个键值对的结构
    		  > 以 & 作为键值对分隔符;
    		  > 以 = 作为键和值之间的分隔符;
    		  >	这里面的键值对,都是程序员自定义的,所以只有该程序员才看得懂这个参数;
    		  > 这里的参数很重要,是给前后端交互提供很多的“可能性”;
    

    在实际使用中不会出现完整的URL,经常会省略一部分

    1、省略域名:继续访问当前网站的其他资源

    2、省略端口号:浏览器自动填充默认端口号(80,443)

    3、省略带层次的路径:表示访问/目录

    4、省略query string:这是可选的,客户端可以给浏览器传递参数,也可以不传递。

    3.1.1 URL encode

    ​ 对于:、?/.…或者中文符号这些符号在URL中都当做特殊的意义理解,不只是单纯的``?、/,#或者中文符号 ,此时我们就要进行url encode 转义,这里的转义是直接取当前字符/字符串的内存的十六进制表示形式,然后在每个字节的前面加上%`。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RsMavWR5-1648635483074)(https://cdn.jsdelivr.net/gh/power152/Image/202203291445694.png)]

    我们也不必背转义字符,直接使用urlencode转义工具就行了,urlencode工具

    四、HTTP中的“方法”

    ​ HTTP中的方法就是请求报文首行中的一部分,

    image-20220329150224923

    这些不同的方法代表着不同的含义,来表达不同的“语义”,但是我们最常用也必须掌握的就是 GET,POST这两个方法,也是面试官极大可能被问到的连个方法,其他的方法面试也会问但是说几个就行了,但是重点掌握GETPOST这两个方法。

    4.1 GET

    可以说是大部分时候都会出发 GET 方法的请求。

    1、在浏览器地中中输入URL,回车就是一个 GET请求,(类似收藏夹中的链接也是一样的效果。

    2、HTML 中的一些标签;

    ​ > img 中的 src属性,写一个URL,也会构造出一个 GET 请求

    ​ > link/script/ a 标签中href属性,也是构造出 GET 请求

    3、使用 javascript ,在浏览器前端构造出 GET 请求(ajax)

    4、各种编程语言只要能访问网络就是构造出 GET 请求。

    GET 请求的特点:

    1、首行的部分是 GET 方法

    2、URL里面的query String可以为空,也可以不为空

    3、GET 请求里面有多组 header 这样的 键值对

    4、GET 请求里面body一般都是空的,(也有,但是少见)

    image-20220329154531717

    注意:关于 GET 网上的一些说法是错误的,网上很多都在说GET请求会有长度限制,这得看 RFC 2616这份文档是怎么写的了,这份文档,里面约定了很多和网络协议相关的标准。对于长度这一块原文档是怎么说的:Hypertext Transfer Protocol --HTTP/1.1," does not specify any requirement for URL length 。原文档没有对URL的长度有任何的限制。真正限制可能是浏览器的实现和HTTP服务器端的实现。不同浏览器最大长度是不同的,服务器可以对长度进行配置。

    4.2 POST

    ​ POST 常见的场景就是登录,输入用户名和密码之后, 点击登录就会产生post请求。

    POST请求的特点:

    1、首行得一个部分就是POST;

    2、URL 后面没有query string,(一般是没有,个别会有)

    3、POST 里面有多组 header 这样的 键值对

    4、body一般不为空

    ​ > 关于body的数据格式,是有header中的 Content-Type来描述

    ​ > body的具体长度,有请求header 中的Content-Length 来描述的

    image-20220329165401550

    这里可以看到body部分可以显示你的登录账号和密码,所以说互联网上的信息是不安全的,随便抓个包,就能就能把密码都抓出来,但是我们也不要太惊慌,像我们支付宝密码这些都是加密过的,并且这个加密还是动态相对来说还是很安全。

    4.3 经典面试题 GET 和 POST 的区别

    正确答案:GET 和 POST 是没有本质区别的。(他们俩用的场景是可以互相代替的)

    但是在具体使用上还是会存在细节的区别的:

    1、GET 习惯上,把客户端的数据通过query String来传输(body部分是空),POST 习惯上,把客户端的数据通过body来传输(query String是空的)

    注意:这里的习惯上并不是必须!!!

    2、语义区别,GET 习惯上,用于从服务器获取数据;POST习惯上,是客户端给服务器提交数据

    注意:这里的习惯上并不是必须!!!

    3、一般情况下,程序员会把 GET 请求的处理,实现成“幂等”的,POST 请求的处理,不要求实现“幂等”

    注意:

    幂等的含义:请求被重复的发送不会产生影响。such as一个网站加载时间过长你反复刷新,给服务器反复发送请求是没有影响的,但是如果对一个东西进行下单,下多次单就会产生很多订单,买一份就够了,不需要买多份就会给顾客产生影响。

    4、GET 请求可以被缓存,可以被浏览器保存到收藏夹里面,POST不行。

    对于这个问题,网上也有多种说法,也是不准确的。

    1、POST 比 GET 更安全 ×;

    ​ > 登录的时候如果使用 GET 进行登录,就会把username和password显示在地址栏中不安全,但是 POST就会把username和password放到body中会比 GET 更安全。

    • 一般这种说法都是错误的,POST已抓包也能抓到username和password,故安不安全取决于加密算法的强度

    2、传输的数据量:POST 传输的数据量比 GET 更多,原因 GET 的URL有上限 ×;

    • RFC 标准明确说明,不对URL进行长度限制。

    3、GET 只能传输文本数据。 ×

    ​ > POST可以传输 文本和二进制数据

    • GET完全可以传输文本和二进制数据,只需要对二进制数据 urlencode 即可;GET 也可以把数据放入body中。

    五、认识请求”报头“

    5.1 Host

    Host: www.sogou.com
    

    Host 表示该请求对应的服务器地址,地址里面可以是ip可以是域名,也可以手动指定端口号,但是域名是可以在URL中显示的,有时候URL中显示的域名和Host的域名不太一样,这是怎么回事???

    • 因为网站存在一种程序叫做“代理”,“代理”需要翻外网,翻外网的域名就和Host 里面的域名就不一样了。

    5.2 Content-Length

    表示的是 body 的长度,长度的单位是字节

    5.3 Content-Type

    表示的是 body 的格式。

    注意:如果请求有body(POST),此时就会在header中带上Content-Length和Content-Type这两个参数。如果请求中没有 body (GET),此时这两个参数就不会出现在header中了。

    1、Content-Type 中的常见取值

    application/x-www-form-urlencoded: 
    

    此时body就会使用类似于query String的格式进行组织

    multipart/form-data
    

    使用HTML上传文件的时候的格式。

    application/json
    

    这个格式就非常的流行了,是一种json格式 ,不知道json格式的看这个链接,json基本用法。这里简单说明一下在花括号里面以多种键值对的方式组织,键值对之间采用“,”分割,键和值之间使用“:”分割,里面的字符串都是用双引号引起来;就像下面这个样子。

    {"username":"123456789","password":"xxxx","code":"jw7l","uuid":"d110a05ccde64b16
    a861fa2bddfdcd15"}
    

    5.4 User-Agent

    简称 UA。

    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.55
    

    这是请求中常见的header,User-Agent里面保存的是当前浏览器的类型/版本,以及操作系统的类型/版本。

    ​ 在早些年UA可以识别当前浏览器类型/版本,就可以对对应的浏览器响应更丰富的页面,支持js交互的页面,在当时不是所有的浏览器都能达到网页丰富的效果,多以当版本不达标就响应一个静态页面。但是现在大多数浏览器都可以实现JS的交互。

    ​ 所以UA 现在的作用就是区分pc端还是移动端。

    5.5 Referer

    ​ 这个是表示页面是从哪里来的,并且这个header不一定存在,如果直接在地址栏里面输入URL或者点击浏览器的收藏夹中的链接,此时Referer是空,就是没有这个header。

    Referer: http://tpshop-test.itheima.net/Home/user/login.html
    

    这个就是从tpshop中这个网站,跳转的登录页面的。

    5.6 Cookie ☆

    ​ Cookie机制存在的目的,主要是为了能够在浏览器这一段,保存一些程序员的自定义数据。

    image-20220330164041263

    Cookie也像键值对的结构,键值对之间用“;”分割,键和值之间用“=”分割。

    Cookie里面保存的键值对都是程序员自定义的,想定义啥就定义啥,当然你粒粒面的含义也只有网站开发者才知道。

    question:

    1、能不能把要存的数据保存在客户端浏览器所在的主机硬盘上(存个文件)??

    ​ > 不能,因为浏览器为了保证安全性,禁止网页中的代码访问主机的硬盘(无法在JS上写文件),那么这就让前端失去了持久化存储能力。为了解决这个缺陷,就产生出了Cookie这个机制,Cookie机制按照键值对的方式存储,来代替直接访问文件,而Cookie是浏览器管理的(本质是保存在硬盘上)会持久化存在。

    故Cookie就是浏览器提供的一个让程序员在客户端这边持久保存的数据的一种机制!!!至于存的是什么,由程序员来定义。

    总结:

    1、Cookie是什么?

    ​ > Cookie是浏览器提供的一种让程序员在本地存储数据的能力。

    2、Cookie里面存的是啥?

    ​ > Cookie里面存的是键值对的格式数据,键值对用“;”分割,键和值之间用“,”分割。

    3、Cookie从哪里来?程序员如何在Cookie里面存东西??

    ​ > 在浏览器中的URL位置左边用一个锁,点击这个锁就可以看到浏览器中的Cookie,每个Cookie还不一样,百度有一组百度的Cookie,搜狗有一组搜狗的Cookie…

    ​ > 浏览器里面存的Cookie都是从服务器的响应“报头”里面的 set-cookie 字段中来的,每个 set-cookie 字段里面都包含一个Cookie 这样的键值对,浏览器拿到响应之后就会把 set-cookie中的内容保存到本地,而 set-cookie 就是程序员自己在服务器中构造填写的。

    image-20220330171720618

    4、Cookie要到哪儿去?(谁来使用Cookie)

    Cookie的一个流程:

    image-20220330174351937

    最常用的应用就是保持客服端的登录状态;

    image-20220330174503347

    这里插一句嘴,在做自动化测试中,通常会遇到登录出现验证码的情况,这个验证码是随机改变的,为了方便自动化测试,测试功能的完整性,就可以使用Cookie来绕过验证码实现自动登录。

    到了2022年,Cookie不是唯一浏览器本地存储的机制,浏览器现在还提供了其他的本地存储的机制

    1、LocalStorage

    2、indexDB

    Cookie的缺陷:每次请求,都要把该域名下的所有的Cookie通过HTTP请求传给服务器,就注定Cookie的存储容量是有限的 ,因为在服务器中,带宽资源 成本很高。

    相比之下,新的存储机制就没有这个问题。

    六、状态码

    ​ 属于HTTP的响应内容,表示这次的请求结果是如何的。

    五大类别:
    1、1XX	Hold on 等会继续
    2、2XX	Here you are 成功访问
    3、3XX	Go away 重定向
    4、4XX	You fucked up 服务器崩了
    5、5XX	I fucked up 客服端的问题
    

    6.1 200 OK

    ok 是状态码的描述,就是一个或者多个简单的单词,表示状态码的意思。

    HTTP/1.1 200 OK
    

    6.2 404

    404 Net Found
    

    客服端尝试请求的资源,在服务器上不存在

    6.3 403

    403 Forbidden
    

    访问被拒绝(没有权限的表现)

    6.4 405

    405 Method Not Allowed
    

    当前http方法,服务器不支持

    6.5 500

    500 Internal Server Error
    

    服务器代码出现了崩溃/异常

    6.6 504

    504 Gateway Timeout
    

    当服务器负载比较大的时候, 服务器处理单条请求的时候消耗的时间就会很长, 就可能会导致出现超时的情况

    6.7 302

    302 Move temporarily
    

    重定向


    image-20220330181647503

    http协议这篇帖子就先写到这里,后面会把https的帖子写完。❤🧡💛💚💙💜🤎🖤🤍💟,收藏关注呗,你们支持就是我写博客最大的动力!!!!

    展开全文
  • VUE 点击上传图片传参,json格式转From Data格式
  • 【转】Photoshop保存格式介绍大全

    千次阅读 2021-04-21 13:40:30
    PSD格式:PSD是Photoshop默认的文件格式可以保留文档中的所有图层、蒙蔽、通道、路径、未栅格化的文字、图层样式等。通常情况下,我们都是将文件保存为PSD格式,以后可以对其修改。PSD是除大型文档格式(PSB)...
  • 目录前言一、new Date()?1. new Date() 是什么?2. 怎么用?...但是现在我们需要在前端展示出一个方便用户查看的格式,这里我们讲解的是:2022-01-27 00:00:00(年月日时分秒)格式 一、new Date()?
  • 那么当然有人问了,我转个格式上去看你怎么判断,的确没法判断,但是大哥,你转了格式的文件还能用么,我的本质逻辑就是获取有用文件的正确格式,所以逻辑并不违背。言归正传,以下这部分代码用于 依据十六进制...
  • 常见各种编码格式

    千次阅读 2019-10-07 14:00:43
    一.ANSI 这里,我将ANSI作为一个大项。根据我自己的理解,ANSI并不是一种具体的编码,而是一种字符代码。比如:ASCII、GB2312、GBK、GB18030等都属于ANSI的范畴。... ASCII,的全称为American S...
  • ajax数据和图片(base64格式)

    万次阅读 2016-07-24 22:48:14
    讲了一下ajax的用法(原生js版),以及如何在前端获取图片,以base64的形式用ajax给后台,和后台解析图片保存。 感觉自己写的还是挺通俗易懂的~
  • 但是,有那么一丢丢的bug,不知道你知道不? /** * 2.3F经过格式化,竟然变成2.99啦。what the fuck . * float类型的时候,值是2.3,但是一经变成Double,值就变成2.99999啦。 * 这个format的参数是d...
  • 三、格式化字符串漏洞 原文:Exploiting Format String Vulnerabilities 作者:scut@team-teso.net 译者:飞龙 日期:2001.9.1 版本:v1.2 格式化字符串漏洞的通常分类是“通道问题”。如果二类不同的...
  • 而且是跨语言的数据格式,目前绝大多数编程语言均支持XML。 2、XML实例 XML究竟怎么用?是什么样子的?我们来举一个简单的例子吧!A公司要和B公司业务对接(A公司要获取B公司的用户基本信息),B公司提供...
  • FastDfs大文件分片上传和断点续

    千次阅读 2021-04-19 22:39:57
    其实之前在大文件分片上传与极速秒实现文章中我写过一次关于分片上传和断点续, 但其实那个时候对断点续的理解及其有限. 最近在项目里需要对大文件进行分片上传, 所以开始重新研究. 不过我觉得对于这个我只想讲...
  • 此时查请求头和请求数据格式如下: 、 在使用jquery的ajax时我们并没有设置的请求中 Content-Type,说明它默认为form表单的数据类型 但是请求的表单数据已经变为了键值对类型数据,并不是axios中的那种json格式的...
  • Vue.js时间格式化处理

    千次阅读 2021-08-30 16:50:21
    Vue.js时间格式化处理 1.首先在vue项目中安装moment npm install moment --save 2. 定义时间格式化全局过滤器,在dateUtil.js中或组件中导入该组件 import moment from 'moment' dateUtil.js代码: ...
  • moment格式化时间为TZ的格式

    千次阅读 2021-06-02 01:06:41
    最近后端那边不知道又出现什么幺蛾子了,非要我带TZ的时间格式给他们,秒为00。我说中午饭你安排,说行。 捣鼓了下。这事也不难,看官方文档的时候细心点问题很快解决。 直接一个format将时间转为了想要的格式...
  • java后端统一处理接收日期格式转换

    千次阅读 2021-01-11 17:06:29
    后端统一处理接收日期格式转换 问题现象 前端传回参数日期格式为yyyy-MM-dd HH:mm:ss,后端默认解析格式是yyyy/MM/dd HH:mm:ss,请求时回报错参数格式错误。 解决方法1: 接收参数的实体类中属性字段上添加@...
  • 我们要实现下图所示,报错后返回json格式的信息,相当于把默认的html格式的异常变成json格式的。 但是我们继承了HTTPException就会出现下图的结果: 首先异常分为两种: 完全可以预知的异常 已知异常 可以...
  • 程序要求:用扫描器获取输入的时间(年月日时分),这个时间的格式是常用的格式,然后格式化这个时间,把格式化的时间输出到控制台,可以在控制台重复输入时间.格式化的时间参考企业微信聊天记录的展示时间.用...
  • m3u8格式转成MP4以及可播放格式

    万次阅读 2019-04-26 16:29:08
    今天看数学视频的时候想把视屏分享给小伙伴,但是当我将视屏发给我的小伙伴的时候发现原本200多MB的视屏只有几K大小,这有点像我们小时候从电脑上拷贝游戏都只是拷贝一个快捷方式一样。 为什么的时候只有...
  • python格式化字符串的三种方法(%,format,f-string)

    万次阅读 多人点赞 2019-07-18 23:25:51
    DAY 7....%格式化字符串是python最早的,也是能兼容所有版本的一种字符串格式化方法,在一些python早期的库中,建议使用%格式化方式,会把字符串中的格式化符按顺序后面参数替换,格式是 "xxxxxx ...
  • 前言:一般在使用API接口传输数据时通常会使用三种数据交换格式:JSON、XML、YAML 下面详细介绍一下这些数据交换格式: 一、JSON (JavaScript Object Notation) JSON (JavaScript Object Notation, JS 对象简谱) ...
  • 前台json数组,后台接收处理

    万次阅读 2019-06-24 23:10:49
    这里前台过来的json数据格式是这样的 [{ "type": 0, "stem": "123", "deletionFlag": 1, "choice": ["A"], "postId": "123", "solution":["A", "B"], "score": 12.12, "materialIds": ...
  • QGroundControl连接数(3DR)失败

    千次阅读 2019-09-25 14:44:00
    QGroundControl连接数(3DR)失败不要着急,理清思路,一步一步排除故障我遇到的问题 不要着急,理清思路,一步一步排除故障 先简要叙述一下博主的开发环境。软件部分是Ubuntu16.04.4 LTS+QGroundControl Stable ...
  • 比如上面的joindate对应的pojo是Date,本来input框里的值是 Thu Dec 30 00:00:00 CST 1999 ,到后台用Date接收,但是显然格式不对,于是Date合成出了错,然后坑爹的就来了,因为这个特殊的属性反射失败,Mvc层就将...
  • 图片上传涉及到的blob格式问题

    千次阅读 2020-08-19 11:25:17
    Blob 表示的不一定是JavaScript原生格式的数据。File接口基于Blob,继承了 blob 的功能并将其扩展使其支持用户系统上的文件。 问题描述 使用vue-cropper插件进行图片切割头像,将切割后的头像转为blob文件上传,与...
  • 常见音频编码格式解析

    千次阅读 2019-11-15 10:11:46
    常见音频编码格式解析 常见音频编码格式解析 MP3编码格式 1MP3概述 2MPEG音频压缩基础 3MPEG Layer3编解码的...
  • 目录 前言 一、new Date()? 1. new Date() 是什么? 2. 怎么用?...二、格式化工具函数 ...但是现在我们需要在前端展示出一个方便用户查看的格式,这里我们讲解的是:2022-01-27 00:00:00(年月日时分秒)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 137,442
精华内容 54,976
关键字:

他传的格式

友情链接: KeyBoardDLL.rar