`
xuyuanshuaaa
  • 浏览: 394890 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

http和https协议

 
阅读更多
什么是HTTPS: 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. 加密后数据量的影响. 1. 这个我用128bit 的RC2 测试了一下,加密后数量跟加密前基本相同 符:SSL的简介: SSL是Netscape公司所提出的安全保密协议,在浏览器(如Internet Explorer、Netscape Navigator)和Web服务器(如Netscape的Netscape Enterprise Server、ColdFusion Server等等)之间构造安全通道来进行数据传输,SSL运行在TCP/IP层之上、应用层之下,为应用程序提供加密数据通道,它采用了RC4、MD5 以及RSA等加密算法,使用40 位的密钥,适用于商业信息的加密。同时,Netscape公司相应开发了HTTPS协议并内置于其浏览器中,HTTPS实际上就是SSL over HTTP,它使用默认端口443,而不是像HTTP那样使用端口80来和TCP/IP进行通信。HTTPS协议使用SSL在发送方把原始数据进行加密,然 后在接受方进行解密,加密和解密需要发送方和接受方通过交换共知的密钥来实现,因此,所传送的数据不容易被网络黑客截获和解密。 然而,加密和解密过程需要耗费系统大量的开销,严重降低机器的性能,相关测试数据表明使用HTTPS协议传输数据的工作效率只有使用HTTP协议传输的十 分之一。假如为了安全保密,将一个网站所有的Web应用都启用SSL技术来加密,并使用HTTPS协议进行传输,那么该网站的性能和效率将会大大降低,而 且没有这个必要,因为一般来说并不是所有数据都要求那么高的安全保密级别,所以,我们只需对那些涉及机密数据的交互处理使用HTTPS协议,这样就做到鱼 与熊掌兼得。总之不需要用https 的地方,就尽量不要用。
分享到:
评论

相关推荐

    http和https协议1

    HTTP和HTTPS协议是互联网上两种常见的通信协议,用于在客户端(如浏览器)和服务器之间交换数据。HTTP(超文本传输协议)是最初设计用来传输HTML文档的协议,它基于TCP/IP协议,工作在应用层,主要特点是无状态,即...

    pb9 通过http、https协议post

    标题中的“pb9 通过http、https协议post”指的是使用Protocol Buffers(PB)版本9通过HTTP和HTTPS协议进行POST请求。Protocol Buffers是Google开发的一种数据序列化协议,它提供了一种高效、灵活的方式来定义数据...

    VC++(MFC)用通过HTTP和HTTPS协议进行文件上传和下载,两种方式都支持

    VC++ 进行HTTP和https协议进行文件的上传和下载,两种方式都支持,项目需要,网上找了好多资源,发现都不太好使,结合众家之所长,优化出这个封装类,有使用demo,用VS2010写的,可以直接将类的头文件和实现文件放到...

    HTTP和HTTPS协议分析工具WebScarab.zip #资源分享达人计划#

    WebScarab是一个用来分析使用HTTP和HTTPS协议的应用程序框架。其原理很简单,WebScarab可以记录它检测到的会话内容(请求和应答),并允许使用者可以通过多种形式来查看记录。WebScarab的设计目的是让使用者可以掌握...

    securityswitch:安全开关使各种ASP.NET应用程序可以自动在HTTP和HTTPS协议之间切换对页面资源的请求,而无需在HTML标记中编写绝对URL。

    安全开关使各种ASP.NET应用程序可以自动在HTTP和HTTPS协议之间切换对页面/资源的请求,而无需在HTML标记中编写绝对URL。 凭借已弃用的对ASP.NET 1.1(通过2.x版)的支持以及对ASP.NET 2和更高版本的全面支持,您...

    网络基础+HTTP-HTTPS协议介绍

    在互联网的世界里,网络基础和HTTP、HTTPS协议是构建网络通信的重要基石。了解这些概念将帮助我们更好地理解数据如何在互联网上流动,并确保信息的安全传输。 首先,我们要明白网络的基础——TCP/IP协议栈。TCP/IP...

    Spring Boot项目如何同时支持HTTP和HTTPS协议的实现

    Spring Boot项目同时支持HTTP和HTTPS协议的实现 Spring Boot项目如何同时支持HTTP和HTTPS协议的实现是企业级应用程序的常见场景。为了让Spring Boot应用程序同时支持HTTP和HTTPS两种协议,需要生成一份Certificate ...

    HTTP使用WEBLOGIC修改为HTTPS协议

    在这个场景下,我们将探讨如何使用WebLogic,一个由Oracle公司提供的Java应用服务器,来将HTTP转换为HTTPS协议。 首先,理解HTTPS的核心是SSL/TLS协议。SSL(Secure Sockets Layer)和TLS(Transport Layer ...

    Java获取http和https协议返回的json数据

    在Java中获取HTTP和HTTPS协议返回的JSON数据是一项非常基础且重要的技能,尤其是在进行网络通信以及与第三方API接口交互的场景中。HTTP(超文本传输协议)和HTTPS(HTTP安全版)都是用于从服务器获取资源的应用层...

    Spring Boot应用程序同时支持HTTP和HTTPS协议的实现方法

    Spring Boot 应用程序同时支持 HTTP 和 HTTPS 协议的实现方法 Spring Boot 应用程序同时支持 HTTP 和 HTTPS 协议是企业级应用程序的常见场景,本文探讨如何让 Spring Boot 应用程序同时支持 HTTP 和 HTTPS 协议。 ...

    HttpClientUtil工具类发送get和post请求,支持http和https,支持发送文件

    3. 支持http和https:HttpClientUtil需要能够处理HTTP和HTTPS协议。HTTP协议不涉及数据加密,而HTTPS协议在HTTP的基础上加入了SSL/TLS层,提供数据加密和服务器身份验证,确保通信安全。HttpClient支持SSL/TLS,只需...

    HTTP协议调试器

    2.可以查看到HTTP/HTTPS协议连接的详细过程和返回结果。3.允许GET/POST/HEAD/PUT四种连接方式。4.支持HTTP的Proxy代理。5.自动处理重定向Redirect功能。6.自动处理Cookie的接收和发送。7.可以自行设置和增加HTTP请求...

    C# HTTP/Https 请求demo

    1. **HTTP和HTTPS协议**: - HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,用于从Web服务器传输超文本到本地浏览器。 - HTTPS(安全超文本传输协议)是在HTTP的基础上加入了SSL/TLS层,提供数据...

    c++封装好的支持Http/https类,包含dll/lib

    本主题聚焦于一个C++封装好的类库,它支持HTTP和HTTPS协议,能够实现GET和POST请求,同时具备文件的下载和上传功能。 标题中的"cpp封装好的支持Http/https类"意味着这个类库是用C++编写的,并且已经完成了对HTTP和...

    https协议下的文件下载

    在IT行业中,网络通信的安全性至关重要,HTTPS协议作为HTTP的安全版本,被广泛应用于数据传输,尤其是涉及敏感信息如用户登录、文件下载等场景。本文将深入探讨“HTTPS协议下的文件下载”这一主题,并通过分析提供的...

    https_http_c++https_httphttps_https_httpsC++_源码.zip

    标题中的“https_http_c++https_httphttps_https_httpsC++_源码.zip”表明这是一个与HTTPS和HTTP协议相关的C++编程项目,可能包含了实现HTTPS和HTTP通信的源代码。描述中的内容与标题相同,进一步确认了这是一个包含...

    用CWinInet访问HTTP/HTTPS资源

    在Windows环境下,C++ MFC库提供了一个名为CWinInet的类,它允许开发者方便地访问HTTP和HTTPS协议的网络资源。CWinInet是Microsoft基础类库(MFC)的一部分,它封装了Windows的Internet API(WinInet API),使得...

Global site tag (gtag.js) - Google Analytics