掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务

前端常用的通信技术

作者简介 :陈为平,携程市场部前端工程师,目前主要负责“携程运动”项目的大前端相关工作。

前段时间在忙开发携程运动项目和相应的微信小程序,其中和后端通信犹为频繁。get、post请求方法是很多前端童鞋使用最频繁的;websocket在11年盛行后方便了客户端和服务器之间传输,……and so on ,除了这些,还有很多我们不常使用的其他方式,但是在实际的业务场景中却真实需要。

本文总结了目前前端使用到的数据交换方式,阐述了业务场景中如何选择适合的方式进行数据交换( form ,xhr, fetch, SSE, webstock, postmessage, web workers等),并列举了一些示例代码, 可能存在不足的地方,欢迎大家指正。

本文用到的源代码都放在Github上,点击可直达。

关于HTTP协义基础可以参考阮一峰老师的《HTTP协议入门》一文。

前端经常使用的HTTP协议相关(1.0 / 1.1)

method

  • ·        GET ( 对应 restful api 查询资源, 用于客户端从服务端取数据 )
  • ·        POST(对应 restful api中的增加资源, 用于客户端传数据到服务端)
  • ·        PUT (对应 restful api中的更新资源)
  • ·        DELETE ( 对应 restful api中的删除资源 )
  • ·        HEAD ( 可以用于http请求的时间什么,或者判断是否存在判断文件大小等)
  • ·        OPTIONS (在前端中常用于 cors跨域验证)
  • ·        TRACE * (我这边没有用到过,欢迎补充)
  • ·        CONNECT * (我这边没有用到过,欢迎补充)


enctype

  • ·        application/x-www-form-urlencoded (默认,正常的提交方式)
  • ·        multipart/form-data(有上传文件时常用这种)
  • ·        application/json (ajax常用这种格式)
  • ·        text/xml
  • ·        text/plain


enctype示例说明( form , ajax, fetch 三种示例 )

<!DOCTYPE html>
<html lang="en">
<head>    <meta charset="UTF-8">    <title>enctype</title>    <style>        .box{border: 1px solid #ccc;padding:20px;}        .out{background: #efefef; padding:10px 20px; margin-top: 20px;}    </style>    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.2.3.min.js"></script>        <script>    $(function(){        $('#b1').on('click', function(){            $.ajax({                method: "POST",                contentType:'application/x-www-form-urlencoded;charset=UTF-8',                url: "form_action.php",                data: {username: "John", password: "Boston" }            }).done(function( msg ) {                $('#msg1').html(msg);            });        });        $('#f1').on('click', function(){            fetch("form_action.php", {                method: "POST",                credentials: 'include', //带上cookie                headers: {                    "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"                },                body: "username=John&password=Boston"            })            .then(function(response){                return response.text();            })            .then(function(msg) {                $('#msg1').html(msg);            }, function(e) {                alert("Error submitting form!");            });        });        $('#b2').on('click', function(){            var formData = new FormData(document.querySelector("#data2"));            $.ajax({                method: "POST",                processData:false, //无需让jquery正处理一下数据                contentType:false, //已经是formData就默认为 multipart/form-data                cache: false,                url: "form_action.php",                data: formData            }).done(function( msg ) {                $('#msg2').html(msg);            });        });        $('#f2').on('click', function(){            var formData = new FormData(document.querySelector("#data2"));            fetch("form_action.php", {                method: "POST",                headers: {                    "Content-Type": "multipart/form-data;charset=UTF-8"                },                body: formData            })            .then(function(response){                return response.text();            })            .then(function(msg) {                $('#msg2').html(msg);            }, function(e) {                alert("Error submitting form!");            });        });        $('#b3').on('click', function(){            $.ajax({                method: "POST",                contentType:'application/json;charset=UTF-8',                url: "form_action.php",                data: JSON.stringify({username: "John", password: "Boston" })            }).done(function( msg ) {                $('#msg3').html(msg);            });        });        $('#f3').on声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com

  • AI语音合成TTS API

    提供多种拟人音色,支持多语言及方言,并可在同一音色下输出多语言内容。系统可自适应语气,流畅处理复杂文本。

    提供多种拟人音色,支持多语言及方言,并可在同一音色下输出多语言内容。系统可自适应语气,流畅处理复杂文本。

  • Google Gemini Image API

    Nano Banana(gemini-2.5-flash-image 和 gemini-3-pro-image-preview图像模型)是图像生成与编辑的最佳选择,可集成 Nano Banana API,实现高速预览。

    Nano Banana(gemini-2.5-flash-image 和 gemini-3-pro-image-preview图像模型)是图像生成与编辑的最佳选择,可集成 Nano Banana API,实现高速预览。

  • AI视频创作

    支持通过自然语言文本智能生成高质量短视频。用户只需输入一段描述性文字,即可自动合成画面连贯、风格鲜明、配乐匹配的定制化视频内容。适用于短视频创作、广告预演、社交内容生成、游戏素材制作等场景,为开发者与创作者提供高效、灵活、富有想象力的视频生产新范式。

    支持通过自然语言文本智能生成高质量短视频。用户只需输入一段描述性文字,即可自动合成画面连贯、风格鲜明、配乐匹配的定制化视频内容。适用于短视频创作、广告预演、社交内容生成、游戏素材制作等场景,为开发者与创作者提供高效、灵活、富有想象力的视频生产新范式。

  • AI图像理解

    先进的图像理解和分析能力,它能够快速准确地解析和理解图像内容。无论是自然风景、城市建筑还是复杂的场景与活动,都能提供详细的描述和深入的分析。

    先进的图像理解和分析能力,它能够快速准确地解析和理解图像内容。无论是自然风景、城市建筑还是复杂的场景与活动,都能提供详细的描述和深入的分析。

  • AI图像编辑

    根据文本提示(prompt)和图片公网访问链接,编辑原图按照特定风格、场景和氛围感的输出新的图像。广泛应用于电商营销、广告设计、创意灵感等领域,为用户带来高效且个性化的AI图像创作体验。

    根据文本提示(prompt)和图片公网访问链接,编辑原图按照特定风格、场景和氛围感的输出新的图像。广泛应用于电商营销、广告设计、创意灵感等领域,为用户带来高效且个性化的AI图像创作体验。

0512-88869195
客服微信二维码

微信扫码,咨询客服

数 据 驱 动 未 来
Data Drives The Future