HTTPS的概念

HTTPS 是最流行的HTTP安全模式,由网景公司首创,所有主流浏览器和服务器都支持此协议。HTTPS方案 的URL以 https:// 开头,使用 HTTPS 时,所有的HTTP请求和响应数据在发送到网络之前,都要进行加密。HTTPS 在HTTP下面提供了一个传输级的密码安全层。

数字加密:

密码:一种特殊的报文编码方式和一种稍后使用的相应解码方式的结合本。加密之前的原始报文通常称为明文,加密之后为密文。

数字签名:

数字签名 是附加在报文上的特殊加密校验码。使用数字签名有以下两个好处:

  1. 签名可以证明是作者编写了这条报文;
  2. 签名可以防止报文被篡改;

使用数字证书对服务器进行认证:

通过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模型

内容编码的过程:

  1. 网站服务器生成原始响应报文,其中有原始的 Content-TypeContent-Length 首部;
  2. 内容编码服务器(也可能就是原始的服务器或下行的代理)创建编码后的报文。编码后的报文有同样的 Content-TypeContent - Length 可能不同(比如主体被压缩了)。内容编码服务器在编码后的报文中增加 Content - Encoding 首部,接收到的应用程序就可以进行解压了;
  3. 接收程序得到编码后的报文,进行解压,得到原始报文;

常用的内容编码代号:

  • gzip: 表明实体采用 GNU Zip 编码
  • compress: 表明实体采用 Unix 的文件压缩程序
  • deflate: 表明实体采用 Zlib 格式压缩
  • identity: 表明没有对主体进行编码

### 图灵图书 -- HTTP权威指南

豆瓣读书 -- HTTP权威指南

《HTTP权威指南》– 10.安全HTTP的更多相关文章

  1. Node.js权威指南 (10) - Node.js中的错误处理与断言处理

    10.1 使用domain模块处理错误 / 272 10.1.1 domain模块概述 / 272 10.1.2 创建并使用Domain对象 / 274 10.1.3 隐式绑定与显式绑定 / 276 ...

  2. 《http权威指南》读书笔记10

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

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

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

  4. JavaScript权威指南 - 函数

    函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...

  5. JavaScript权威指南 - 数组

    JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...

  6. 《Ansible权威指南》笔记(3)——Ad-Hoc命令集,常用模块

    五.Ad-Hoc命令集1.Ad-Hoc命令集通过/usr/bin/ansible命令实现:ansible <host-pattern> [options]    -v,--verbose  ...

  7. 《javascript权威指南》读书笔记——第一篇

    <javascript权威指南>读书笔记——第一篇 金刚 javascript js javascript权威指南 由于最近想系统学习下javascript,所以开始在kindle上看这本 ...

  8. ARM Cortex-M0权威指南高清中文版pdf免费分享下载

    版 次:1 页 数:433 字 数:655000 印刷时间:2013-8-1 开 本:16开 纸 张:胶版纸 印 次:1 包 装:平装 丛书名:清华开发者书库 国际标准书号ISBN:978730233 ...

  9. Netty权威指南

    Netty权威指南(异步非阻塞通信领域的经典之作,国内首本深入剖析Netty的著作,全面系统讲解原理.实战和源码,带你完美进阶Netty工程师.) 李林锋 著   ISBN 978-7-121-233 ...

  10. Javascript权威指南

    一.数字写法 3.14 2345.789 .333333333333333333 6.02e23 // 6.02 × 10 23 1.4738223E-32 // 1.4738223 × 10 −32 ...

随机推荐

  1. Elastic:用 Docker 部署 Elastic Stack

    文章转载自:https://elasticstack.blog.csdn.net/article/details/100919273 前提条件 首选需要在主机上安装好docker和docker-com ...

  2. windows系统下使用bat脚本文件设置 tomcat 系统环境变量

    说明:在一个bat文件中设置tomcat环境变量后,不能直接使用,需要另起一个bat文件才能使用 号开头的行不要写在bat文件中 # tomcat1.bat # 这个bat文件实现的功能:设置环境变量 ...

  3. MySql的InnoDB的三层B+树可以存储两千万左右条数据的计算逻辑

    总结/朱季谦 B+树是一种在非叶子节点存放排序好的索引而在叶子节点存放数据的数据结构,值得注意的是,在叶子节点中,存储的并非只是一行表数据,而是以页为单位存储,一个页可以包含多行表记录.非叶子节点存放 ...

  4. 跳过nsis Error强制运行程序

    NSIS编译的程序在运行之初,都会有一个程序完整性的自我检测,一旦检测到数据不完整,比如文件资源被篡改,下载过程中有数据丢失等情况,就会报错停止运行,也就是大名鼎鼎的nsis Error  ,其实想跳 ...

  5. NSIS检测并统计字符串中某个字符个数

    !include "LogicLib.nsh" OutFile "检查找字符串中c出现的次数.exe" Name "test" Sectio ...

  6. 云原生时代的DevOps平台设计之道

    开发人员与运维人员是 IT 领域很重要的两大人群,他们都会参与到各种业务系统的建设过程中去.DevOps 是近年间火爆起来的一种新理念,这种理念被很多人错误的解读为"由开发人员(Dev)学习 ...

  7. 开源动态可监控线程池DynamicTp介绍

    前言 使用线程池 ThreadPoolExecutor 过程中你是否有以下痛点呢? 代码中创建了一个 ThreadPoolExecutor,但是不知道那几个核心参数设置多少比较合适 凭经验设置参数值, ...

  8. resultMap处理字段和属性的映射关系

    1.resultMap处理字段和属性的映射关系 若字段名和实体类中的属性名不一致,则可以通过resultMap设置自定义映射 <!-- resultMap:设置自定义映射 属性: id:表示自定 ...

  9. JPA入门学习集合springboot(一)

    1.在pom.xml文件中添加相应依赖 SpringData jpa和数据库MySql <!-- Spring Data JPA 依赖(重要) --> <dependency> ...

  10. 9.为url添加可选的后缀

    为url添加可选的后缀 在drf的机制中,响应数据的格式不再与单一内容类型连接,可以同时享有json格式或html格式,我们可以为api路径添加格式后缀的支持,使用格式后缀给我们明确指定了给定格式的u ...