数据交互

一、http协议

  • 基本特点

    • 1、无状态的协议
    • 2、连接过程:发送连接请求、响应接受、发送请求
    • 3、消息分两块:头、体
  • http和https

二、form

  • 基本属性

    • action——提交到哪儿
    • method——GET/POST/PUT/DELETE/HEAD
      • GET:获取数据、把数据放在url里面传输、数据量很小、有缓存
      • POST:发送数据、把数据放在body里面传输、数据量大、不会缓存
      • PUT:发送数据
      • DELETE:删除数据
      • HEAD:让服务器之发送头回来就行(不需要内容)
    • name:提交数据的名字
    • enctype
      • application/x-www-form-urlencoded:默认值,适合发送小数据,结构 名字=值&名字=值&...
      • multipart/form-data:文件上传、大数据,结构 分块
      • text/plain

三、ajax

  • 原理 XMLHttpRequest,不兼容IE6

    • 1.创建对象
    • 2.连接
    • 3.发送
    • 4.接受
        function ajax (){
      2 // 1.创建对象
      3 let xhr = new XMLHttpRequest();
      4 // 2.连接
      5 /*
      6 * open(method,url,async):规定请求的类型、URL 以及是否异步处理请求
      7 * method:请求的类型;GET 或 POST
      8 * url:文件在服务器上的位置
      9 a * sync:true(异步)或 false(同步)
      10 */
      11 xhr.open('GET','./data/1.txt',true);
      12 // 3.发送
      13 /*
      14 * send(string):将请求发送到服务器
      15 * string:仅用于 POST 请求
      16 *
      17 * setRequestHeader(header,value):向请求添加 HTTP 头
      18 * header: 规定头的名称
      19 * value: 规定头的值
      20 */
      21 xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
      22 xhr.send(null)
      23 // 4.接受
      24 /*
      25 * responseText:获得字符串形式的响应数据
      26 * responseXML:获得 XML 形式的响应数据
      27 *
      28 * onreadystatechange:存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数
      29 *
      30 * readyState:存有 XMLHttpRequest 的状态。从 0 到 4 发生变
      31 * 0: 请求未初始化
      32 * 1: 服务器连接已建立
      33 * 2: 请求已接收
      34 * 3: 请求处理中
      35 * 4: 请求已完成,且响应已就绪
      36 *
      37 * status
      38 * 200: "OK"
      39 * 404: 未找到页面
      40 */
      41 xhr.onreadystatechange = function () {
      42 if (xhr.readyState == 4) {
      43 if (xhr.status>=200 && xhr.status<300 || xhr.status == 304) {
      44 alert(xhr.responseText)
      45 }else{
      46 alert('error:'+xhr.status)
      47 }
      48 }
      49 }
      50 }

      原生ajax

  • 优点

    • 用户体验好
    • 性能高
  • 安全

    • 前台没有安全性,后台才有问题(注入)
    • xss——跨站脚本攻击
  • ajax 2.0

    • FormData
    • 文件上传、上传进度监控
    • CORS跨域

四、jsonp

  • 原理

五、websocket

