HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议
要比http协议安全
HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议
它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。
它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安全全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。
HTTPS和HTTP的区别:
https协议需要到ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议
http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全
HTTPS解决的问题:
1 . 信任主机的问题. 采用https 的server 必须从CA 申请一个用于证明服务器用途类型的证书. 改证书只有用于对应的server 的时候,客户度才信任次主机. 所以目前所有的银行系统网站,关键部分应用都是https 的. 客户通过信任该证书,从而信任了该主机. 其实这样做效率很低,但是银行更侧重安全. 这一点对我们没有任何意义,我们的server ,采用的证书不管自己issue 还是从公众的地方issue, 客户端都是自己人,所以我们也就肯定信任该server.
2 . 通讯过程中的数据的泄密和被窜改
1. 一般意义上的https, 就是 server 有一个证书.
a) 主要目的是保证server 就是他声称的server. 这个跟第一点一样.
b) 服务端和客户端之间的所有通讯,都是加密的.
i. 具体讲,是客户端产生一个对称的密钥,通过server 的证书来交换密钥. 一般意义上的握手过程.
ii. 加下来所有的信息往来就都是加密的. 第三方即使截获,也没有任何意义.因为他没有密钥. 当然窜改也就没有什么意义了.
2. 少许对客户端有要求的情况下,会要求客户端也必须有一个证书.
a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码, 还有一个CA 认证过的身份. 应为个人证书一般来说上别人无法模拟的,所有这样能够更深的确认自己的身份.
b) 目前少数个人银行的专业版是这种做法,具体证书可能是拿U盘作为一个备份的载体.
HTTPS 一定是繁琐的.
a) 本来简单的http协议,一个get一个response. 由于https 要还密钥和确认加密算法的需要.单握手就需要6/7 个往返.
i. 任何应用中,过多的round trip 肯定影响性能.
b) 接下来才是具体的http协议,每一次响应或者请求, 都要求客户端和服务端对会话的内容做加密/解密.
i. 尽管对称加密/解密效率比较高,可是仍然要消耗过多的CPU,为此有专门的SSL 芯片. 如果CPU 信能比较低的话,肯定会降低性能,从而不能serve 更多的请求.
ii. 加密后数据量的影响. 所以,才会出现那么多的安全认证提示
相关推荐
本文将详细解析“osgb格式转obj,osg转osgb,osgb转ive,ive转obj”等相关知识点,以及如何使用相应的互转工具。 1. osgb格式: OSGB(Open Scene Graph Binary)是一种基于Open Scene Graph (OSG) 的二进制文件...
#### 二、HTTP与HTTPS的区别 1. **数据传输方式**: - **HTTP**:采用明文传输数据,意味着数据在传输过程中是可读的,这种传输方式适合传输非敏感信息。 - **HTTPS**:利用SSL/TLS加密算法对数据进行加密,确保...
首先,让我们了解一下HTTP和HTTPS的区别。HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,它允许用户从万维网服务器传输超文本文件。然而,HTTP协议的数据传输是明文的,存在被中间人攻击的风险。而...
文档"**F4get与post.docx**"可能会详细讲解GET和POST的区别,包括它们在处理数据量、安全性、可缓存性等方面的差异,以及何时选择使用GET或POST。 "**F5HTTP.docx**"则可能全面介绍HTTP协议的各个方面,包括但不...
### 字符类型与字符串类之间的区别和联系 在C++编程中,特别是在Windows应用程序开发过程中,经常遇到多种字符类型及字符串类的选择与转换问题。本文将深入探讨`char`、`TCHAR`、`CString`以及`std::string`之间的...
DELPHI7的开发者需要理解这两种编码的区别,并掌握如何利用工具或自定义代码来实现转换,以确保程序能正确地处理各种语言的文本。通过DLL的方式,可以创建一个通用的解决方案,使得不同语言的程序能够共享这个功能,...
一、HTML与CHM的区别 HTML(HyperText Markup Language)是一种用于创建网页的标准标记语言,它的特点是结构化和可扩展性,支持超链接,可以在Web浏览器中显示。而CHM格式则是一种压缩的、离线版的HTML文档集合,...
VLS格式,即Visual LISP Source文件,它是源代码形式的LISP程序,与VLX不同的是,VLS文件并未编译,而是以文本形式存在,方便开发者阅读、编辑和调试代码。当需要对LISP程序进行修改或理解其工作原理时,VLS文件是...
### PB中全角与半角互转函数 #### 背景介绍 在处理文本数据时,经常会遇到全角字符和半角字符的转换需求。全角和半角字符主要区别在于显示宽度不同:全角字符占用两个半角字符的空间。这种特性在东亚语言(如中文、...
首先,我们要理解二进制、16进制与浮点数的关系。计算机内部存储数字都是以二进制形式,而16进制是人类更易读的一种表示方式,1个16进制数可以表示4位二进制数。浮点数则是一种能够表示小数的数字格式,它由一个符号...
2. **protobuf与JSON的区别**:protobuf的数据存储方式比JSON更紧凑,适合网络传输和存储,因为它对数据进行二进制编码;而JSON是文本格式,易于阅读和编写,但占用空间较大。JSON的可读性使得它在调试和API交互中...
下面将详细介绍页面转向与页面转发的概念及其区别。 #### 一、页面转向 页面转向(Redirect),通常指的是通过`response.sendRedirect("xx.jsp");`这样的方式进行页面跳转。这种方式实际上相当于客户端重新发起了...
首先,我们要明白HTTP和HTTPS的主要区别。HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器。而HTTPS(安全超文本传输协议)是在HTTP的基础上加入了SSL/TLS...
本文将深入探讨易语言中的字节集(ByteSet)与字节数组(ByteArray)之间的快速互转,以及相关的源码实现和应用。 字节集是易语言中用于存储一系列字节的数据类型,它通常用于处理二进制数据,如读写文件、网络通信...
此外,存储过程、触发器和函数的语法也有区别。 2. **数据类型转换**: 两个系统中的数据类型存在差异。例如,MySQL的`VARCHAR2`对应Oracle的`VARCHAR2`,但MySQL的`TINYINT`在Oracle中可能是`NUMBER(3)`,`BLOB`...
首先,我们要理解这两种数组类型的区别。整形数组存储整数值,如int,通常用于计算和逻辑操作。而字符数组,即无符号字符数组(uchar array),通常用来表示文本数据或者二进制数据,如图像或音频流。在C/C++中,...
USB转232和USB转485驱动是计算机与串行通信设备间进行数据传输的重要工具。在本文中,我们将深入探讨这两种转换器的工作原理、应用领域以及相关的驱动程序。 USB转232驱动主要涉及到的是USB到RS-232串行通信的转换...
一、弧度与角度的基本概念 1. 弧度:弧度是长度单位,定义为当圆的半径长度等于弧长时,该弧所对的圆心角的大小。1弧度对应的角度大约是57.2958°。弧度是数学中常用的测量角的单位,特别是在三角函数和微积分中。 ...
首先,我们要理解`.txt`和`.bin`文件的区别。`.txt`文件是文本文件,通常包含可读的字符,使用ASCII或Unicode编码。它们用于存储文本数据,如文档、代码、日志等。而`.bin`文件是二进制文件,它可能包含任何类型的...
本项目提供了一个PHP工具类的Java实现,支持1981年至2100年的农历与公历互转功能,同时也包含了计算距离最近生日天数的功能。下面将详细解释其中涉及的关键知识点。 首先,`Lunar.java`文件很可能是核心的农历转换...