1.https和http有什么区别
https是在http的基础上对传输的内容做了ssl安全加密,以提高安全性;
1.1 如何实现https
为了将传输的内容加密我们需要一个密钥,对传输内容的加密用的对称加密,这是考虑到速度;而交流这个密钥的过程用到的是非对称加密;
2.网络传输怎么保证可靠性
我们只考虑网络最下面的4层,其中数据链路层和传输层的某些协议是可靠的,而物理层和网络层是不可靠的;
实现可靠传输的方法主要是选择重传协议配合滑动窗口一起使用。
4. 堆和栈是什么有什么区别
堆是按照优先级排序的树,我们可以制定不同的优先级规则;它可以用来实现优先队列,也就是无论按照什么顺序入队,总是按照优先级越高越先出队;一个例子是大根堆,在它的树形结构中,左右孩子的值总是小于父亲节点的值,这就使得根是最大的元素;每次将根取得之后再将堆重新排序获得新的大根堆
栈是先进后出的数据结构;
5. 解释编译的过程
编译是把源程序转化成目标程序的过程,编译主要分为5个步骤:
1. 词法分析:把源程序划分成词,包括一些关键词和变量名称,存储在符号表中
2. 语法分析:把词语划分到不同的语法范畴,如句子,程序段;语法分析时还可以做语法检查
3. 语义分析和中间代码的生成:对各类语法范畴,翻译得到中间代码
4. 优化:优化中间代码
5. 把中间代码转化成源程序