《HTTP权威指南》– 10.安全HTTP
HTTPS的概念
HTTPS 是最流行的HTTP安全模式,由网景公司首创,所有主流浏览器和服务器都支持此协议。HTTPS方案 的URL以 https:// 开头,使用 HTTPS 时,所有的HTTP请求和响应数据在发送到网络之前,都要进行加密。HTTPS 在HTTP下面提供了一个传输级的密码安全层。
数字加密:
密码:一种特殊的报文编码方式和一种稍后使用的相应解码方式的结合本。加密之前的原始报文通常称为明文,加密之后为密文。
数字签名:
数字签名 是附加在报文上的特殊加密校验码。使用数字签名有以下两个好处:
- 签名可以证明是作者编写了这条报文;
- 签名可以防止报文被篡改;
使用数字证书对服务器进行认证:
通过HTTPS建立了一个安全的Web事物之后,现代的浏览器都会自动获取连接 服务器的数字证书。如果服务器没有证书,安全连接就会失败,服务器证书 包含很多字段,其中包括:
- Web站点的名称和主机名;
- Web站点的公开密钥;
- 签名颁发机构的名称;
- 来自签名颁发机构的签名;
实体和编码:
如果把HTTP报文想象成因特网货运系统的箱子,那么HTTP实体就是报文中实际的货物。
- HTTP / 1.0 200OK
- Server : Netscape - Enterprice / 3.6
- Date: Sun, 17 set 2000 00:01:05 GMT
- Content-type: text/plain
- Content-length : 19
- Hi : I'm a message!
HTTP实体首部描述了HTTP报文的内容,HTTP / 1.1版定义了以下10个基本字体首部字段:
- Content - Type: 实体中所承载的对象类型;
- Content - Length: 所传送实体主体的长度或大小
- Content - Language: 与所传送对象最相配的人类语言
- Content - Encoding: 对象数据所做的任意变换;
- Content - Location: 一个备用位置,请求时可通过它获得对象;
- Content - Range: 如果这是部分实体,这个首部说明它是整体的哪个部分;
- Content - MD5: 实体主体内容的校验和;
- Content - Modified: 所传输内容在服务器上创建或最后的日期时间;
- Expires: 实体数据将要失效的日期时间;
- Allow: 该资源所允许的各种请求方法;
- ETag: 这份文档特定实例的唯一验证码;
- Cache - Control: 找出如何缓存该文档;
媒体类型和字符集:
Content-Type首部 字段说明了实体主体的 MIME类型。MIME 类型由一个主媒体类型 (如text image audio等)后面跟一条斜线以及一个子类型组成,子类型进一步描述媒体类型。
常见的媒体类型:
- text / html HTML文档
- text / plain 纯文本文档
- image / gif GIF图像
- image / jpeg JPEG图像
- audio / x-wav WAV格式声音数据
- audio / vrm 三维的VRM模型
内容编码的过程:
- 网站服务器生成原始响应报文,其中有原始的 Content-Type 和 Content-Length 首部;
- 内容编码服务器(也可能就是原始的服务器或下行的代理)创建编码后的报文。编码后的报文有同样的 Content-Type 但 Content - Length 可能不同(比如主体被压缩了)。内容编码服务器在编码后的报文中增加 Content - Encoding 首部,接收到的应用程序就可以进行解压了;
- 接收程序得到编码后的报文,进行解压,得到原始报文;
常用的内容编码代号:
- gzip: 表明实体采用
GNU Zip编码- compress: 表明实体采用
Unix的文件压缩程序- deflate: 表明实体采用
Zlib格式压缩- identity: 表明没有对主体进行编码
### 图灵图书 -- HTTP权威指南
豆瓣读书 -- HTTP权威指南
《HTTP权威指南》– 10.安全HTTP的更多相关文章
- Node.js权威指南 (10) - Node.js中的错误处理与断言处理
10.1 使用domain模块处理错误 / 272 10.1.1 domain模块概述 / 272 10.1.2 创建并使用Domain对象 / 274 10.1.3 隐式绑定与显式绑定 / 276 ...
- 《http权威指南》读书笔记10
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- css权威指南读书笔记-第10章浮动和定位
这一章看了之后真是豁然开朗,之前虽然写了圣杯布局和双飞翼布局,有些地方也是模糊的,现在打算总结之后再写一遍. 以下都是从<css权威指南>中摘抄的我认为很有用的说明. 浮动元素 一个元素浮 ...
- JavaScript权威指南 - 函数
函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...
- JavaScript权威指南 - 数组
JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...
- 《Ansible权威指南》笔记(3)——Ad-Hoc命令集,常用模块
五.Ad-Hoc命令集1.Ad-Hoc命令集通过/usr/bin/ansible命令实现:ansible <host-pattern> [options] -v,--verbose ...
- 《javascript权威指南》读书笔记——第一篇
<javascript权威指南>读书笔记——第一篇 金刚 javascript js javascript权威指南 由于最近想系统学习下javascript,所以开始在kindle上看这本 ...
- ARM Cortex-M0权威指南高清中文版pdf免费分享下载
版 次:1 页 数:433 字 数:655000 印刷时间:2013-8-1 开 本:16开 纸 张:胶版纸 印 次:1 包 装:平装 丛书名:清华开发者书库 国际标准书号ISBN:978730233 ...
- Netty权威指南
Netty权威指南(异步非阻塞通信领域的经典之作,国内首本深入剖析Netty的著作,全面系统讲解原理.实战和源码,带你完美进阶Netty工程师.) 李林锋 著 ISBN 978-7-121-233 ...
- Javascript权威指南
一.数字写法 3.14 2345.789 .333333333333333333 6.02e23 // 6.02 × 10 23 1.4738223E-32 // 1.4738223 × 10 −32 ...
随机推荐
- .NET6 使用 AutoFac (解析)
一.Net 6环境下的.net core项目里如何使用Autofac实现依赖注入. 通常的,我们把其他服务注入到Controller时,使用.net core自带的依赖注入即可,但是如果我们要实现自定 ...
- 基于.NetCore开发博客项目 StarBlog - (18) 实现本地Typora文章打包上传
前言 九月太忙,只更新了三篇文章,本来这个功能是从九月初就开始做的,结果一直拖到现在国庆假期才有时间完善并且写文章~ 之前我更新了几篇关于 Python 的文章,有朋友留言问是不是不更新 .Net 了 ...
- VMware vSphere 8.0 正式版下载
请访问原文链接:https://sysin.org/blog/vmware-vsphere-8/,查看最新版.原创作品,转载请保留出处. 作者主页:www.sysin.org vSphere 8.0 ...
- 【算法训练营day4】LeetCode24. 两两交换链表中的结点 LeetCode19. 删除链表的倒数第N个结点 LeetCode面试题 02.07. 链表相交 LeetCode142. 环形链表II
[算法训练营day4]LeetCode24. 两两交换链表中的结点 LeetCode19. 删除链表的倒数第N个结点 LeetCode面试题 02.07. 链表相交 LeetCode142. 环形链表 ...
- mujoco d4rl 安装问题
最近mujoco免费了,属实爽歪歪,安装d4rl没有以前那么麻烦了(不知为何半年前我安装d4rl时走了那么多弯路) mujoco安装 在 https://mujoco.org/download 上面下 ...
- 获取cpu的核数
//获取cpu的核数 System.out.println(Runtime.getRuntime().availableProcessors());
- 深度学习环境搭建常用网址、conda/pip命令行整理(pytorch、paddlepaddle等环境搭建)
前言:最近研究深度学习,安装了好多环境,记录一下,方便后续查阅. 1. Anaconda软件安装 1.1 Anaconda Anaconda是一个用于科学计算的Python发行版,支持Linux.Ma ...
- 支持向量机(SVM)公式整理
支持向量机可以分为三类: 线性可分的情况 ==> 硬间隔最大化 ==> 硬间隔SVM 近似线性可分的情况 ==> 软间隔最大化 ==> 线性支持向量机 线性不可分的情况 ==& ...
- JS 可编辑表格的实现
1.实现效果 用户点击语文,数学,英语部分的单元格,可以实现分数的编辑,总分也会随之变化.先看下效果,如图: 2.设计思路 先通过HTML5+CSS3绘制表格,添加input的样式和err提示动画. ...
- .NET性能优化-复用StringBuilder
在之前的文章中,我们介绍了dotnet在字符串拼接时可以使用的一些性能优化技巧.比如: 为StringBuilder设置Buffer初始大小 使用ValueStringBuilder等等 不过这些都多 ...