摘要: 1.1.5 生成 HTTP 请求消息 理解了 HTTP 的基本知识之后,让我们回到对浏览器本身的探索中来。 对 URL 进行解析之后,浏览器确定了 Web 服务器和文件名,接下来就是根据这些信息来生成 HTTP 请求消息了。实际上,HTTP 消息在格式上是有严格规定的,因此浏览器会按照规定的格式来生 阅读全文
posted @ 2018-11-13 22:15 田错 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 1.1 生成HTTP请求消息 1.1.1 探索之旅从输入网址开始 网址 网址,准确来说应该叫URL(Uniform Resource Locator,统一资源定位符),就是以 http:// 开头的那一串东西。 各种类型的URL URL 有各种不同的写法,但它们有一个共同点,那就是 URL 开头的文 阅读全文
posted @ 2018-11-13 22:11 田错 阅读(585) 评论(0) 推荐(0) 编辑
摘要: 树 节点的定义 树中的元素称之为节点 高度的定义 节点的高度:节点到叶子节点的最长路径 树的高度:跟节点的高度 深度的定义 根节点到这个节点所经历的边的个数 层的定义 节点的深度+1 二叉树 满二叉树 除了叶子结点外每个节点都有左右两个子节点 完全二叉树 叶子结点都在最低下两层,最后一层的叶子节点都 阅读全文
posted @ 2018-11-13 19:19 田错 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 哈希算法的定义和原理 将任意长度的二进制串映射为固定长度的二进制串。 这个映射的规则就是哈希算法,而通过原始数据映射之后得到的二进制串就是哈希值。 设计一个优秀的哈希算法需要满足: 从哈希值不能反向推导出原始数据(所以哈希算法也叫单向哈希算法); 对输入数据非常敏感,哪怕原始数据只修改了一个 Bit 阅读全文
posted @ 2018-11-13 15:51 田错 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 散列表和链表组合使用 LRU缓存淘汰算法 借助散列表,我们可以把LRU缓存淘汰算法的时间复杂度降为O(1)。 一个缓冲cache系统主要包含以下操作 往缓存中添加一个数据; 从缓存中删除一个数据; 在缓存中查找一个数据。 单纯采用链表,时间复杂度只能是O(n)。 将散列表和双向链表结合,就可以降为O 阅读全文
posted @ 2018-11-13 14:48 田错 阅读(229) 评论(0) 推荐(0) 编辑