概述

最近对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的更多相关文章

  1. HTTP权威指南读书笔记

    HTTP权威指南笔记 读书有两种境界,第一种境界是将书读薄,另一种是读厚.本篇文章就是HTTP权威指南的读书笔记,算是读书的第一重境界,将厚书读薄.文章对HTTP的一些关键概念做了比较详细的概述,通读 ...

  2. css权威指南读书笔记

    今天翻手机,翻到了许久之前看css权威指南时的笔记,遂移到博客中来. 1.属性选择器p.one class名为one的p元素p[class][name] 含有class和name属性的p元素p[cla ...

  3. 经典的性能优化最佳实践 web性能权威指南 读书笔记

    web性能权威指南 page 203 经典的性能优化最佳实践 无论什么网络,也不管所用网络协议是什么版本,所有应用都应该致力于消除或减 少不必要的网络延迟,将需要传输的数据压缩至最少.这两条标准是经典 ...

  4. css权威指南读书笔记-第10章浮动和定位

    这一章看了之后真是豁然开朗,之前虽然写了圣杯布局和双飞翼布局,有些地方也是模糊的,现在打算总结之后再写一遍. 以下都是从<css权威指南>中摘抄的我认为很有用的说明. 浮动元素 一个元素浮 ...

  5. Java性能优化权威指南-读书笔记(一)-操作系统性能监控工具

    一:CPU 1. 用户态CPU是指执行应用程序代码的时间占总CPU时间的百分比. 系统态CPU是指应用执行操作系统调用的时间占总CPU时间的百分比.系统态CPU高意味着共享资源有竞争或者I/O设备之间 ...

  6. Hadoop权威指南读书笔记

    本书中提到的Hadoop项目简述 Common:一组分布式文件系统和通用I/O的组件与接口(序列化.javaRPC和持久化数据结构). Avro:一种支持高效.跨语言的RPC以及永久存储数据的序列化系 ...

  7. Java性能权威指南读书笔记--之二

    新生代填满时,垃圾收集器会暂停所有的应用线程,回收新生代空间.这种操作被称为Minor GC. 老年代被填满时,垃圾收集器会暂停所有应用线程,对其进行回收,接着对堆空间进行整理.这个过程被称为Full ...

  8. JS权威指南读书笔记(七)

    第十七章 事件处理 1 客户端JS程序采用了异步事件驱动编程模型. 2 关于事件的重要定义     a 事件类型(event type)     b 事件目标(event target) target ...

  9. JS权威指南读书笔记(六)

    第十五章 脚本化文档   1 文档对象模型(DOM)是表示和操作HTML和XML文档内容的基础API. 2 文档节点的部分层次结构 Text和CDATASection都是characterData的子 ...

  10. JS权威指南读书笔记(四)

    第十章 正则表达式 1 正则表达式直接量定义为包含在一对斜杠(/)之间的字符     a /s$/ == new RegExp("s$") 2 直接量字符:所有字母和数字都是按照字 ...

随机推荐

  1. MUI 添加自定义图标(注意点)

    参考: https://blog.csdn.net/qq_39759115/article/details/79436606 注意: 1. 将这个原来的逗号改成分号 2. 这些图标的名字都可以改名字

  2. ASCII,Unicode 和 UTF-8

    ASCII: 英文的编码方式,规定了128个字符的编码,使用了一个字节的后七位表示. Unicode : 每个国家的字符集都不同,世界上所有的字符远远超过128个.Unicode,就是一种所有符号的编 ...

  3. 浏览器中的 JS 和 Node.js 中的 JS

    一个是前端技术,一个是后端技术 浏览器中的 JavaScript ECMAScript  语言基础,如语法.数据类型结构.一些内置对象 BOM(Browser Object Model)  一些操作页 ...

  4. http 自定义信息头(header)设置与获取

    一.后端设置(如:java) 在你服务端(如:java)返回的时候写上: res.setHeader("Access-Control-Expose-Headers",propNam ...

  5. Linux学习笔记:安装python

    一般linux自带python2,如果需要python3以上版本,可以不需要卸载自带的python2,二者可以共存.只需要配置相应的环境变量即可. 具体回答可以参考这篇文章 https://stack ...

  6. JS獲取URL的參數

    function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*) ...

  7. Vscode调试C的多文件工程配置

    关于Vscode的C语言的单文件调试,可以参见VScode调试C语言的设置(win10,Linux),里面已经说明基本的配置和使用. 下面说明一下如何调试多个文件的工程,首先写一个简单的工程,其中工程 ...

  8. 如何在Ubuntu上安装LAMP服务器系统?

    在Ubuntu上安装LAMP Ubuntu的开发人员让人们很容易安装和配置LAMP软件包,只要借助一个终端命令.所以,打开终端窗口,让我们开始入手吧. sudo apt-get install lam ...

  9. 用pyspider爬取并解析json字符串

    获取堆糖网站所有用户的id 昵称及主页地址 #!/usr/bin/env python # -*- encoding: utf-8 -*- # Created on 2016-06-21 13:57: ...

  10. Servlet映射

    转载自https://blog.csdn.net/xinluke/article/details/51449594 映射请求到Servlet |-- Context Path --|-- Servle ...