【学习笔记】HTTP和HTTPS

HTTP虽然被广泛应用但是还是存在缺陷:

  • 通信使用明文,内容易被窃听;
  • 不验证对方身份信息,身份易被伪装;
  • 无法确保报文完整性,可能遭受篡改。

1.加密处理可以防止被窃听:

通信加密

  HTTP协议通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全层传输协议)的组合使用可以加密HTTP通信内容。

  与SSL组合使用的HTTP被成为HTTPS

内容加密

  把HTTP报文内容进行加密处理,。由于通信线路没经过加密仍然有被篡改的风险。

2.不验证对方身份信息身份易被伪装

  • 无法确定请求发送至目标的Web服务器是否按是真实意图返回响应的那台服务器。可能是伪装服务器。
  • 无法确定响应返回到的客户端是否是按真实意图接受响应的客户端。有可能是已伪装的客户端。
  • 无法确定正在通信的对方是否具备访问权限。因为某些Web服务器上保存重要信息,只想给特定用户通信的权限。
  • 无法判定请求来自何方、出自谁手。
  • 即使是无意义的请求也照单全收。无法阻止海量请求下的DoS攻击。

验证信息可以通过查明对方的证书的手段来确保对方身份。

3.无法确保报文完整性可能遭受篡改

  HTTP无法保证发出的请求/响应和收到的请求/响应是否一致。也就是说当你下载一个文件的时候,实际下载到你电脑上的文件也许和服务器上的文件并不一致,这是因为内容在客户端未察觉的状态下被篡改了。如此遭受到拦截并篡改的攻击称为中间人攻击(MITM)。

HTTP+加密+证书认证+完整性保护=HTTPS

(完)

时间: 12-23

【学习笔记】HTTP和HTTPS的相关文章

selenium学习笔记(2) 测试https网站

问题: selenium启动firefox的时候,会使用一个全新的profile作为启动的profile,即手工在firefox中的设置都无法使用. 解决: 找到手动启动firefox时的profile目录,测试程序中通过FirefoxProfile传递给WebDriver 1. 查看profile目录 命令行方式,进入firefox安装目录(多为: C:\Program Files (x86)\Mozilla Firefox),执行 firefox.ext -P 或 firefox.exe -

java/android 设计模式学习笔记(14)---外观模式

这篇博客来介绍外观模式(Facade Pattern),外观模式也称为门面模式,它在开发过程中运用频率非常高,尤其是第三方 SDK 基本很大概率都会使用外观模式.通过一个外观类使得整个子系统只有一个统一的高层的接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节.当然,在我们的开发过程中,外观模式也是我们封装 API 的常用手段,例如网络模块.ImageLoader 模块等.其实我们在开发过程中可能已经使用过很多次外观模式,只是没有从理论层面去了解它. 转载请注明出处:http://bl

java/android 设计模式学习笔记(10)---建造者模式

这篇博客我们来介绍一下建造者模式(Builder Pattern),建造者模式又被称为生成器模式,是创造性模式之一,与工厂方法模式和抽象工厂模式不同,后两者的目的是为了实现多态性,而 Builder 模式的目的则是为了将对象的构建与展示分离.Builder 模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程.一个复杂的对象有大量的组成部分,比如汽车它有车轮.方向盘.发动机.以及各种各样的小零件,要将这些部件装配成一辆汽车,这个装配过

java/android 设计模式学习笔记(一)---单例模式

前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使用的时候也会有一些坑. PS:对技术感兴趣的同鞋加群544645972一起交流 设计模式总目录 java/android 设计模式学习笔记目录 特点 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 单例模式的使用很广泛,比如:线程池(threadpool).缓存(cache).对

LoadRunner学习笔记--未经排版

LoadRunner学习笔记 并发用户数量: 与服务器进行交互的在线用户数量 请求响应时间 从客户端发送请求到得到整个响应的时间 一般包括网络响应时间+server的响应时间 事务相应时间 完成这个事务所用的时间 是性能测试中重点关注的指标 吞吐率 单位时间在网络上传输的数据量(吞吐量:网络上传输的数据总量) 指从server返回客户端的 是衡量网络性能的主要指标 TPS 每秒钟系统能够处理事务的数量 点击率 每秒发送的HTTP请求的数量 点击率越大对server的压力也就越大 资源利用率 对不

Sass学习笔记(补充)

阅读目录 1. Sass和SCSS的区别 2. @while循环 3. @at-root 4. @content 5. 凸显注释 6. CSS输出样式 7. 重置浏览器样式 8. Sass调试和@debug命令.@warn命令 9. 使用Sass时的注意事项 相关链接:Sass学习笔记前篇 Sass关于颜色函数的乐趣 在Sass学习笔记前篇,记载了Sass安装.基本用法.编程语法,在这篇,将补充在前篇未记载的知识. 1. Sass和SCSS的区别 参考链接:http://sass.bootcss

Vue.js学习笔记:在元素 和 template 中使用 v-if 指令

f 指令 语法比较简单,直接上代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title></title> <script src="https://cdn.bootcss.com/vue/2.2.

Highway LSTM 学习笔记

Highway LSTM 学习笔记 [email protected] http://www.cnblogs.com/swje/ 作者:Zhouwan  2016-4-5   声明 1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的.具体引用的资料请看参考文献.具体的版本声明也参考原文献. 2)本文仅供学术交流,非商用.所以每一部分具体的参考资料并没有详细对应.如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除. 3)本人才疏学浅,整理总结的时候

GIT & GitHub 学习笔记

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活, 干完后,需要把自己做完的活推送到中央服务器.集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网 速慢的话,就纳闷了. Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑 上.既然每个人的电脑都有一个完整的版本库

Sass学习笔记

阅读目录 一. Sass安装 1.1 Ruby安装 1.2 运行gem命令 1.3 安装Sass 二. Sass基本用法 2.1 导入 2.2 注释 2.3 变量 2.4 嵌套 2.5 继承 2.6 占位符 2.7 混合宏 三. Sass编程 3.1 数学计算 3.2 条件 3.3 循环 3.4 函数 Sass被称为"CSS预处理器",就是用一种编程的思想去写CSS样式表.在还没接触Sass的时候,很多人都不愿意去了解,认为都会了CSS,为什么还要去写Sass,Sass最终生成的还是C