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漏洞。

解决方法:对“<”,“>”,“;”,“””等字符做过滤,<:&lt ;>:&gt等等

xsrf:跨站请求伪造 通过伪装来自受信任用户的请求来利用受信任的网站。 

解决方法:1.尽量使用post 2.将cookie设置为HttpOnly 3.增加验证手段

 

posted @ 2021-04-28 15:05  恣肆zisi  阅读(51)  评论(0)    收藏  举报