原文:http://www.mahaixiang.cn/internet/1233.html

一、HTTP协议

HTTP协议:Hyper Text Transfer Protocol(超文本传输协议),是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览的传送协议,是一个客户端和服务器端请求和应答的标准(TCP),是互联网上应用最为广泛的一种网络协议,它可以使浏览器更加高效,使网络传输减少。

HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)。

使用TCP端口为:80

二、HTTPS协议

由于使用HTTP协议传输隐私信息非常不安全,于是网景(Netscape)公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,由此诞生了HTTPS协议。

HTTPS协议:Hyper Text Transfer Protocol over Secure Socket Layer,安全的超文本传输协议。HTTP协议直接放置在TCP协议上,而HTTPS提出在HTTP和TCP中间加上一层加密层从发送端看,这一层负责把HTTP的内容加密后送到下层的TCP,从接收方看,这一层将TCP送来的数据解密还原成HTTP的内容。SSL协议是主要用于WEB的安全传输协议,它在HTTPS协议栈中负责实现加密层。因此,一个HTTPS协议栈大致是:


使用TCP端口默认为:443

HTTPS加密、验证过程:

简单说来,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全。

HTTPS工作原理:

1、客户端发起HTTPS请求:用户在浏览器里输入一个https网址,然后连接到server的443端口

2、服务器的配置:采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl就是个不错的选择,有1年的免费服务)。这套证书其实就是一对公钥和私钥。

3、传送证书:这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

4、客户端解析证书:这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密。

5、传送加密信息:这部分传送的是用证书加密后的随机值,目的就是让服务器得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

6、服务端解密信息:服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

7、传输加密后的信息:这部分信息是服务端用私钥加密后的信息,可以在客户端被还原

8、客户端解密信息:客户端用之前生成的私钥解密服务端传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据也束手无策。

三、HTTP和HTTPS协议的区别

1、https协议需要CA申请证书,一般免费证书较少,因而需要一定费用

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443

4、http的连接很简单,是无状态的;https协议是由ssl+http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全

HTTP与HTTPS——密码学笔记(九)相关推荐

  1. IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法...

    IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法 Author:hmjiangqq Email:jiangqqlmj@163.com ...

  2. 密码学笔记——eval(function(p,a,c,k,e,d) 加密破解

    密码学笔记--eval(function(p,a,c,k,e,d) 的加密破解 例题: 小明某天在看js的时候,突然看到了这么一段代码,发现怎么也理不出代码逻辑,你能帮帮他吗? 格式:SimCTF{} ...

  3. python3.4学习笔记(九) Python GUI桌面应用开发工具选择

    python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者 http://www.admin10000.com/document/9 ...

  4. 吴恩达《机器学习》学习笔记九——神经网络相关(1)

    吴恩达<机器学习>学习笔记九--神经网络相关(1) 一. 非线性假设的问题 二. 神经网络相关知识 1.神经网络的大致历史 2.神经网络的表示 3.前向传播:向量化表示 三. 例子与直觉理 ...

  5. JavaScript学习笔记(九)(验证框架,layer弹出层)

    JavaScript学习笔记(九) 一.jQuery Validate验证框架 1.引入相关插件路径 2. 修改一些规则 3. 自定义验证规则 4.异步验证 整体代码 二.layer弹出层 1.引入相 ...

  6. 谷粒商城--商品发布--笔记九

    谷粒商城–商品发布–笔记九 1.基本信息页面 1.选择分类后品牌列表不显示问题 原因 使用到了PubSub 但是没有依赖 解决 npm install --save pubsub-js 在src下的m ...

  7. 数学物理方法pdf_中考状元笔记九科(语文+数学+物理+化学+英语+历史+地理+政治+生物)(高清PDF);...

    初中学霸提升成绩的16个习惯 1.记忆习惯.一分钟记忆,把记忆和时间联系起来,这里还含有注意的习惯. 一分钟写多少字,读多少字,记多少字,时间明确的时候,注意力一定好.把学习任务和时间联系起来,通过一 ...

  8. ROS学习笔记九:用C++编写ROS发布与订阅

    ROS学习笔记九:用C++编写ROS发布与订阅 本节主要介绍如何用C++编写一个简单的ROS发布与订阅. 编写发布节点 在之前创建的例子beginner_tutorials软件包中,在其目录下的src ...

  9. 《MFC游戏开发》笔记九 游戏中的碰撞判定初步怪物运动简单AI

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9374935 作者:七十一雾央 新浪微博:http:// ...

最新文章

  1. 从安全视角对机器学习的部分思考
  2. HDLBits 系列(18) BCD码计数器的设计
  3. [转]VS2010安装说明及所有安装出错的解决办法
  4. 【Android 应用开发】Android中的回调Callback
  5. OGC之路(1) 之 WMS标准学习总结
  6. C# XML反序列化与序列化举例:XmlSerializer(转)
  7. JQuery:deferred对象的方法
  8. [学习笔记]上下界网络流
  9. 三调数据库及DLTB各个字段含义
  10. HDU1251 统计难题 trie树
  11. linux纯终端下中文输入,Ubuntu 14.04 终端模式下中文输入 听歌
  12. ERR Slot 741 is already busy (Redis::CommandError)
  13. 2021最新Java后端面经合集 | 阿里腾讯百度字节
  14. 美团赴抖音之“约”:让本地生活补贴大战来得更猛烈些?
  15. 东风日产全新劲客首次搭载BOSE PERSONAL PLUS音响;艾比森举办秋季发布会推出多个新品 | 全球TMT...
  16. Linux 777 权限表示什么,各数字又是什么含义?
  17. 图形界面介绍Create Route Blockage
  18. InCallContrller内部逻辑
  19. [USACO12FEB]牛券Cow Coupons
  20. Fiddler无法抓手机APP数据包的解决办法

热门文章

  1. node mysql 多个_使用Node.js处理多个MySQL查询
  2. ML之DT:基于DT决策树算法(对比是否经特征筛选FS处理)对Titanic(泰坦尼克号)数据集进行二分类预测
  3. ML之NBLoR:利用NB(朴素贝叶斯)、LoR(逻辑斯蒂回归)算法(+CountVectorizer)对Rotten Tomatoes影评数据集进行文本情感分析—五分类预测
  4. ML之DT:基于简单回归问题训练决策树(DIY数据集+七种{1~7}深度的决策树{依次进行10交叉验证})
  5. HighNewTech:带你解读云计算、雾计算(Fog Computing)、边缘计算(Edge Computing)的前世今生
  6. DL之simpleNet:利用自定义的simpleNet(设好权重)对新样本进行预测、评估、输出梯度值
  7. Py之urllib2:Python库之urllib、urllib2、urllib3系列简介、安装、使用方法之详细攻略
  8. Gradient Tree Boosting:梯度提升树详解
  9. About The FTP
  10. js中的arguments 参数