常见前端基础面试题(HTML,CSS,JS)(六)

 GET 和 POST 的区别

从 http 协议的角度来说,GET 和 POST 它们都只是请求行中的第一个单词,除了语义不同,其实没有本质的区别。

之所以在实际开发中会产生各种区别,主要是因为浏览器的默认行为造成的。

受浏览器的影响,在实际开发中,GET 和 POST 有以下区别:

  • 浏览器在发送 GET 请求时,不会附带请求体

  • GET 请求的传递信息量有限,适合传递少量数据;POST 请求的传递信息量是没有限制的,适合传输大量数据。

  • GET 请求只能传递 ASCII 数据,遇到非 ASCII 数据需要进行编码;POST 请求没有限制

  • 大部分 GET 请求传递的数据都附带在 path 参数中,能够通过分享地址完整的重现页面,但同时也暴露了数据,若有敏感数据传递,不应该使用 GET 请求,至少不应该放到 path 中

  • 刷新页面时,若当前的页面是通过 POST 请求得到的,则浏览器会提示用户是否重新提交。若是 GET 请求得到的页面则没有提示。

  • GET 请求的地址可以被保存为浏览器书签,POST 不可以

浏览器渲染机制、重绘、重排

网页生成过程:

  • HTML被HTML解析器解析成DOM
  • css则被css解析器解析成CSSOM
  • 结合DOM树和CSSOM树,生成一棵渲染树(Render Tree)
  • 生成布局(flow),即将所有渲染树的所有节点进行平面合成
  • 将布局绘制(paint)在屏幕上

重排(也称回流):  当DOM的变化影响了元素的几何属性(DOM对象的位置和尺寸大小),浏览器需要重新计算元素的几何属性,将其安放在界面中正确的位置,这个过程就叫回流。触发:

  1. 添加或者删除可见的DOM元素
  2. 元素尺寸改变——边距、填充、边框、宽度和高度

重绘: 当一个元素的外观发生了改变,但没有改变布局,重新把元素外观绘制出来的过程,叫做重绘,触发:

  • 改变元素的color、background、box-shadow属性

url按下回车之后发生了什么

1 解析域名
2 缓存判断   --有资源直接返回、否则向服务器发起新的请求
3 DNS解析
4 获取MAC地址
5 会把请求的内容存储到dns
6 TCP三次握手
7 HTTPS握手
8 返回数据
9 TCP四次挥手
复制代码

cookie、sessionStorage、localStorage的区别

  • cookie 可以设置失效时间
  • localStorage 除非手动清除,否则永久保存
  • sessionStorage 尽在当前网页有效,关闭页面就被清除
  • cookie储存大小是4k,localStorage和sessionStorage是5M
  • 请求时:cookie自动携带HTTP头部中,localStorage和sessionStorage仅在浏览器保存,不参与服务器通信

猜你喜欢

转载自blog.csdn.net/ybigbear2/article/details/131581052