Http请求和Https请求的区别

HTTP(Hypertext Transfer Protocol Vertion )超文本传输协议,被用于在web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截获了传输报文,就可以读取内容,所以不建议传输一些敏感信息。

为了解决这一缺陷,需要使用另一种协议,安全套接字超文本传输协议(HTTPS),为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL 协议,SSL依靠证书来检验服务器的身份,并且还为客户端与服务器之间的通信加密。

每次开网页时为什么要出现“http://”呢? 其实这个道理非常简单,因为你要获得网络上超文本信息,那么你肯定要遵循其超文本传输的规范。

基本概念:

HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

  HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

HTTP与HTTPS的区别:

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

HTTPS和HTTP的区别主要如下:

  1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

  2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

  3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

客户端在使用HTTPS方式与web服务器通信时有以下几个步骤:

(1)客户端使用HTTPS的URL访问web服务器,要求与web服务器建立SSL连接

(2)web服务器收到客户端请求后,会将网站的证书信息(包含公钥)传送给客户端

(3)客户端与服务器之开始协商SSL连接的安全等级,也就是信息加密的等级

(4)客户端根据双方同意的安全等级,建立会话密钥,然后利用公钥对会话密钥加密,并传送给服务器

(5)服务器利用自己的私钥解密出会话密钥

(6)服务器利用会话密钥与客户端进行通信

HTTPS的优缺点:

优点:是加密传输、身份认证的网络协议,比HTTP安全,防止数据在传输过程中被窃取、改变,确保完整性。增加攻击成本。

缺点:不是绝对安全,加密范围有限、握手阶段比较费时、增加耗电、不如HTTP高效、需要花钱、通常需要绑定ip

 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://www.cnblogs.com/vegetableDD/p/11674763.html

时间: 2024-12-07 00:31:05

Http请求和Https请求的区别的相关文章

Ajax相关——get请求和post请求的区别

一.完整的URL由以下几部分组成: scheme:通信协议,常用的有:http/ftp. host:主机,服务器(计算机)域名或IP地址 port:端口,整数,可选,省略时使用默认端口,http的默认端口是80. path:路径,由零或多个"/"符号隔开的字符,一般用来表示主机的一个目录或者文件地址 query:查询,可选,用于给动态网页(如用CGI.ISAPI.PHP/ASP/JSP/ASP.NET等技术制作的网页)传递参数,用"&"符号隔开,每个参数的名

普通请求和ajax请求的区别

普通请求和ajax请求的区别? 下面的action返回一个json文件,文件内容为sts.*,data1

浏览器的get请求和post请求的区别

GET 请求和 POST 请求: 1). 使用GET方式传递参数: ①. 在浏览器地址栏中输入某个URL地址或单击网页上的一个超链接时,浏览器发出的HTTP请求消息的请求方式为              GET. 例如:  http://localhost:8080/20161106-JavaWeb-Servlet/index.html 或<a href="input.html"></a>②. 如果网页中的<form>表单元素的 method 属性明

python——请求服务器(http请求和https请求)

一.http请求 1.http请求方式:get和post get一般用于获取/查询资源信息,在浏览器中直接输入url+请求参数点击enter之后连接成功服务器就能获取到的内容,post请求一般用于更新资源,通过form表单或者json.xml等其他形式提交给服务器端,然后等待服务器端给返回一个结果的方式(这个返回结果一般就是被修改之后的是否成功的状态,或者是修改后的最新数据table等). http请求,不论是get还是post请求,都会包含几个部分,分别是header,cookie,get会有

发送http请求和https请求的工具类

package com.haiyisoft.cAssistant.utils; import java.io.IOException;import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import org.apache.http.HttpEntity; import org.apache.ht

Charles抓包手机请求和Https请求

1.打开Charles,在Proxy里面点击Proxy Settings 2.在Proxy Settings的 Proxies添加端口 3.设置手机WLAN(注意Charles和手机连接的WIFi需在同一局域网) 4.长按连接的WIFI,出现修改网络,点击修改网络,点击显示高级选项 5.点击代理,选择手动 6.填写代理服务主机名(Charles安装电脑的ip)和代理服务器端口(Proxies添加端口),代理服务器端口需要和Proxies添加端口一致 7.以上为设置手机代理的步骤,设置成功后,如果

post请求和get请求的区别

1:如果表单是以post方式发送,那么表单中的数据会放在请求报文体中,发送到服务端.但是如果是以get方式提交表单,那么表单中用户输入的数据都是以URL地址的方式发送到服务端. 2:在服务端接收数据时,如果是以post方式发送过来的,那么用Request.Form来接收,否则如果以URL地址(get),那么服务端接收是 通过Request.QueryString来接收. 3:以post方式发送数据比以get方式发送表单中的数据要安全,所以以后在做登录,注册时都要以post方式发送表单中的数据.

get请求和post请求的区别

1.get请求是通过url地址栏来传递参数的,而post请求通过报文体来传递参数的 2.get请求可以在浏览器地址栏中看到请求参数,而post请求看不到 3.get请求对传递的参数有限制,最多允许255个字符,所以数据比较大的话我们使用post请求! 4.在表单中一般我们都使用post请求,除了在表单中,页面中的其它地方基本上都是使用get请求!

Ajax中Get请求和Post请求的区别

1.使用Get请求时,参数在URL中显示,而使用Post方式,则不会显示出来,故post方法更安全(同第四条). 2. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据.两种方式的参数都可以用Request来获得. 3.get传送的数据量较小,不能大于2KB.post传送的数据量较大,一般被默认为不受限制.但理论上,因服务器的不同而异. 4.get安全性非常低,post安全性较高. 注: get方法: