HTTP和HTTPS连接是如何建立的 (http和https的区别)

教程大全 2025-07-07 18:16:47 浏览

HTTPS指的是超文本传输安全协议。HTTPS是在HTTP的基础上和ssl/tls证书结合起来的一种协议,保证了传输过程中的安全性,减少了被恶意劫持的可能.很好的解决了http的三个缺点(被监听、被篡改、被伪装)那么HTTP和HTTPS连接是如何建立的?简单的理解,HTTPS就是将HTTP中的传输内容进行了加密,然后通过可靠的连接,传输到对方的机器上。

HTTP和HTTPS连接是如何建立的?

1、建立连接

HTTP和HTTPS都需要在建立连接的基础上来进行数据传输,是基本操作

当客户在浏览器中输入网址后,浏览器会在浏览器DNS缓存,本地DNS缓存,和Hosts中寻找对应的记录,如果没有获取到则会请求DNS服务来获取对应的ip

当获取到ip后,TCP连接会进行三次握手建立连接

2、tcp的三次挥手和四次挥手

过程简图

3、三次握手(建立连接)

***次:建立连接时,客户端发送SYN包(syn=j)到 服务器 ,并进入SYN_SEND状态,等待服务器确认;

第二次:服务器收到SYN包,向客户端返回ACK(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RCVD状态;

第三次:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据,也就是ESTABLISHED状态。

三次握手保证了不会建立无效的连接,从而浪费资源。

4、四次握手(断开连接)

***次:TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。

第二次:服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

第三次:服务器关闭客户端的连接,发送一个FIN给客户端。

第四次:客户端发回ACK报文确认,并将确认序号设置为收到序号加1。

5、 HTTP请求过程

SSL加密建立

HTTPS是如何建立连接的,又是怎么进行加密的?

那HTTPS是如何建立连接的呢,怎么商量好加密密码的呢?HTTPS 同 HTTP 一样,首先建立起 TCP 连接,但是建立好之后并不是立即发出请求,索要具体的资源,而是先和对方商量加密的密码。商量的加密密码的过程就是建立 TSL 连接的过程。

http和https的区别

其实并没有建立真实的连接,只是在刚刚建立好的 TCP 连接上,包裹上一层加密协议而已。但是也被形象的称作连接建立。具体建立方式如下:客服端发给服务器一个HELLO包,里面有我支持的加密协议列表。服务器收到后发送也给客户端发送一个HELLO数据包,数据包内包涵服务器挑选的加密算法,还包含自己的数字证书信息。

你拿到他的数字证书信息之后就需要去向 CA 校验证书,校验成功后也知道了对方的公钥,就该通知服务器,我们以后对称加密的密码是多少,当然,这个密码是要用公钥加密的。在这条消息发送之前,客户端会先发送一条消息,告诉服务器,我下一个消息将使用你刚刚挑选的加密协议进行加密了,下一个消息是加密后的哦,不要搞错。之后将对称加密的密文发给服务器。服务器接收到之后,会根据对称密钥生成一系列复杂的加密算法,在传输给客服端,客户端收到后会给服务器发送一个 Finished Message ,服务器收到消息后也回一个 Finished Message。这时,我们终于完成了加密的准备工作,一切加密方式和密钥都商量好了,终于可以传输数据了。至此,TSL 建立连接的过程结束。

目前网站最安全的保护方式就是为网站部署SSL证书,SSL证书为我们提供了更加安全、隐私、健康的互联网环境,SSL证书对传输中的数据进行加密,防止黑客的盗取甚至篡改数据,保护用户的个人信息及企业机密数据。


http是什么意思

超文本传输协议

如何让http跳转到https

如何设置http自动跳转到https?apache环境下,配置好https后,需要设置url重定向规则,使网站页面的http访问都自动转到https访问。 1、先打开url重定向支持1)打开Apache/conf/,找到 #LoadModule rewrite_module modules/mod_ 去掉#号。 2)找到你网站目录的段,比如我的网站目录是c:/www,找到www”>…修改其中的 AllowOverride None 为 AllowOverride All3)重启apache服务2、设置重定向规则1)在你网站目录下放一个文件。 windows环境下,不能把文件直接改名为,会提示你必须输入文件名。 所以我们先新建一个“新建文本文档”文档,记事本打开,选择另存为,保存类型选择“所有文件(*.*)”,文件名输入“”,保存。 这样便生成了一个文件。 2)编辑器打开文件,写入如下规则:RewriteEngine onRewriteCond %{SERVER_PORT} !^443$RewriteCond %{Request_URI} !^/ (.*){SERVER_NAME}/$1 [R]解释:%{SERVER_PORT} —— 访问端口%{REQUEST_URI} —— 比如如果url是,则是指 /%{SERVER_NAME} —— 比如如果url是,则是指 localhost以上规则的意思是,如果访问的url的端口不是443,且访问页面不是,则应用RewriteRule这条规则。 这样便实现了:访问了或者等页面的时候会自动跳转到或者,但是访问的时候就不会做任何跳转,也就是说和两个地址都可以访问。

Http和Https的区别?

方法/步骤

第一:http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协议

http和https使用的是完全不一样的连接方式,端口也不一样,前者默认是80端口

http是无状态的协议,而https是由ssl+http构建的可进行加密传输、身份认证的网络协议。

http的无状态是指对事务处理没有记忆能力,缺少状态意味着对后续处理需要的信息没办法提供,只能重新传输这些信息,这样就会增大数据量。 另一方面,当不需要信息的时候服务器应答较为快。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