《http权威指南》读书笔记13
概述
最近对http很感兴趣,于是开始看《http权威指南》。别人都说这本书有点老了,而且内容太多。我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做,还告诉你为什么这么做。于是我把学到的知识点记录下来,供以后开发时参考,相信对其他人也有用。
https
1.安全的http技术需要提供下列功能:
- 服务器认证。(客户端知道它们是在与真正的而不是伪造的服务器通话)
- 客户端认证。(服务器知道它们是在与真正的而不是伪造的客户端通话)
- 完整性。(客户端和服务器的数据不会被修改)
- 加密。(客户端和服务器的对话是私密的,无需担心被窃听)
- 效率。(一个运行的足够快的算法,以便低端的客户端和服务器使用)
- 普适性。(基本上所有的客户端和服务器都支持这些协议)
- 管理的可扩展性。(在任何地方的任何人都可以立即进行安全通信)
- 适应性。(能够支持当前最知名的安全方法)
- 在社会上的可行性。(满足社会的政治文化需要)
2.https在http应用层和tcp传输层之间添加了一个ssl或tls安全层。
3.对称加密:发送端和接受端在互相对话之前,一定要有一个共享的保密密钥。
4.公开密钥加密:使用两个非对称密钥,一个用来对主机报文编码,另一个用来对主机报文解码。编码密钥是众所周知的,但只有主机才知道私有的解密密钥。
5.所有的公开密钥非对称加密系统要确保即使有人拥有了下面所有的线索,也无法计算出保密的私有密钥:
- 公开密钥(是公有的,所有人都可以获得)
- 一小片拦截下来的密文(可通过对网络的嗅探获取)
- 一条报文及与之相关的密文(对任意一段文本运行加密器就可以得到)
6.RSA:即使有了公共密钥、任意一段明文、用公共密钥对明文编码之后得到的相关密文、RSA算法本身,甚至RSA实现的源代码,破解代码找到相应的私有密钥的难度仍相当于对一个极大的数进行质因数分解的困难程度。
7.混合加密系统:由于公开密钥加密算法的计算可能会很慢,所以一般混合公开密钥加密和对称加密。先在两节点间通过便捷的公开密钥加密技术建立起安全通信,然后再用那条安全的通道产生并发送临时的随机对称密钥。
8.除了加密解密报文之外,还可以用加密系统对报文进行签名,以说明是谁编写的报文,同时证明报文未被篡改过。这种技术被称为数字签名。数字签名用的非对称加密,只有作者才知道私有密钥对报文进行加密,所有人都知道公开密钥对密文进行解密。
9.基本的数字证书包含一些纸质ID中常见的内容,比如:
- 对象的名称(人、服务器、组织等)。
- 过期时间。
- 证书发布者。
- 来自证书发布者的数字签名。
10.任何人都可以创建一个数字证书,但并不是所有人都能够获得受人尊敬的签发权,从而为证书信息担保,并用其私有密钥签发证书。
11.通过https建立一个安全web事务之后,现代的浏览器都会自动获取所连接服务器的数字证书。
12.SSL是如何与安全服务器建立连接的:
- 建立安全传输。客户端首先打开一条到web服务器端口443的连接,一旦建立了tcp连接,客户端和服务器就会初始化ssl层,对加密参数进行沟通,并交换密钥。
- 在发送已加密的http报文之前,客户端和服务器要进行一次ssl握手,它们要完成这些工作:交换协议版本号;选择一个两端都了解的密码;对两端的身份进行认证;生成临时的会话密钥,以便加密信道。
13.OpenSSL是SSL和TLS最常见的开源实现。为了使htts与代理配合工作,一种常见的技术就是htts SSL隧道协议。
《http权威指南》读书笔记13的更多相关文章
- HTTP权威指南读书笔记
HTTP权威指南笔记 读书有两种境界,第一种境界是将书读薄,另一种是读厚.本篇文章就是HTTP权威指南的读书笔记,算是读书的第一重境界,将厚书读薄.文章对HTTP的一些关键概念做了比较详细的概述,通读 ...
- css权威指南读书笔记
今天翻手机,翻到了许久之前看css权威指南时的笔记,遂移到博客中来. 1.属性选择器p.one class名为one的p元素p[class][name] 含有class和name属性的p元素p[cla ...
- 经典的性能优化最佳实践 web性能权威指南 读书笔记
web性能权威指南 page 203 经典的性能优化最佳实践 无论什么网络,也不管所用网络协议是什么版本,所有应用都应该致力于消除或减 少不必要的网络延迟,将需要传输的数据压缩至最少.这两条标准是经典 ...
- css权威指南读书笔记-第10章浮动和定位
这一章看了之后真是豁然开朗,之前虽然写了圣杯布局和双飞翼布局,有些地方也是模糊的,现在打算总结之后再写一遍. 以下都是从<css权威指南>中摘抄的我认为很有用的说明. 浮动元素 一个元素浮 ...
- Java性能优化权威指南-读书笔记(一)-操作系统性能监控工具
一:CPU 1. 用户态CPU是指执行应用程序代码的时间占总CPU时间的百分比. 系统态CPU是指应用执行操作系统调用的时间占总CPU时间的百分比.系统态CPU高意味着共享资源有竞争或者I/O设备之间 ...
- Hadoop权威指南读书笔记
本书中提到的Hadoop项目简述 Common:一组分布式文件系统和通用I/O的组件与接口(序列化.javaRPC和持久化数据结构). Avro:一种支持高效.跨语言的RPC以及永久存储数据的序列化系 ...
- Java性能权威指南读书笔记--之二
新生代填满时,垃圾收集器会暂停所有的应用线程,回收新生代空间.这种操作被称为Minor GC. 老年代被填满时,垃圾收集器会暂停所有应用线程,对其进行回收,接着对堆空间进行整理.这个过程被称为Full ...
- JS权威指南读书笔记(七)
第十七章 事件处理 1 客户端JS程序采用了异步事件驱动编程模型. 2 关于事件的重要定义 a 事件类型(event type) b 事件目标(event target) target ...
- JS权威指南读书笔记(六)
第十五章 脚本化文档 1 文档对象模型(DOM)是表示和操作HTML和XML文档内容的基础API. 2 文档节点的部分层次结构 Text和CDATASection都是characterData的子 ...
- JS权威指南读书笔记(四)
第十章 正则表达式 1 正则表达式直接量定义为包含在一对斜杠(/)之间的字符 a /s$/ == new RegExp("s$") 2 直接量字符:所有字母和数字都是按照字 ...
随机推荐
- java 小数转换成二进制
32位单精度二进制 = [1个符号位] [8个阶码位] [23个尾数位] 64位单精度二进制 = [1个符号位] [11个阶码位] [52个尾数位] 小数 = [正负符号位] [整数部分] . [小 ...
- c++常用小算法
这篇文章列出了一些简单常用的C++容器算法,C++标准库中事实上提供了很多的算法并且有详细的介绍.如果需要详细的了解这些算法可以 参考C++在线参考手册 algrithm . 1 排序 在 #incl ...
- mybatis学习笔记1.零碎记录
1.conf.xml文件中的一些标签先后顺序会有影响. conf.xml文件<configuration>标签对里面配置的<typeAliases>标签的位置还有讲究?我将其放 ...
- Vim 入门:基础
为工作或者新项目学习足够的 Vim 知识. -- Bryant Son 我还清晰地记得我第一次接触 Vim 的时候.那时我还是一名大学生,计算机学院的机房里都装着 Ubuntu 系统.尽管我在上大学前 ...
- Saliency Detection: A Spectral Residual Approach
Saliency Detection: A Spectral Residual Approach 题目:Saliency Detection: A Spectral Residual Approach ...
- 29. pt-table-usage
pt-table-usage --query="select * from t01 join t02 on t01.id=t02.id where t01.code=2" pt-t ...
- function 函数
function:函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回.因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑. 如果没有return语句,函数执行完毕后也 ...
- TCP两次握手
TCP的三次握手已经说烂了,TCP为何要三次握手?为何不两次握手也有很多说法.对于这些类似的问题,最好的办法是看RFC 常规思路,由面到点 两军问题 在不可靠通信下,两军想要达到状态一致是无解的.因为 ...
- vue版 文件下载
标签的download: 是HTML5标准新增的属性,作用是指示浏览器下载URL而不是导航到URL,因此将提示用户将其保存为本地文件. 这种是定义的接口不是下载文件的路径,而是通过API可以获得文件的 ...
- es6数组
将两类对象转为真正的数组 Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和 ...