`
weitao1026
  • 浏览: 1048130 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

http和https的关系

阅读更多
在URL前加https://前缀表明是用SSL加密的。你的电脑与服务器之间收发的信息传输将更加安全。 Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

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 性能比较低的话,肯定会降低性能,从而不能server 更多的请求.
ii. 加密后数据量的影响. 所以,才会出现那么多的安全认证提示.
分享到:
评论

相关推荐

    .net中为 SSL/TLS 安全通道建立信任关系

    信任关系是指客户端和服务器之间的信任关系,客户端需要确保服务器的身份,以确保数据的安全传输。在 .NET 中,可以使用以下方式建立信任关系: 1. 使用证书:服务器需要提供一个数字证书,以证明自己的身份。...

    资源含一些windows上的curl库,包含32位和64位,并含有一个证书,C语言实现http和https客户端会使用到

    【标题】中的知识点主要涉及到的是`libcurl`库在Windows平台的应用,以及它与`http`、`https`协议和`pem`证书的关系。`libcurl`是一个强大的开源库,用于处理各种网络协议,包括`HTTP`和`HTTPS`。在Windows系统上,...

    http-->https后端Java接口spring boot项目配置文件及生成证书的方法.7z

    6. **SSH相关**:标签中提到了SSH,虽然SSH(Secure Shell)主要用于远程登录和命令执行,但与HTTPS的配置没有直接关系。在Spring Boot中,如果你的应用需要SSH访问,可以使用Spring Cloud Config Server或JGit等...

    Delphi通过https接口post数据

    这种方法的另外一个好处是不用再调用indy引用的两个dll文件(libeay32.dll,ssleay32.dll),这两个文件和indy的版本还需要配套,比较麻烦,而且就是匹配了我也没有测试成功,可能和对方服务器的环境有关系,感觉...

    所有的网络协议关系图

    “关系”是指各协议之间的层次结构和依赖关系,例如应用层的HTTP、FTP等协议依赖于传输层的TCP或UDP;最后,“图”指明了信息的呈现形式,便于理解。 在压缩包内的“所有的网络协议关系.pdf”文件中,可能会包含...

    qt5.1类关系图

    6. **QNetworkAccessManager** 和 **QNetworkRequest**:这些类处理网络通信,可以用来下载、上传数据,或者进行HTTP/HTTPS请求。 7. **QSqlDatabase** 和 **QSqlQuery**:这些类用于数据库操作,支持多种数据库...

    httpclient使用NTLM协与https协议访问双向认证站点

    关于工具的使用,可以借助像Wireshark这样的网络嗅探工具来观察HTTP/HTTPS通信过程,以便调试和优化。同时,使用IDEA等集成开发环境的插件,如HTTP Client插件,可以方便地发送和测试HTTP请求,这对于快速验证代码...

    基于Neo4j的《水浒传》人物关系可视化及问答系统python源码+说明文档+PPT+示例图片.zip

    实现了根据用户输入的人物名称快速返回其人物关系的功能,项目功能包括三个主要部分:人物关系检索、人物关系全貌展示和人物关系问答。对于用户提交的问题,首先利用哈工大的语言技术处理平台LTP进行分词,提取...

    WAP订购关系管理系统接口规范

    - 接口调用协议:规定如何发起和响应接口请求,如HTTP/HTTPS请求方法、URL结构、请求头等。 - 接口版本控制:方便系统升级和维护,保持向后兼容性。 理解并遵循WAP订购关系管理系统接口规范,对于开发和运营收费WAP...

    CAS连接Oracle并且去掉Https,应用Http

    而Oracle则是一款著名的商业关系数据库管理系统,广泛应用于各种企业级应用中。当我们需要在CAS 4.1.4版本下连接Oracle数据库,并且希望去除HTTPS,改为HTTP进行通信时,我们需要考虑以下几个关键知识点: 1. **CAS...

    PHP简单实现HTTP和HTTPS跨域共享session解决办法

    在Web开发中,由于HTTP和HTTPS协议的安全性差异,跨域共享session往往成为开发者面临的一个挑战。本篇文章将探讨如何使用PHP实现HTTP和HTTPS之间的session共享,以解决cookie失效问题。 首先,理解session和cookie...

    httpclient和httpmime的jar包

    这个库提供了丰富的功能,包括支持HTTP/1.1,HTTPS,连接池管理,重试策略,身份验证,以及自定义请求和响应处理器等。HttpClient 4.5.2是该库的一个稳定版本,修复了之前版本的一些问题,并增加了新的特性。 2. **...

    计算机网络所有协议关系

    在理解计算机网络的所有协议关系时,我们首先要掌握网络分层模型,最常见的是OSI七层模型和TCP/IP四层模型(或五层模型,视具体解释)。 1. **OSI七层模型**: - 应用层:提供用户直接使用的应用服务,如HTTP、FTP...

    基于java编写的客户关系管理系统

    【基于Java编写的客户关系管理系统】是一款专为初学者和进行论文设计的人员设计的Web应用程序,它利用了SSH(Spring、Struts2和Hibernate)框架来构建一个全面的管理平台。SSH框架是Java Web开发中常用的一个集成...

    VC连接https_ssl

    HTTPS通过在HTTP协议之上添加一层加密处理,保证了数据在传输过程中的私密性和完整性。HTTPS主要用于网页浏览、在线交易、登录验证等需要保护用户隐私信息的场景。 2. **SSL**:SSL是建立在TCP/IP协议之上的安全...

    c++ 发送https POST请求并获取返回数据(包含appKey与appSecret)

    libcurl是一个强大的开源库,支持多种协议,包括HTTP和HTTPS。首先,你需要在你的项目中包含libcurl库。安装完成后,可以通过以下步骤来发送POST请求: 1. **初始化libcurl**: 在程序开始时,你需要调用`curl_...

    计算机网络通讯协议关系图(中文珍藏版)矢量图

    4. HTTPS(HTTP Secure):HTTPS在HTTP的基础上增加了SSL/TLS层,提供了数据加密、服务器身份验证和消息完整性检查,确保网络通信的安全。 5. FTP(File Transfer Protocol):FTP用于在网络上进行文件传输。 6. ...

    esp32_https_server:ESP32 Arduino Core的替代ESP32 Web服务器实现,支持HTTPS和HTTP

    特征同时提供对HTTP和/或HTTPS的支持在可以绑定到URL的回调函数中处理请求,例如在Express或Servlet中。 处理HTTP内容并为其提供简单API的抽象。 访问参数,标头,HTTP基本身份验证等。 使用中间件功能作为对每个...

    upduck:与DuckDNS集成的简单HTTP和HTTPS静态文件服务器

    暴躁Upduck是与集成的简单HTTP和HTTPS静态文件服务器。 它旨在通过HTTPS连接在本地网络之外快速共享静态文件,但也可以在本地网络中使用(不使用HTTPS)。 免责声明:该项目与DuckDNS或Let's Encrypt没有关系,并且...

    Android 连接MQL 等关系型数据库

    Android MQL 关系型 数据库相关项目,由于原链接:http://download.csdn.net/source/3344919 是在公司上传的,已经被加密,所以旧链接已经失效,请下载此链接下相应项目(经已解密),有疑问,请联系:qq:343827585。...

Global site tag (gtag.js) - Google Analytics