返回顶部
首页 > 资讯 > 精选 >HTTP和HTTPS连接是如何建立的
  • 189
分享到

HTTP和HTTPS连接是如何建立的

2023-06-17 06:06:02 189人浏览 安东尼
摘要

这篇文章主要讲解了“Http和https连接是如何建立的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTTP和HTTPS连接是如何建立的”吧!HTTP和HTTPS连接是如何建立的?1、建立

这篇文章主要讲解了“Httphttps连接是如何建立的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTTP和HTTPS连接是如何建立的”吧!

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

1、建立连接

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

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

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

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

过程简图

HTTP和HTTPS连接是如何建立的

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请求过程

  • 建立连接完毕以后客户端会发送响应给服务端

  • 服务端接受请求并且做出响应发送给客户端

  • 客户端收到响应并且解析响应给用户

HTTP和HTTPS连接是如何建立的

HTTPS

  • 在使用HTTPS是需要保证服务端配置正确了对应的安全证书

  • 客户端发送请求到服务端

  • 服务端返回公钥和证书到客户端

  • 客户端接收后会验证证书的安全性,如果通过则会随机生成一个随机数,用公钥对其加密,发送到服务端

  • 服务端接受到这个加密后的随机数后会用私钥对其解密得到真正的随机数,随后用这个随机数当做私钥对需要发送的数据进行对称加密

  • 客户端在接收到加密后的数据使用私钥(即生成的随机值)对数据进行解密并且解析数据呈现结果给客户

SSL加密建立

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

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

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

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

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

感谢各位的阅读,以上就是“HTTP和HTTPS连接是如何建立的”的内容了,经过本文的学习后,相信大家对HTTP和HTTPS连接是如何建立的这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: HTTP和HTTPS连接是如何建立的

本文链接: https://lsjlt.com/news/287534.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • HTTP和HTTPS连接是如何建立的
    这篇文章主要讲解了“HTTP和HTTPS连接是如何建立的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTTP和HTTPS连接是如何建立的”吧!HTTP和HTTPS连接是如何建立的1、建立连...
    99+
    2023-06-17
  • mysql如何建立连接
    通过以下步骤可以建立一个MySQL连接:1. 安装MySQL数据库软件,并确保MySQL服务正在运行。2. 在需要建立连接的应用程序...
    99+
    2023-08-11
    mysql
  • PHP和Unix:如何建立实时接口连接?
    在互联网时代,实时接口连接已经成为许多应用程序的重要组成部分。PHP和Unix的结合可以为这些应用程序提供出色的实时接口连接。在本文中,我们将学习如何使用PHP和Unix来建立实时接口连接。 首先,我们需要了解Unix域套接字。Unix域...
    99+
    2023-09-13
    实时 unix 接口
  • python如何建立tcp连接
    在Python中可以使用`socket`模块来建立TCP连接。下面是一个简单的示例代码,演示如何使用Python建立TCP连接:``...
    99+
    2023-09-25
    python
  • 如何理解HTTP的长连接和短连接
    这篇文章主要讲解了“如何理解HTTP的长连接和短连接”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解HTTP的长连接和短连接”吧!HTTP长连接和短连...
    99+
    2024-04-02
  • java如何与mysql建立连接
    在Java中与MySQL建立连接通常使用JDBC(Java Database Connectivity)来实现。下面是一个简单的示例...
    99+
    2024-04-09
    java mysql
  • HTTP的长连接和短连接是什么
    这篇文章主要介绍“HTTP的长连接和短连接是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTTP的长连接和短连接是什么”文章能帮助大家解决问题。1.HTTP协议与TCP/IP协议的关系HTTP...
    99+
    2023-06-27
  • HTTP和TCP的长连接和短连接是什么
    这篇文章主要讲解了“HTTP和TCP的长连接和短连接是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTTP和TCP的长连接和短连接是什么”吧!HTTP 协议与 TCP/IP 协议的关系...
    99+
    2023-06-03
  • php如何建立数据库连接
    在 PHP 中,可以使用 mysqli 或 PDO 扩展来建立数据库连接。使用 mysqli 扩展建立数据库连接的步骤如下:1. 使...
    99+
    2023-09-05
    php 数据库
  • jdbc如何建立数据库连接
    使用JDBC建立数据库连接的步骤如下:1. 加载数据库驱动程序:首先需要加载特定数据库的驱动程序,例如MySQL的驱动程序是com....
    99+
    2023-10-25
    jdbc 数据库
  • 如何建立云服务器连接
    要建立云服务器连接,通常需要以下步骤:1. 选择云服务提供商:根据你的需求和预算选择一个可靠的云服务提供商。2. 注册并创建云服务器...
    99+
    2023-08-19
    云服务器
  • HTTP和HTTPS的区别是什么
    这篇文章主要介绍了HTTP和HTTPS的区别是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、HTTPHTTP (HyperText Transfer Protocol...
    99+
    2023-06-17
  • SSL连接建立后数据传输是如何加密的
    SSL连接建立后,数据传输通过加密算法进行加密。具体过程如下: 客户端和服务器经过握手协商确定加密算法和密钥长度等参数。 客户端生...
    99+
    2024-04-17
    SSL证书
  • ssl连接建立的过程是什么
    SSL连接建立的过程如下:1. 客户端发送连接请求到服务器。2. 服务器将自己的公钥和证书发送给客户端。3. 客户端使用服务器发送的...
    99+
    2023-06-11
    ssl连接 ssl
  • SQL-server 如何与 visual studio 建立连接
    SQL-server 如何与 visual studio 建立连接打开数据库。点击右键,新建数据库wl。新建表:可以自己手动建立,也可以使用命令建立。点击电脑上的wins图标,在命令行输入SQL-serve...
    99+
    2024-04-02
  • linux udp不建立连接如何通信
    在Linux中,UDP(User Datagram Protocol)是一种无连接的通信协议,不需要建立连接即可进行通信。使用UDP...
    99+
    2023-10-19
    linux
  • Linux 上的 Go 和 NPM:如何建立 HTTP 服务器?
    在现代 Web 应用程序中,HTTP 服务器是一个必不可少的组件。无论是用于静态内容分发还是用于构建动态 Web 应用程序,HTTP 服务器都是应用程序的核心。在本文中,我们将介绍如何使用 Go 和 NPM 在 Linux 上建立一个简单...
    99+
    2023-09-08
    http npm linux
  • 如何建立云服务器端口连接
    建立云服务器端口连接时,可以遵循以下步骤: 打开服务器的Web界面(通常是Apache或Tomcat),确认端口开放且可以通过HTTP或HTTPS连接。 在命令行中输入"your port -s -p open port"并按下回车键即...
    99+
    2023-10-26
    端口 服务器
  • 如何建立云服务器网络连接
    建立云服务器网络连接时,建议您选择可靠的云服务器提供商,并确保您的计算机和服务器之间进行网络连接时是安全的。可以使用以下步骤: 确定您的工作负载和云服务器提供商提供的服务类型(例如,虚拟主机、云存储、负载均衡等)。 查询您的云服务器提供...
    99+
    2023-10-26
    服务器 网络
  • access数据库怎么建立和连接
    要建立和连接Access数据库,您可以按照以下步骤操作:1. 打开Microsoft Access软件。2. 在主界面上,点击“新建...
    99+
    2023-09-08
    access数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作