HTTP和HTTPS的工作原理及区别

article/2025/3/14 10:47:07

一、HTTP和HTTPS的基本概念

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

HTTPS(HyperText Transfer Protocol Secure:超文本传输安全协议):是以安全为目标的HTTP通道,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。


二、HTTP和HTTPS的区别

1、HTTPS协议需要到CA(Certificate Authority,数字证书认证机构)申请证书,一般免费证书较少,因而需要一定费用。

2、HTTP是超文本传输协议,信息是明文传输,数据是不加密的,而HTTPS则是具有安全性的SSL加密传输协议。

3、HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,HTTP是80端口,HTTPS是443端口。

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


三、HTTP的工作原理

在这里插入图片描述
1.客户端与服务器建立TCP连接(三次握手)
2.连接成功后,客户端发送请求给服务器
3.服务器接收到客户端发送的请求后作出相应,并将响应信息发送给客户端
4.服务器发送完响应信息后,就会断开TCP连接,因此HTTP是无状态的,下一次访问的时候不会知道之前访问的过程
5.客户端接收到响应信息,浏览器进行解析,将html文件解析后呈现一个网页在浏览器上


四、HTTPS的工作原理

在这里插入图片描述
1、客户端发起 HTTPS 请求

用户在浏览器里输入一个 https 网址,然后连接到 server 的 443 端口。

2、传送证书

采用 HTTPS 协议的服务器必须要有一套数字证书,这套证书其实就是一对公钥和私钥,公钥就像是一把锁头,私钥是一个钥匙,只有这个私钥才能打开公钥,其他人打不开自然就看不到里边的内容了

服务器将证书发送给客户端,这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

3、客户端解析证书

这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,如果发现异常,则会弹出一个警告框,提示证书存在问题。

4、生成随机密钥

如果证书没有问题,那么就生成一个随机对称密钥
5、加密对称密钥

公钥对该对称密钥进行加密,就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。

6、传送加密信息

将加密后的对称密钥发送给服务器,目的就是让服务端得到对称密钥,以后客户端和服务端的通信就可以通过这个对称密钥进行加密解密了。

7、服务端解密信息

服务端用私钥解密后,得到了客户端传过来的对称密钥,然后把内容通过该密钥进行对称加密,所谓对称加密就是,将信息和对称密钥通过某种算法混合在一起,这样除非知道对称密钥,不然无法获取内容,而正好客户端和服务端都知道这个密钥,所以只要加密算法够彪悍,对称密钥够复杂,数据就够安全。

8、传输加密后的信息

这部分信息是服务器用对称密钥加密后的信息,可以在客户端被还原。

9、客户端解密信息

客户端用之前生成的对称密钥解密服务段传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。


五、HTTPS的优缺点

1.优点:

(1)使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;

(2)HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。

(3)HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

(4)谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。

2.缺点:

(1)HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%,增加10%到20%的耗电;

(2)HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响;

(3)SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。

(4)SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。

(5)HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。


http://chatgpt.dhexx.cn/article/2lexULqH.shtml

相关文章

HTTP详解(1)-工作原理

1. HTTP简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定…

VBS带你领略脚本语言的快乐!(入门篇)

VBS语言基础入门 前言 小弟初来乍到,自诩高中时曾自学过一点VBS脚本语言基础,感觉不错,想把学习到的东西记录下来,和大家分享一下,由于小弟我学艺不精,有误的地方还请多多指教。    入门篇是给电脑小白做…

◎Vbs脚本编程简明教程之十 —— Vbs脚本编程常用的编辑器

Vbs脚本常用的编辑器当然是notapad,不过这个编辑器的功能当然实在是太弱了一点,其实有很多的专用的脚本编辑器可以大大方便vbs脚本的编写。我常用的有两种: 1、VBSEDit汉化版 2、primalscript汉化版,可以对30多种脚本进行编辑

VBS基础语法讲解

VBS基础语法讲解 文章目录 VBS基础语法讲解引言 一、编辑VBS的相关软件二、变量的定义一点说明 三、输入与输出1、输入2、输出 四、判断语句五、循环语句1、do -- loop 循环1)until2)while3)exit do 2、for -- next 循环 引言 最近在学习VBS…

bat编程和vbs编程入门

先看看bat(批处理文件)中一些简单的命令 开头第一句 echo off 这句话的意思是后面每句都关闭回显,(你可以不加这句直接echo 几行试试)on打开命令的回显状态;off关闭命令的回显状态。关于“回显”&#xff…

vbs编程-执行cmd命令

简单格式 set ws createobject("wscript.shell") ws.run "cmd.exe /c explorer e:\game" cmd命令行参数 cmd /c > /close 执行命令,关闭窗口 cmd /k > /keep 执行命令,保持窗口 详细如下: 命令行输入 cmd /?

