前端面试计网、HTTP协议,操作系统(自留,持续更新)

参考:
https://juejin.cn/post/6844903590058786824
https://space.bilibili.com/327247876
https://blog.csdn.net/qq_38128179
https://www.bilibili.com/video/BV18f4y1H7Zu
https://blog.csdn.net/weixin_45070175/article/details/118559272
https://www.jianshu.com/p/26879146d865

一、计网

1.ajax,fetch,axios是什么,优缺点?

1)ajax
ajax指异步的javascript和XML,是一个技术统称,特点就是局部刷新页面、不需要重载整个页面。ajax通过js操作浏览器提供的XMLHttpRequest构造函数表示网页请求,以此来进行网络通信。
ajax内部有这么几个需要注意点函数和参数:

open(请求方法,url,是否异步):定义请求
send(请求体):发送请求
readyState:相当于客户端的状态码
readyState属性值的变化会触发**onreadystatechange()**回调函数,因此使用onreadystatechange监视readyState属性的变化。
0:未调用open方法
1:调用了open方法,未调用send方法
2:发送了请求还未收到响应
3:收到部分响应
4:响应都接收完毕

function ajax(url){
   
    //1.由于js自身没有网络沟通能力,因此需要创建浏览器提供的XMLHttpRequest
    let xhr = new XMLHttpRequest();
    //2.接着定义请求,用open()方法填写请求类型,URL和是否异步
    xhr.open('get',url,true);
    //3.用onreadystatechange()监控readyState属性值变化
    xhr.onreadystatechange = () =>{
   
        if(xhr.readyState===4){
   //如果readyState等于4就表示收到所有响应了
            if(xhr.status===200){
   //收到所有响应不代表成功接收文件,可能文件不存在了,因此要判断状态码
                console.info("响应结果",xhr.response);
            }
        }
    }
    //4.用send()方法发送请求
    xhr.send(null);
}

2)fetch
fetch是基于es6提出的promise的发送网络请求的API,因为使用了promise,因此链式调用,不会产生回调地狱。

fetch默认发送请求方法是GET方法:

function fetchmethod(url){
   
    fetch(url)
        .then(response=>{
   //收到服务器传来的响应
            if(response.ok){
   
                //如果响应状态为ok成功,则将响应转换为js可以操作的json对象
                response.json();
            }
            throw new Error("错误提示");//失败则抛出异常
    	})
    	.then(data => console.log(data));//得到想要的信息
}

fetch如果发送POST请求,就需要设置第二个参数(一个配置对象):

function fetchmethod(url){
   
    fetch(url,{
   
        method:'POST',
        //请求体提交前要转换成服务器能识别的格式,把js对象转为json
        body: JSON.stringify({
   key:value}),
        headers:{
   
            //定义http请求头部的类型,让服务器能够更好识别内容
            'Content-Type':'application/json'
        }
    })
        .then(response=>{
   
            if(response.ok){
   
                res
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值