【计算机网络】带你一文搞懂Http和Https的关系和区别!(最强详解!!)

目录

首先来讨论一下Http和Https的背景

基本概念

一、HTTP协议:

二、HTTPS协议:

区别

工作原理

HTTP工作原理

Https工作原理

HTTPS优缺点

优点:

缺点:

HTTP请求消息和响应消息

响应消息

进行TLS握手时的通俗的解释!! 


首先来讨论一下Http和Https的背景

        Http协议(超文本传输协议)被用作Web浏览器和网站服务器之间传递信息,Http协议以明文发送内容,不提供任何形式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接获取到信息,因此,Http不适用于传入一些敏感信息(密码,支付信息等内容)    

        为了解决HTTP协议的安全性缺陷,出现了超文本传输安全协议HTTPS。HTTPS在HTTP的基础上引入了SSL(Secure Sockets Layer)协议或其继任者TLS(Transport Layer Security)协议,以提供更安全的数据传输。

        在HTTPS中,SSL/TLS协议通过使用数字证书来验证服务器的身份,并确保通信的加密性和完整性。数字证书由受信任的第三方机构(如证书颁发机构)颁发,其中包含了服务器的公钥和其他相关信息。

基本概念

一、HTTP协议:

  1. 定义:HTTP(超文本传输协议)是一种用于在网络上传输数据的协议。
  2. 请求-响应模型:HTTP协议采用请求-响应模型,客户端发送请求,服务器返回响应。
  3. 数据传输:HTTP用于传输超文本内容,可以包含文本、图像、视频等多种形式的数据。
  4. 目标:HTTP的目标是使网络传输更高效,并能控制文档的显示顺序。

二、HTTPS协议:

  1. 定义:HTTPS(超文本传输安全协议)是在HTTP基础上引入了SSL或TLS协议,提供更安全的数据传输。
  2. 加密和身份认证:HTTPS使用加密和身份认证机制,保证数据在传输过程中的安全性。
  3. 建立连接:浏览器向服务器发送连接请求,服务器返回数字证书,浏览器验证证书的合法性,建立安全通道。
  4. 作用:HTTPS的作用主要体现在保障数据传输的安全性和确认网站真实性两方面。

区别

  1. 安全性:HTTPS通过使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议对传输的数据进行加密,使得数据在传输过程中不容易被窃听或篡改。而HTTP是明文传输,数据未经过加密,容易被攻击者截获并查看或篡改,安全性相对较差。

  2. 证书认证:为了确保连接的安全性和网站真实性,HTTPS需要服务器使用数字证书来进行身份认证。这些证书由权威的CA(Certificate Authority,数字证书认证机构)颁发,用于证明服务器的身份。而HTTP无需进行证书认证,任何人都可以建立一个HTTP服务器。

  3. 端口和连接方式:HTTP使用80端口进行通信,而HTTPS使用443端口。此外,HTTP使用简单的TCP连接来传输数据,而HTTPS在建立连接时需要进行SSL/TLS握手过程,需要额外的通信开销,因此比HTTP稍微慢一些。

  4. 性能和资源消耗:由于HTTPS需要进行加密和解密操作,以及证书认证等复杂过程,相较于HTTP而言,HTTPS在性能方面会稍微有所下降,并且需要更多的服务器资源进行处理。

工作原理

HTTP工作原理

  1. 客户端与服务器建立连接:客户端(通常是浏览器)向服务器发送连接请求。这个连接是通过TCP(传输控制协议)来实现的,一般使用的默认端口号是80。

  2. 客户端发送请求:客户端向服务器发送一个请求,请求包括以下信息:

    • 统一资源标识符(URL):指定请求的资源路径和参数。
    • 协议版本号:指示客户端所使用的HTTP协议版本。
    • 请求修饰符:例如GET、POST等,用于指定请求的类型和操作。
    • 客户端信息:包括浏览器类型、操作系统等。
    • 许可内容:用于验证客户端对资源的访问权限。
  3. 服务器接受请求并返回响应:服务器接收到请求后,会根据请求的内容进行相应的处理。服务器会返回一个响应,响应的格式包括以下信息:

    • 状态行:包含协议版本号和一个用于表示请求成功或错误的状态码。
    • 服务器信息:包括服务器类型、版本号等。
    • 实体信息:请求的资源内容。
    • 可能的内容:响应中可能还包含其他的附加内容,如Cookie等。
  4. 客户端与服务器关闭连接:在完成请求和响应后,客户端和服务器会断开连接,释放资源。

Https工作原理

(1)客户端向服务端443端口发起HTTPS请求。该请求中携带了客户端支持的加密算法和哈希算法;
(2)服务端收到请求,选择浏览器支持的加密算法和哈希算法
(3)服务端将算法和数字证书发送给客户端。该证书包含了用于认证目的的服务器标识,可以是向某个可靠机构申请的,也可以是自制的;
(4)客户端对服务器端的证书进行验证,这一部分是浏览器内置的TLS完成的,具体步骤如下:

  • 首先浏览器会从内置的证书中搜索,找到该证书对应的机构,如果查到了对应的机构,则取出该机构颁发的公钥;如果没有找到,此时浏览器就会提示用户该证书不是由权威机构颁发,是不可信任的。
  • 然后用机构的证书公钥解密,得到证书的内容和证书签名,内容包括网站的网址、网站的公钥、证书的有效期等。浏览器会先验证签名的合法性,签名通过后,浏览器验证证书记录的网址是否和当前网址是一致的,不一致会提示用户。如果网址一致会检查证书有效期,证书过期了也会提示用户。这些都通过认证时,浏览器就可以安全使用证书中的网站公钥了。
  • 服务器生成一个随机密码串pre_master_secret,并使用服务器的公钥对其进行加密。

(5)客户端将加密的随机密码串传送给服务端。
(6)服务器用自己的私钥解密得到随机密码串(私钥),然后通过该随机密码串把网页内容进行对称加密,并传输给浏览器。
(7)浏览器用之前生成的私钥解密算法获取网页内容

HTTPS优缺点

优点:

  1. 安全认证:使用HTTPS可以确保你连接的是正确的网站,避免被钓鱼网站欺骗。
  2. 数据加密:HTTPS通过加密技术保护数据,使得传输过程中的信息无法被窃取或篡改,确保数据的安全性。
  3. 防止中间人攻击:HTTPS ers大大增加了黑客进行中间人攻击的难度。

缺点:

  1. 速度稍慢:相比HTTP,HTTPS会导致页面加载时间延长,并增加一些额外的处理开销。
  2. 无法阻止所有攻击:HTTPS不能完全防止各种类型的攻击,如黑客攻击、拒绝服务攻击等。
  3. SSL证书问题:SSL证书的信用链体系存在安全风险,特别是在某些国家可以控制CA根证书的情况下。
  4. 成本问题:购买和维护SSL证书需要一定费用,对于个人网站或小型网站来说可能并不划算。
  5. IP绑定限制:每个SSL证书通常只能绑定到一个IP上,无法在同一IP上绑定多个域名。

HTTP请求消息和响应消息

在HTTP请求和响应的过程中传递的数据块就叫HTTP消息,包括要传送的数据和一些附加信息,并且要遵守规定好的格式。

请求消息


请求消息是指客户端向服务器端发送请求时所携带的数据块。

请求方式用来规定客户端与服务器端联系的类型。

HTTP协议中客户端8种请求方式如下:

响应消息

响应消息是指服务器端向客户端进行响应请求时所携带的数据块。

在响应消息中,对于客户端的每一次请求,服务器端都要给予响应,在响应的时候我们可以通过状态码告诉客户端此次请求是成功还是失败。

状态代码由3位数字组成,表示请求是否被理解或被满足。HTTP响应状态码的第一个数字定义了响应的类别,后面两位没有具体的分类,第1位数字有5种可能的取值:
1**:请求已接收,需要继续处理。
2**:请求已成功被服务器接收、理解并接受。
3**:为完成请求,客户端需进一步细化请求。
4**:客户端的请求有错误。
5**:服务器端出现错误。

HTTP协议常见的状态码

文章内容参考(http与https概述_https和http csdn_橘猫吃不胖~的博客-CSDN博客)  

进行TLS握手时的通俗的解释!! 

  1. 客户端向服务器发送连接请求。
  2. 服务器回应客户端,并将包含自己的公钥的数字证书发送给客户端。这相当于服务器提供了一个锁。
  3. 客户端收到服务器的数字证书后,首先验证该证书的有效性和真实性。这是为了确保客户端正在与合法的服务器通信。
  4. 客户端生成一个临时密钥(预主密钥),就像是制作一把用于保护数据的安全锁的钥匙。
  5. 客户端使用服务器提供的公钥(锁)来锁住这个临时密钥,相当于在钥匙上加上了一个锁。然后,客户端将这个加锁的临时密钥发送回服务器。
  6. 服务器收到加密的临时密钥后,使用自己的私钥(只有服务器知道的钥匙)来解锁这个加密的临时密钥。这就相当于服务器使用自己的私钥解开了锁,并得到了原始的临时密钥。
  7. 现在,客户端和服务器都拥有相同的临时密钥,它们可以使用这个临时密钥进行后续的通信。这个临时密钥就像是客户端和服务器之间共享的钥匙,用于加密和解密数据。