vbs编程入门

由于本经验是针对初次学习VBScript的小伙伴而定制的一篇经验,看完本经验。小编的目的是希望小伙伴能学会2点: 1、VBScript的解释器在哪 2、VBScript为什么能直接解释运行 3、第一个VBS函数——msgbox 先来说下什么是解释器:编程编程&#xff…

vbs格式编程教程提高

大家好,今天我又双叒叕来写教程了,相信很多读者是从我的文章:vbs格式编程教程_Hacker_02的博客-CSDN博客里过来的吧?好了,闲话先说到这,我们开始今天的提高内容: 下有小病毒,想要的…

vbs格式编程教程基础

什么是vbs呢?我们来看一下百度百科上的定义。 VBS是基于Visual Basic的脚本语言。VBS的全称是:Microsoft Visual Basic Script Edition。(微软公司可视化BASIC脚本版)。 大家最关心的就是用什么工具来开发VBS程序了, 答案是:记事…

Latex部分斜体变直体

Latex斜体变为直体 \rm即可 未使用之前的效果( ${x}_{n1}$ $\mathop{\arg\min}\limits_{x}\alpha(x;D_n) ) 为了将所有的小写x变为直体,将所有的x替换为{\rm x}。( ${\rm x}_{n1}$ $\mathop{\arg\min}\limits_{\rm x}\alph…

latex \textit不变斜体

latex 字体问题 使用平台:texstudio 问题描述:使用\textit \textbf等字体命令并不变成斜体和加粗,但并不报错 解决方法:将编译器XeLaTex改为PdfLaTex,latex小白表示也不知道为什么,但确实好使了。

Latex 字体调整-斜体-下划线-加粗-罗马数字

字体大小: 七号   5.25pt    1.845mm    \tiny 六号   7.875pt    2.768mm    \scriptsize 小五号  9pt      3.163mm    \footnotesize 五号   10.5pt    3.69mm     \small 小四号  12pt     4.2175mm    \norma…

latex的公式中不用斜体显示,使用罗马字体显示

latex的公式中不用斜体显示,使用罗马字体显示 latex公式中部分字体不是用斜体显示改成不是斜体的字母 latex公式中部分字体不是用斜体显示 latex的公式中显示min的格式是如下图所示: 对应的latex的代码如下所示: \begin{align}\label{test…

Latex参考文献斜体变正体方法

测试环境:texlivetexstudio 最近发表的论文被拒稿后改投Elsevier出版社的期刊,在引用参考文献时,遇到了问题: 1.一开始样式用的期刊所给名为(cas-model2-names.bst)的参考文献格式文件,但是使…

1、Latex学习笔记之基础入门篇

目录 一、Latex基础 1、架构 2、引用、脚注 3、单栏、双栏 4、常用快捷键 5、宏包 6、空格 7、换行、行间距 8、换段 9、下划线 10、引号 11、注释 12、字体 13、缩进 14、超链接 15、新页 Latex基础 1、架构 \documentclass{article} % article 文档 \usepac…

latex 字母g的写法

环境:texstudio 4.5.2 有时候写文章需要字母的不同形式,字母g比较特殊 在word中用mathtype写的话是我想要的字母g的格式,但是在latex中就比较麻烦。 直接给出latex中结果(水印不知道怎么去掉): 代码&#x…

[Overleaf] LaTeX中的斜体、加粗、下划线和简单指令

[Overleaf] LaTeX中的部分使用技巧 1、斜体 使用 \textit 指令 it is an \textit{apple}.运行结果: 2、字体加粗 使用 \textbf 指令,或者使用 CtrlB it is an \textbf{apple}.运行结果: 3、下划线 使用 \underline 指令 it is an …

latex写科技论文加粗斜体无效的解决方法

latex写科技论文加粗斜体无效的解决方法 \textbf{}不work 点击选项->设置TeXstudio->构建

latex加粗斜体无效的解决方法

latex无法使用加粗和斜体&#xff0c;加粗斜体无效解决方法 工具栏–选项–设置TexSudio 在<构建>中&#xff0c;更改<默认编辑器>为pdflatex即可 结果如下

[翻译] [Overleaf] LaTeX 中的粗体、斜体、下划线

原  文&#xff1a;Bold, italics and underlining 译  者&#xff1a;Xovee 翻译时间&#xff1a;2020年5月25日 LaTeX 中的粗体、斜体、下划线 在一个文档中&#xff0c;简单的文字排版可以对某些概念进行重点描述&#xff0c;增强其可读性。使用粗体、斜体、或者下划线…