web全栈架构师[笔记] — 02 数据交互的更多相关文章

  1. web全栈架构师[笔记] — 03 html5新特性

    HTML5新特性 一.geolocation PC端 精度比较低 通过IP库定位 移动端 通过GPS window.navigator.geolocation 单次 getCurrentPositio ...

  2. web全栈架构师[笔记] — 01 ECMAScript6新特性

    ES6新特性 一.变量 var:重复定义不报错:没有块级作用域:不能限制修改 let:变量,不能重复定义,有块级作用域 const:常量,不能重复定义,有块级作用域 二.函数/参数 箭头函数——简写: ...

  3. 2019最新WEB全栈架构师第八期视频教程

    下载链接:https://www.yinxiangit.com/117.html

  4. 22期老男孩Ptython全栈架构师视频教程

    老男孩Ptython全栈架构师视频教程 Python最新整理完整版22期视频教程 超60G课程容量<ignore_js_op> <ignore_js_op> <ignor ...

  5. 添物零基础到大型全栈架构师 Java实战及解析(实战篇)- 概述

    ​ 实战篇是在基础之上,进一步提升的内容.通过实战篇可以深入理解Java相关框架和库的使用,能够独立开发小模块,或者按照架构师的指导进行代码编写和完善. 主要讲解核心框架和库的使用和使用场景介绍.通过 ...

  6. Kubernetes全栈架构师(基本概念)--学习笔记

    目录 为什么要用Kubernetes? K8s控制节点-Master概念 K8s计算节点-Node概念 什么是Pod? 为什么要引入Pod? 创建一个Pod 零宕机发布应用必备知识:Pod三种探针 零 ...

  7. Kubernetes全栈架构师(Kubeadm高可用安装k8s集群)--学习笔记

    目录 k8s高可用架构解析 Kubeadm基本环境配置 Kubeadm系统及内核升级 Kubeadm基本组件安装 Kubeadm高可用组件安装 Kubeadm集群初始化 高可用Master及Token ...

  8. Kubernetes全栈架构师(资源调度上)--学习笔记

    目录 Replication Controller和ReplicaSet 无状态服务Deployment概念 Deployment的创建 Deployment的更新 Deployment的回滚 Dep ...

  9. Kubernetes全栈架构师(二进制高可用安装k8s集群部署篇)--学习笔记

    目录 二进制高可用基本配置 二进制系统和内核升级 二进制基本组件安装 二进制生成证书详解 二进制高可用及etcd配置 二进制K8s组件配置 二进制使用Bootstrapping自动颁发证书 二进制No ...

随机推荐

  1. Javascript高级编程学习笔记(12)—— 引用类型(1)Object类型

    前面的文章中我们知道JS中的值分为两种类型 基础类型的值和引用类型的值 基础类型的值我已经大概介绍了一下,今天开始后面几天我会为大家介绍一下引用类型的值 Object类型 对象是引用类型的值的实例,在 ...

  2. Android开发工程师文集-1 小时学会Widget小组件开发

    前言 大家好,给大家带来Android开发工程师文集-1 小时学会Widget小组件开发的概述,希望你们喜欢 学会用Widget (小组件) Widget小组件很方便,很快捷,可以个性化,自己定制,相 ...

  3. 基于vue的颜色选择器vue-color-picker

    项目中有用到颜色选择器的童鞋们可以看过来了 关于color-picker的jquery的插件是有蛮多,不过vue组件没有吧,反正我没有找到, 虽然element-ui里面有这个,但是你愿意为了一个小功 ...

  4. Linux下安装配置与使用MySQL数据库

    Linux下安装配置与使用MySQL数据库 在Linux下安装做开发时往往少不了要使用到MySQL数据库,下面就Linux系统为例讲解一下,如何安装MySQL数据库,如何启用/停.止MySQL服务,如 ...

  5. 机器学习基石笔记:05 Training versus Testing

    train:A根据给定训练集D在H中选出g,使得Ein(g)约等于0: test:g在整个输入空间X上的表现要约等于在训练集D上的表现,使得Eout(g)约等于Ein(g). 如果|H|小,更易保证t ...

  6. javascript的hashCode实现

    hashCode = function(str){ var hash = 0; if (str.length == 0) return hash; for (i = 0; i < str.len ...

  7. zookeeper集群操作【这里只说明简单的操作步骤,zk的相关参数、说明请参考官方文档】

      本文版权归 远方的风lyh和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作.        [这里是在一台机器上搭建的 zk伪集群] 1.从官网下载下载zk http://apa ...

  8. 细说spring事务配置属性

    一.spring事务配置 1.spring配置 在配置数据源的下方配置 <!-- 事务配置 --> <bean id="transactionManager" c ...

  9. Spring Boot + Spring Cloud 构建微服务系统(三):服务消费和负载(Feign)

    Spring Cloud Feign Spring Cloud Feign是一套基于Netflix Feign实现的声明式服务调用客户端.它使得编写Web服务客户端变得更加简单.我们只需要通过创建接口 ...

  10. ProxySQL 配置详解及读写分离(+GTID)等功能说明 (完整篇)

    ProxySQL是灵活强大的MySQL代理层, 是一个能实实在在用在生产环境的MySQL中间件,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行 cache,支持动态加载配 ...