1、charset = “UTF-8” 和 GBK 两种不同的字符集编码
今天上课老师问我这样一个问题,如果用记事本打开没有charset = "UTF-8"的HTML里面的代码,会出现什么结果呢??? 我的回答是——乱码。
这就有必要来说一下GBK编码和UTF-8的区别了:
GBK编码:是指中国的中文字符,其它包含了简体中文与繁体中文字符,另外还有一种字符“gb2312”,这种字符仅能存储简体中文字符,GBK里面存储的字符较少,只存储了汉字和一些常用外文,体积比较小,它所占用的空间大小会随着它的功能而减少,打开网页的速度比较快。
UTF-8编码:它是一种全国通用的一种编码,如果你的网站涉及到多个国家的语言,就用UTF-8编码,UTF8编码格式很强大,导致它占用的空间大小要比GBK大,对于网页的速度就会比较慢。
2、第二个问题,在你明白了HTTP协议之后,什么是HTTPS协议啊?
我的理解是:比http协议更加安全,对明文信息使用了加密,增加了一个SSL安全层
我搜到的理解是:
A和B事先约定一种对称加密方式,约定一个随机生成的密钥。后续的通信中,信息发送方都使用密钥对信息加密,而信息接收方通过同样的密钥对信息解密。(也就是可以用钥匙关锁和开锁啦)
由于对称加密方式在一开始交流的时候便可能将信息泄露出去,更别说后面的信息交流内容了,所以,便有了非对称加密,为密钥的传输做一层额外的保护。 非对称加密的一组秘钥对中,包含一个公钥和一个私钥。明文既可以用公钥加密,用私钥解密;也可以用私钥加密,用公钥解密。
然而,由于坏蛋又可以通过截获B的公钥,自己另外生成一对公钥私钥,把自己的公钥发送给A。所以,第三种方式,引入第三方,一个权威的证书颁发机构(CA)来解决。 1、服务端B首先把自己的公钥发给证书颁发机构,向证书颁发机构申请证书。 2、证书颁发机构自己也有一对公钥私钥。机构利用自己的私钥来加密,并且通过服务端B的网址等信息生成一个证书签名,证书签名同样经过机构的私钥加密。证书制作完成后,机构把证书发送给了服务端B。 3、当A向B请求通信的时候,B不再直接返回自己的公钥,而是把自己申请的证书返回给A。 4、A收到证书以后,要做的第一件事情是验证证书的真伪。各大浏览器和操作系统已经维护了所有权威证书机构的名称和公钥。所以A只需要知道是哪个机构颁布的证书,就可以从本地找到对应的机构公钥,解密出证书签名,也就不需要向B确认了。 5、A按照同样的签名规则,自己也生成一个证书签名,如果两个签名一致,说明证书是有效且验证成功,A便可以解密出服务端B的公钥,开始交流。 以上都在SSL层中进行,SSL层位于TCP和HTTP中间
补充:认证过程:
数字证书包含了【服务器的信息、公钥】以及【数字签名】。其中服务器通过大家一开始建立连接指定的hash算法生成一个【信息摘要】,再将信息摘要通过服务器【自己持有的私钥】加密生成一个【数字签名】。客户端拿到数字证书后,通过 浏览器的hash算法解密出信息摘要 和 CA提供的公钥解密数字签名得到的信息摘要 做对比,如果一样说明安全。因为是服务器自己持有的私钥,所以数字签名无法被篡改,就能验证是否可信任。——来自大佬的回答
感谢大大提供的漫画解释,通俗易懂https://blog.csdn.net/bjweimengshu/article/details/87706654
3、红黑树、hashmap、枚举有了解过吗?
答案:后续补充。。。。。。
|