一次完整的http请求过程(在浏览器输入URL后,执行的全部过程)1.首先进行域名解析,域名解析具体过程讲一下: 浏览器搜索自己的DNS缓存,缓存中维护一张域名与IP地址的对应表; 若没有,则搜索操作系统的DNS缓存; 若没有,则操作系统将域名发送至本地域名服务器(递归查询方式),本地域名服务 ...
从https协议谈对称加密和非对称加密
首先,我们为什么要用https协议,在此我们举例说明:你在网上商城,发送一个购物的请求,要购买一件商品,但你的数据包被黑客截获了,黑客在网上商城服务器回复你之前回复你,让你提供银行卡账号和密码,如果你未能识别出这是黑客行文,那么后果就可以自己想象了。 为了解决这个问题,一般的思路就是加密。加密 ...
数据结构与算法学习笔记(2)-数组
前记 前篇总结复杂度分析,本篇学习数组。 数组 数组(Array)是一种线性表数据结构。它用一组连续的内存空间来存储一组具有相同类型的数据。 数组和链表的区别,很多人都说,“链表适合插入、删除,时间复杂度O(1);数组适合查找,查找时间复杂度为O(1)”。实际上,这种表述是不准确的。数组是适合 ...
数据结构与算法学习笔记(1)-复杂度分析
前记 众所周知,数据结构和算法是编程当中的内功,只有把内功修炼深厚,才能应对各种招式的变化。如果每天做一些机械性质的增删改查,那是注定在编程道路上走不远的,因此,从本篇开始,进行数据结构和算法的学习,并以笔记的形式进行知识点的总结。 基本复杂度分析 复杂度分析是算法学习的精髓,可以说掌握了复杂度 ...
递归中的return
递归中的return常用来作为递归终止的条件,但是对于返回数值的情况,要搞明白它是怎么返回的。递归的方式就是自己调用自己,而在有返回值的函数中,上一层的函数还没执行完就调用下一层,因此,当达到递归终止条件时,首先return的是最底层调用的函数,return之后,继续执行上一层调用该函数之后的代 ...
effective C++(2)
1.如果你打算在一个内含引用的类内支持赋值操作,你必须自己定义拷贝赋值操作符。 2.如果某个基类将拷贝赋值操作符声明为private,编译器就会拒绝为其子类生成一个拷贝赋值操作符。 3.当子类对象经由一个基类指针被删除,而该基类带着一个非虚析构函数,则在实际执行的时候,对象的子类部分没被销毁 ...