• 复习前面的(数据相关)


    什么时候请求数据:

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

    怎么请求? 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

  • 相关阅读:
    wu
    Win10编译cuda版OpenCV
    Windows编译OpenCV可能下载失败的文件
    20220419Servlet和HTTP请求协议
    20220418Tomcat
    比 Navicat 还要好用、功能更强大的工具!
    Java 8的18个常用日期处理
    Oracle 执行存储过程五种方法(带参数& 不带参数)
    帆软设置浏览内容宽度为屏幕宽度
    帆软参数为空查询全部
  • 原文地址:https://www.cnblogs.com/MrZhujl/p/10156413.html
Copyright © 2020-2023  润新知