文档章节

https与http的简要区别

sting_bo
 sting_bo
发布于 2015/08/24 22:22
字数 867
阅读 102
收藏 1
    背景:我不是专业运维,且毕业从事PHP才刚一年,对Linux服务器也是在摸索中,为了熟悉Linux,我在Windows和Linux之间切换了无数次,最后终于在日常使用中都适应Linux了,一如当初在sublime和vim,svn和git,拼音和五笔之间来回切换;
    之前公司做的产品是以ASP形式提供给客户使用,所以每签一个客户,都需要客户提供他们的服务器给我司,然后我再去客户的服务器上给布署环境,后来公司领导决定做SaaS,要求之一是要把http换为https,为了信息安全,然后我就开始各种搜索,最后如愿以偿,但实现不是重点,重点是某天有人问我,https和http有什么区别时,我回答:一个加密一个没有加密,https更安全。别人接着问为什么?我无言了。此后我甚至怀疑我配置的https到底有没有作用,后来我才去详细的学习,第一次写博文,而且是照着自己的理解,肯定有不对的地方,请大家斧正,非常感谢!

    http是一种无状态协议,在OSI七层模型(由底到高:物理层,数据链路层,传输层,网络层,会话层,表示层,应用层)的最上层:应用层,浏览器向服务器通过http协议发送请求(request),然后服务器响应(response),其中在网络层会有TCP协议,有大家熟悉的"三次握手",相关的还有UDP协议,大家可以了解一下(OSI七层模型以后会单写)。
    一次成功的http请求包含四步:
        1,建立连接;
        2,客户端发送http请求头;
        3,服务器响应生成结果返回;
        4,服务器端关闭连接,客户端解析,渲染页面;
    https与http类似,只是在传递信息过程中采用了非对称和对称两种加密方式,使用前提是你申请了免费的或是购买了受浏览器信任的证书,其实就是一对密钥(公钥和私钥,不知我这么理解有没有错误),配置完成之后(这也可以写个小博文),打开网页就可以看到浏览器左上角显示https且是绿色的;
    一次成功的https请求:
        1,浏览器请求服务器;
        2,服务器返回公钥(下面简称pub);
        3,浏览器检查pub是否有效,有效,生成一个随机密钥(下面简称key),用pub把key加密后传递给服务器(data1);
        4,服务器用私钥(下面简称pri)解密data1,获取key,把要返回的数据有key加密(data2)后返回给客户端;
        5,客户端用key解密data2,获取返回的数据;
可以用下面这张图来说明(图是找的):

https简要原理图

© 著作权归作者所有

共有 人打赏支持
上一篇: 逆波兰表达式
下一篇: 逆波兰表达式
sting_bo
粉丝 3
博文 2
码字总数 1714
作品 0
朝阳
高级程序员
私信 提问
HTTP与HTTPS区别/HTTPS知识点

关于2017年AppStore新提交应用必须打开ATS的要求只剩下一个多月了,相信大部分开发者都已经完成了从http到https的升级。当然了,现在谁也不知道如果依旧关闭ATS,审核的时候会发生什么。挑战...

秦无炎
2016/12/12
1
0
面试总结(php)

面试总结 博主(现在)是大三下学期,由于学校大四可以全nian实习,于是就开始了实习之路 在招聘网站上给盛大游戏(php实习生)投递了简历,因为当时盛大游戏在上海,而我本人是在山东,当时想多找...

eatnothing
2016/04/24
339
4
《小印记》iOS源码分享--HTTPS配置篇

笔者前不久终于发布了自己的APP《小印记》,在此分享一些iOS源码,如果读者学到了有用的东西,希望能前往App Store下载《小印记》支持一下笔者,谢谢! 《小印记》iOS源码分享--极光推送实践...

_子墨
2017/03/22
0
0
Java程序员面试的5点小技巧

程序员面试的时候掌握更多的技巧,就能在面试时更加得心应手,更顺利的拿到理想的offer,本文为大家介绍一下java面试的小技巧,希望能对大家的面试有帮助: 1. 笔试 一般是笔试,笔试这个环节...

李序锴
2017/11/09
0
0
JDK,JRE和JVM之间的区别

JDK,JRE和JVM之间的区别 易百教程移动端:请扫描本页面底部(右侧)二维码并关注微信公众号,回复:"教程" 选择相关教程阅读或直接访问:http://m.yiibai.com 好多开发者学习 Java 编程有若干...

LYQ1990
07/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

windows下让 jar 在后台运行的办法

windows下 运行 java jar 不出现 命令行 窗口 新建一个披处理 run.bat,内容如下 @echo off start javaw -jar xx.jar exit 双击运行即可。...

glen_xu
14分钟前
1
0
jdk1.8 lambda stream 指定的对象属性进行去重

原因:因为Stream提供的distinct()方法只能去除重复的对象,无法根据指定的对象属性进行去重,可以应付简单场景。 解决方案: //去重,共同信息保存到bizPledgeSupplierVOs里bizPledgeSupp...

INSISTQIAO
16分钟前
0
0
vue nextTick深入理解---vue性能优化、DOM更新时机、事件循环机制

定义[nextTick、事件循环] nextTick的由来: 由于vue的数据驱动视图更新是异步的,即修改数据的当下,视图不会立即更新,而是等同一事件循环中的所有数据变化完成之后再统一进行视图更新。...

JamesView
24分钟前
1
0
常用汉字编码

GB2312 仅包含大部分的常用简体汉字,但已经不能适应现在的需要; GB13000 由于GB2312的局限性,国家标准化委员会制定了GB13000编码; 但由于当时的硬件和软件都已经支持了GB2312,而GB13000...

晨猫
26分钟前
1
0
纳尼?我的Gradle build编译只要1s

https://juejin.im/post/5c00ec39e51d4555ec0394f6

SuShine
27分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部