zoukankan      html  css  js  c++  java
  • 复习前面的(数据相关)

    什么时候请求数据:

    >以前我们的数据都是写死的,在真实的开发中,需要通过用户的操作给用户想要的数据

    怎么请求? 1. 2. 3.

    1.要么用那5步 (原生的ajax,面试会用

       let xhr = new XMLHttpRequest
      /* get方式请求,其实就是url的方式请求
      协议+域名+端口+?+查询信息+hash...
      这里的url是拼接完整的 */
      xxx.onclick = function(){
        xhr.open('get',url,true);
        xhr.onreadystatechange = function(){
          xhr.readyState //能够监听到5步,每一步分成0~4(分别代表什么意思?)
          //0:请求未初始化 
                      //1:服务器连接已建立
          //2:请求已接收
          //3:请求处理中
          //4:请求已完成,且响应已就绪(http状态码)
          };
          //如果是post要设置请求头
        //xhr.set
    RequestHeader('Content-Type','application/x-www-form-urlencoded')
        xhr.send();//发送
      }
    
       //第二种写法
      xxx.onclick = function(){
        xhr.open('get',url,true);
        xhr.onload = function(){
          xhr.readyState
        };
        xhr.send();
      }         

    http常见的状态码:200/404/403...

    101:切换协议 (比如:http->websocket)

    200:客户端成功接收到服务器端的返回数据

    301:永久重定向,资源(网页等)被永久转到其它URL

    302:临时重定向

    304:加载缓存

    307:临时重定向,针对的是http传输协议

    400:访问参数错误

    401:没有访问权限

    403:服务器接收到请求,但是拒绝处理。(一般见于文件或目录的权限设置)

    404:请求的地址(资源)不存在

    413:客户端请求的文件超过服务端的最大承载容量

    500:未知的服务端错误

    503:服务器超过最大的负荷

    以太网:分为两个部分:1.标头:谁接收、谁发送、数据类型等。 2.数据 (head data)

    MAC:就是接收和发送的网卡地址

    广播:在发送MAC地址的时候,会向本网络的所有计算机发送数据,这些计算机接收到信息之后,会判断MAC地址和自己是否匹配,匹配就接收,不匹配就丢弃。

    网络地址:它的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络,这套地址就叫做“网络地址”,简称“网站”。

         (确定计算机所在的子网络,在通过MAC地址找到具体的某台计算机)

    IP:IPv4->我们用分成四段的十进制数表示IP地址,从0.0.0.0 ~ 255.255.255.255

      分为两个部分:1.代表网络 2.代表主机

      Ip数据包也分为“标头”和“数据”两部分(head data)

      IP数据包整体作为以太网的数据部分,进行发送。(head head data)

    所谓“子网掩码”就是代表子网络特征(只要在同一个网络下,子网掩码一定一样)

    ARP协议:当发送数据的时候,2台计算机在同一网络下(能获取到IP地址,不能获取MAC地址),而ARP协议,可以通过IP地址找到MAC地址

    端口(port):“传输层”的功能,就是建立“端口到端口”的通信。相比之下,“网络层”的功能是建立“主机到主机”的通信。只要确定主机和端口,我们就能实现程序之间的交流。

    UDP(协议)端口:有IP、发出端口和接收端口、MAC + 数据体(head head head data)

    TCP协议:简单理解是有(确认接收)机制的UDP协议,可以知道对方已接收数据包,如果没收到就再次发送。

         TCP协议能够确保数据不会遗失。它的缺点是过程复杂、实现困难、消耗较多的资源。

    post请求过程:1.浏览器请求tcp连接。2.服务器答应进行tcp连接。3.浏览器确认,并发送post请求头。4.服务器返回100 Continue 响应。5.浏览器发送数据。6.服务器返回200 OK 响应

    get请求过程:1.浏览器请求tcp连接。2.服务器答应进行tcp连接。3.浏览器确认,并发送post请求头和数据。4.服务器返回200 OK响应。

    2.fatch   原生提供的 ajax 的一种请求方式(未来会用

    (1)get

      fetch(url)  // url => /get?xx=yy&ff==ee

      .then(d=>d.json())

      .then(d=>{d就是我们请求回来的数据})

    (2)post

      fetch(/post,{

        method : ' post ' ,

        body:new URLSearchParams({key:val}).toString()      //也可以这样写: body:'key=val&key2=val2'

        headers:{ 'Content-Type','application/x-www-form-urlencoded' }

      } , )

      .then(d=>d.json())

      .then(d=>{d就是我们请求回来的数据})

    3.第三方封装的 ajax 请求方式:   一. jquery的$.ajax       二.axios (爱可信,工作会用

    jquery:

    $.ajax({ })

    axios:先引一个文件

    axios.get(‘/get?user=xxxx’)

    .then(e=>{e就是我们请求回来的数据});

    axios.post('/post',{user:'xxx'})

    .then(e=>{e就是我们请求回来的数据});

    .catch(e=>{e请求失败的内容})

    axios.all([get(),post()])  //两个([可以有N个])都请求成功之后再来判断。只要有一个请求失败,那么整个都失败,此时就进 .catch

    .then(axios.spread(function(a , b){

    }))


    中间件:

     https://www.cnblogs.com/mq0036/p/5243312.html 

     
     
     
     

    2018-12-21

  • 相关阅读:
    Linux中使用mysqldump对MySQL数据库进行定时备份
    Linux备份数据库,mysqldump命令实例详解
    laravel 怎么获取public路径
    laravel 返回值
    [Deep-Learning-with-Python]机器学习基础
    [Deep-Learning-with-Python]基于Keras的房价预测
    [Deep-Learning-with-Python]基于Kears的Reuters新闻分类
    基于Keras的imdb数据集电影评论情感二分类
    [Deep-Learning-with-Python]神经网络入手学习[上]
    [Deep-Learning-with-Python]神经网络的数学基础
  • 原文地址:https://www.cnblogs.com/MrZhujl/p/10156413.html
Copyright © 2011-2022 走看看