HTTP学习笔记(二)
1.输入url到网页呈现,加载过程
1.dns解析 域名->ip地址
2.浏览器发送http请求建立tcp链接(三次握手)
3.服务器接收到请求,处理,返回数据
2.网页渲染
1.根据html生成dom tree
2.css生成cssom
3.整合成render tree
4.执行渲染,遇到script则停止,等待js完成操作再进行渲染
3.window.onload和domcontentloaded:前者全部加载完,包含图片视频,后者不需要等待非dom加载完,更快
4.性能优化:防抖节流
原则:多使用缓存,内存,减少cpu计算量,网络加载耗时
加载更快:压缩代码webpack
减少访问次数:合并代码,SSR服务器渲染,缓存
使用更快网络:cdn区域处理
渲染更快:css在script流程上面
缓存:静态资源加哈希后缀检测内容变化,文件不变触发缓存机制返回304
SSR渲染:服务器端渲染:将网页和数据一起渲染
图片懒加载:如果:offsetTop-scroolTop<clientHeight,则图片进入了可视区内,则被请求。
多dom插入:domcument.createDocumentFragment(),在需要补充的节点后appendChild
5.web安全
xss:跨站请求攻击
HTML是一种超文本标记语言,通过将一些字符特殊地对待来区别文本和标记,例如,小于符号(<)被看作是HTML标签的开始,<title>与</title>之间的字符是页面的标题等等。当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了HTML标签,当这些HTML标签引入了一段JavaScript脚本时,这些脚本程序就将会在用户浏览器中执行。所以,当这些特殊字符不能被动态页面检查或检查出现失误时,就将会产生XSS漏洞。
解决方法:对“<”,“>”,“;”,“””等字符做过滤,<:< ;>:>等等
xsrf:跨站请求伪造 通过伪装来自受信任用户的请求来利用受信任的网站。
解决方法:1.尽量使用post 2.将cookie设置为HttpOnly 3.增加验证手段

浙公网安备 33010602011771号