### 回答1: Linux内核是一种开源的操作系统内核,是Linux操作系统的核心组成部分。它提供了操作系统与硬件之间的抽象层,负责管理系统的资源、调度任务、提供驱动程序等功能。 Linux内核采用分层的架构,包括硬件抽象层、系统调用层、进程管理层、文件系统层和网络层等。硬件抽象层负责将不同硬件设备的接口统一起来,使得上层的软件可以方便地与硬件进行通信。系统调用层提供了一组API供用户进程调用,如文件操作、网络通信等。进程管理层负责进程的创建、销毁以及调度等任务。文件系统层负责文件的管理和存储。网络层负责网络协议的实现和网络通信。 Linux内核的工作原理可以简单概括为以下几个关键步骤。首先,当一台计算机启动时,BIOS会加载内核映像到内存中,并执行启动代码。然后,内核初始化各种数据结构、驱动程序和关键服务。接下来,内核创建一个初始的用户空间进程,称为init进程。init进程是所有其他进程的祖先进程。在此之后,内核根据调度算法来决定哪个进程可以使用CPU,并依次执行。同时,内核会提供一个中断机制,以便处理硬件事件的优先级。 内核还提供了许多系统调用供用户进程调用,以实现对各种功能的访问。当用户进程需要操作文件、创建进程或进行网络通信时,会通过系统调用将请求传递给内核,由内核代表用户进程执行相应的操作。内核通过调度算法来分配CPU时间片,并通过虚拟内存管理来管理内存资源的分配和回收。 总而言之,Linux内核是一个高度可配置和模块化的操作系统内核,通过分层架构和系统调用机制实现了对硬件的抽象和对用户进程的管理。了解Linux内核的架构和工作原理,有助于深入理解Linux操作系统以及开发和调试相关应用程序。 ### 回答2: Linux是一种开源的操作系统内核,其设计目标是为了在不同的计算机硬件平台上提供高效的、稳定的和安全的操作系统服务。 Linux内核的架构可以分为三个主要部分:进程管理、内存管理和文件系统管理。 在进程管理方面,Linux内核使用了多任务处理技术,可以同时运行多个进程。每个进程都有独立的地址空间和资源,通过调度算法可以合理分配CPU时间片,优化系统的响应速度和资源利用率。 在内存管理方面,Linux内核使用了虚拟内存技术,将物理内存和逻辑内存进行了映射,使得每个进程都有独立的地址空间。当物理内存不足时,Linux内核会通过页面置换算法将暂时不使用的页写入磁盘交换空间,以释放物理内存供其他进程使用。 在文件系统管理方面,Linux内核支持多种文件系统,包括传统的ext3和ext4文件系统,以及现代的Btrfs和XFS文件系统。它负责文件的读写操作,以及文件的权限控制和磁盘空间的管理。 Linux内核的工作原理可以简单概括为以下几个步骤:首先,启动引导程序将内核加载到内存中,并进行初始化。然后,内核分配一部分内存作为内核空间,用于存放内核代码和数据结构。接着,内核根据系统的硬件配置进行设备的初始化和驱动程序的加载。之后,内核根据系统的启动参数和配置文件进行一系列的初始化工作,包括启动系统服务和加载用户程序。最后,内核进入主循环,不断地处理中断、调度进程、管理内存和文件系统,以提供稳定的操作系统服务。 总之,Linux内核是一个复杂而高效的软件系统,它通过进程管理、内存管理和文件系统管理等功能,实现了操作系统的基本功能。了解Linux内核的架构和工作原理,有助于我们更好地理解和使用这个优秀的开源操作系统。 ### 回答3: Linux内核是一个开放源代码的操作系统内核,由一个核心程序和一组通用的系统工具组成。它是Linux操作系统的核心,负责处理硬件设备、管理系统资源、实现进程管理、文件系统和网络功能等。 Linux内核的架构可以分为两个层次:用户空间和内核空间。用户空间包括用户应用程序,如图形界面、终端程序等,它们通过系统调用接口与内核进行通信。内核空间包括内核核心的数据结构和程序,用于管理和控制硬件资源。 Linux内核的工作原理可以概括为以下几个方面: 1. 进程管理:内核负责创建、调度和终止进程。它使用进程描述符(task_struct)来跟踪进程的状态和资源使用情况,并根据调度算法分配CPU时间片给不同的进程。 2. 内存管理:内核负责管理系统的物理内存和虚拟内存。物理内存管理包括内存分配和释放,虚拟内存管理包括页面置换和页面回写等策略,以优化内存的使用效率。 3. 文件系统:内核提供文件系统接口,管理文件和目录的创建、读写和删除等操作。它通过虚拟文件系统层(VFS)将不同的文件系统统一管理,如ext4、NTFS等。 4. 设备驱动:内核提供了访问硬件设备的接口,通过设备驱动程序与硬件交互。不同的硬件设备需要不同的驱动程序,如网卡、显卡、声卡等。 5. 网络功能:内核提供TCP/IP协议栈和网络设备驱动程序,用于实现网络通信功能。它提供网络连接的建立、数据传输和断开等功能,支持各种网络协议,如HTTP、FTP、SSH等。 总的来说,Linux内核是一个非常复杂且功能强大的软件,它负责管理计算机的各种资源和提供操作系统的各种功能。通过深入理解其架构和工作原理,我们可以更好地理解和使用Linux操作系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值