文档章节

https与http的简要区别

sting_bo
 sting_bo
发布于 2015/08/24 22:22
字数 867
阅读 101
收藏 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
Tomcat配置https及访问http自动跳转至https

https介绍: HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密...

漠、
2012/06/18
0
0
Java程序员面试的5点小技巧

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

李序锴
2017/11/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Nexus Repository Manager 搭建私有docker仓库

Nexus Repository Manager 搭建私有docker仓库 2018年05月08日 14:44:23 阅读数:115 1.下载nexus3的镜像: docker pull sonatype/nexus3 2.使用镜像启动一个容器: docker run -d --name n...

linjin200
8分钟前
0
0
大数据技术的发展趋势

大数据领域已经涌现出了大量新的技术,它们成为大数据采集、存储、处理和呈现的有力武器。这些技术下一步将如何发展?它们之中哪些技术 将广为流行?又会诞生哪些新的技术? 技术趋向多样化,...

董黎明
11分钟前
1
0
谷歌浏览器插件入门示例

实现:任何网址实现图片下载和获取当前域名的cookies的json字符串。 图片下载是给小白用的,可以选中批量下载,获取cookies 是为了方便程序员调试用。 获取cookies: git地址: https://gite...

NLGBZJ
13分钟前
2
0
152. Maximum Product Subarray - LeetCode

Question 152. Maximum Product Subarray Solution 题目大意:求数列中连续子序列的最大连乘积 思路:动态规划实现,现在动态规划理解的还不透,照着公式往上套的,这个问题要注意正负,需要...

yysue
13分钟前
0
0
IDEA工具 jdk,tomcat,maven 配置

设置JDK、tomcat、maven的版本 一、JDK      如果下拉列表没有,SDKS ---> + ----> 选择下载的JDK目录 ---> APPLY OK    二、tomcat 三、Maven    四、生成 git 本地创库...

君千殇520
13分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部