2024.8.6
srcset
srcset 属性用来指定多张图像,适应不同像素密度的屏幕。它的值是一个逗号分隔的字符串,每个部分都是一张图像的 URL,后面接一个空格,然后
是像素密度的描述符。
(srcset)[https://www.ruanyifeng.com/blog/2019/06/responsive-images.html]
html
<img
srcset="foo-320w.jpg, foo-480w.jpg 1.5x, foo-640w.jpg 2x"
src="foo-640w.jpg"
/>
<img
srcset="foo-320w.jpg, foo-480w.jpg 1.5x, foo-640w.jpg 2x"
src="foo-640w.jpg"
/>
map 和 set 的区别
map 是一个键值对的集合,而 set 是一个值的集合。
https 是怎么保证数据安全的
通过证书,大概流程
1.客户端请求证书 2.服务端返回证书 3.客户端验证证书,并生成随机数 4.客户端使用证书加密随机数,发送给服务端 5.服务端使用证书解密随机数,验证通过后,返回数据
怎么保证证书不被篡改(数字签名)
什么是数字签名?签名的过程是什么
签名的过程其实也很简单
- CA机构拥有非对称加密的私钥和公钥
- CA对证书明文信息进行hash
- 对hash后的值用私钥加密,得到数字签名
所以呢,总结一下:CA机构颁发的证书包含(证书内容的明文+签名)
浏览器收到服务下发的证书之后,拿到证书明文和签名,怎么验证是否篡改了呢?
大家知道,私钥签名,公钥验签。证书里面的签名是CA机构用私钥签名的,所以我只要用CA机构的公钥验证一下签名不就好了,怎么验证呢?
- 拿到证书里面明文的hash算法并对明文内容进行hash运算,得到A
- 用CA的公钥解密签名得到B
- 比较A 和 B,如果相等,说明没有被篡改,否则浏览器提示证书不可信
有没有发现一个问题?CA的公钥从哪里获取呢
这个简单,CA权威机构本来也没多少个,所以,浏览器内部都内置了各大CA机构的公钥信息
简单总结一下
1.如果证书被篡改,浏览器就提示不可信,终止通信,如果验证通过,说明公钥没问题,一定没被篡改
2.公钥没被篡改,那浏览器生成的对称加密用的密钥用公钥加密发送给服务端,也只有服务端的私钥能解开,所以保证了 对称密钥不可能被截获,对称密钥没被截获,那双方的通信就一定是安全的
3.黑客依然可以截获数据包,但是全都是经过对称加密的密钥加密的,他也可以篡改,只是没有任何意义了,黑客也不会做吃力不讨好的事了
webpack 常用插件有哪些
- cleanWebapckPlugin:清理 dist 目录
- htmlWebpackPlugin:生成 html 文件,并自动引入打包后的 js 文件
- copyWebpackPlugin:复制文件
- miniCssExtractPlugin:将 css 文件单独打包
平时遇到问题,怎么解决的,或者学习途径
掘金,知乎,github,百度,stackoverflow
vue 和 react 的区别
有没有遇过跨端适配的问题
Taro2 到 Taro3 的迁移
Api 变化,组件变化,生命周期变化
Taro 有遇到过什么问题
(Taro 常问)[https://blog.csdn.net/qq_29101285/article/details/138899851]