网络和浏览器

简介: 网络和浏览器

1. OSI网络七层模型


  • 物理层


  • 数据链路层


  • 网络层


  • 传输层


  • 会话层


  • 表示层


  • 应用层


2. http常见状态码


  • 200 请求成功


  • 301 永久重定向


  • 302 临时重定向


  • 403 没权限


  • 404 服务器没有找到资源


  • 500 服务器错误


3. get和post的区别


  • get获取数据,post提交数据


  • get参数有长度限制,最长2048字节,post无限制


  • get明文传输,post放在请求体上


4. 浏览器的时间传输机制


  • 时间传输机制冒泡和捕获分别有微软和网景公司提出,为了解决页面事件流问题


  • 捕获阶段,目标阶段,冒泡阶段


  • 捕获


<div id="div1">
  <div id="div2">
    <div id="div3">
    click
    </div>
  </div>
</div>
<script>
  const divOne = document.getElementById('div1')
  const divTwo = document.getElementById('div2')
  const divThree = document.getElementById('div3')
  divOne.addEventListener('click', () => {
  console.log('divOne')
  },true)
  divTwo.addEventListener('click', () => {
  console.log('divTwo')
  },true)
  divThree.addEventListener('click', () => {
  console.log('divThree')
  },true)
</script>
// divOne
// divTwo
// divThree


  • 冒泡


<div id="div1">
  <div id="div2">
    <div id="div3">
    click
    </div>
  </div>
</div>
<script>
  const divOne = document.getElementById('div1')
  const divTwo = document.getElementById('div2')
  const divThree = document.getElementById('div3')
  divOne.addEventListener('click', () => {
  console.log('divOne')
  },false)
  divTwo.addEventListener('click', () => {
  console.log('divTwo')
  },false)
  divThree.addEventListener('click', () => {
  console.log('divThree')
  },false)
</script>
// divThree
// divTwo
// divOne


5. localStorage和sessionStorage


  • 相同点:


  • localStorage和sessionStorage同属于web存储的范畴


  • 用于存储客户端的本地数据


  • 不同点:


  • localStorage除非被清理,否则一致存在


  • sessionStorage页面关闭就清理


  • 他们存储大小都为5M


6. 浏览器事件循环机制


  • 宏任务和微任务


  • 宏任务:script代码段、setTimeout、setInterval、setImmediate、I/O、UI render


  • 微任务:process.nextTick、Promise、Async/Await、Mutaton Observer


  • 循环机制:执行宏任务,然后执行该宏任务产生的微任务,若微任务在执行过程中产生了新的微任务,则继续执行微任务,微任务执行完毕后,再回到宏任务中进行下一轮循环


  • 实例:


console.log('script start')
setTimeout(function() {
  console.log('setTimeout')
}, 0)
new Promise((resolve) => {
  console.log('promise one')
  resolve(1)
  console.log('promise then')
}).then(res => {
  console.log('promise two')
})
console.log('script end')
// 先执行代码块宏任务,输出前四个,再执行宏任务中的微任务,输出promise two,再循环执行下一个宏任务
// stript start
// promise one
// promise then
// script end
// promise two
// setTimeout


7. 浏览器回流和重绘


  • 回流:重新绘制当前页面,包括整个结构和样式(把房子拆了重建)


  • 重绘:重新绘制当前页面样式(重新废除)


  • 最小化回流和重绘的次数


8. 跨域


  • 种类:JSONP,nginx反向代理,CORS,postMessage


  • jsonp:


  • 原理:利用script标签没有跨域限制的漏洞,网页可以得到从其他源产生的JSON数据,但是需要对方服务器支持协定的callback回调函数支持


  • 优点:json简单兼容性号,可以解决主流浏览器的跨域数据访问


  • 缺点:仅支持get方法具有局限性,不安全可能受到xss攻击


9. 浏览器主要组成部分


  • 用户界面


  • 浏览器引擎


  • 渲染引擎


  • 网络模块


  • 用户界面后端


  • JavaScript解释器


  • 数据存储模块


相关文章
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
136 1
|
1月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
2月前
|
域名解析 缓存 负载均衡
网络浏览器并输入地址到显示的整个过程
网络浏览器并输入地址到显示的整个过程
|
7月前
|
Web App开发 移动开发 JavaScript
探索浏览器内核:理解网络世界的幕后英雄
探索浏览器内核:理解网络世界的幕后英雄
|
5月前
|
缓存 网络协议 Java
(六)网络编程之化身一个请求感受浏览器输入URL后奇妙的网络之旅!
在浏览器上输入一个URL后发生了什么? 这也是面试中老生常谈的话题,包括网上也有大量关于这块的内容。
156 2
|
7月前
|
存储 人工智能 应用服务中间件
Web应用是一种通过互联网浏览器和网络技术在互联网上执行任务的计算机程序
【5月更文挑战第30天】Web应用是一种通过互联网浏览器和网络技术在互联网上执行任务的计算机程序
116 2
Edge浏览器控制台(F12)中网络不显示接口信息
Edge浏览器控制台(F12)中网络不显示接口信息
浏览器的网络设置的细微之处
浏览器的网络设置的细微之处
52 0
|
缓存 人工智能 JavaScript
「网络」1.你所不知道的浏览器缓存精品答案
「网络」1.你所不知道的浏览器缓存精品答案
|
人工智能 JavaScript Java
0. 专栏介绍
0. 专栏介绍