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对象的位置和尺寸大小),浏览器需要重新计算元素的几何属性,将其安放在界面中正确的位置,这个过程就叫回流。触发:
- 添加或者删除可见的DOM元素
- 元素尺寸改变——边距、填充、边框、宽度和高度
重绘: 当一个元素的外观发生了改变,但没有改变布局,重新把元素外观绘制出来的过程,叫做重绘,触发:
- 改变元素的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仅在浏览器保存,不参与服务器通信