HTTP和HTTPS的区别及通信原理

这篇具有很好参考价值的文章主要介绍了HTTP和HTTPS的区别及通信原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HTTP

何为http?

http是超文本传输协议,HyperText Transfer Protocol

HyperText:超文本,意思是不仅限于文本。泛指图片、视频、音频等等。
Transfer:传输方法,指数据传输方法。也就是超文本的传输方法。
Protocol:协议,指双方遵守的规则。按照一定的规则来执行。

以上加起来就是,超文本按照某种特定的规则来进行信息传输交换。

举一个生动形象的🌰:人们的交流。我们通过语言来进行对话交流,那么语种就是协议,话就是超文本,声音传播就是传输方法,如果会的语种不同,那么就无法进行交流,就比如各个地区的方言,又或者不同国家的语言。

通俗来讲,http协议就是“计算机们”在网络上进行信息交流时要遵守的“游戏规则”,如果不遵守就无法进行通信游戏。

特性

HTTP是【无连接的,无状态的,明文传输的】,且具有跨平台的优点

无连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。 采用这种方式可以节省传输时间。这样做的好处就是尽快将资源释放出来服务其他客户端

无状态:协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态,HTTP不会记录用户输入的任何操作

明文传输:http协议不会对信息做任何加密或映射的操作。


那么可能就会有一个疑惑,为什么平时的登入信息只需要一次登录,即可下次无需重新输入信息来登入?

这里就引出了cookie技术🍪

http解决无状态的问题

🍪cookie

在第一次登入某个网站时,客户端通过post方法发送请求给服务端,服务端会提取http请求中body内的用户信息并保存在cookie里,然后在发送回客户端,客户端就将cookie保存在本地里,下次发送请求登入时浏览器会自带cookie,这样用户就不用多次输入账户信息了
HTTP和HTTPS的区别及通信原理,linux,http,https,网络协议
图片转载自: 小林coding

前文有提及到,http是明文传输的,用户信息保存在cookie里,在网络传输中,那岂不是“信息裸奔”,他人很轻易就可以知道我们的所有信息了。考虑到这点就引入了session技术。

session

何为session?
session是依赖于cookie的,对cookie进行一种优化升级。

还是第一次通信,客户端发送请求给服务端,服务端提取请求主体中用户信息,并形成唯一的sessionID(还有其他内容)保存起来,返回客户端的cookies中会携带sessionID,而不是裸露的用户信息数据,下次访问时,只需要校验sessionID即可验证身份。
HTTP和HTTPS的区别及通信原理,linux,http,https,网络协议

session确保了他人获取不到我们真实的用户信息,但是仍有缺点,随着用户数量的增多,一台服务器上的sessionID数量也会随之增多,并且不同服务器不共享sessionID,这样其他服务器也就会保存sessionID,这样同一份sessionID在不同的服务器中都保存了一份,显然,服务器的资源得不到充分利用,为了解决种种问题,新的技术孕育而生——JWT(Json Web Token)

token

和session的通信过程类似,只不过服务器上不存储sessionID了,而是通过JWT技术生成JWT,并保留签名密文,将JWT存储在cookie或者storage中返回给客户端,客户端下次请求将JWT带上即可。
HTTP和HTTPS的区别及通信原理,linux,http,https,网络协议
图片来源:B站技术蛋
JWT结构图
HTTP和HTTPS的区别及通信原理,linux,http,https,网络协议

以上方法其实都还会存在安全问题,就是他人可以冒名顶替我,因为浏览器是只认sessionID/JWT的,只要sessionID/JWT符合,那就认为是曾经的用户,殊不知已经狸猫换太子了。关于安全问题,一会会在https里讲解。

常见状态码

HTTP和HTTPS的区别及通信原理,linux,http,https,网络协议
常见状态码

状态码 含义
200 OK 成功状态码,表示一切正常
301 Moved Permanently 永久重定向
302 Found 临时重定向
403 Forbidden 服务器禁止访问资源,并不是客户端的请求出错
404 Not Found 请求的资源在服务器上不存在或未找到
500 Internal Server Error 服务器发生了什么错误,我们并不知道
502 Bad Gateway 表示服务器自身工作正常,访问后端服务器发生了错误

报文和字段

来自于B站的http报文
HTTP和HTTPS的区别及通信原理,linux,http,https,网络协议

Content-Type: 数据类型(text/html等)
Content-Length: Body的长度
Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上
User-Agent: 声明用户的操作系统和浏览器版本信息
referer: 当前页面是从哪个页面跳转过来的
location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问
Cookie: 用于在客户端存储少量信息. 通常用于实现会话(session)的功能

方法

HTTP和HTTPS的区别及通信原理,linux,http,https,网络协议

HTTPS

https常用端口443,http常用端口80

补充知识

HTTPS = HTTP + SSL/TLS
HTTP和HTTPS的区别及通信原理,linux,http,https,网络协议

  • 为什么要加密?

HTTP 由于是明文传输,所谓的明文,就是说客户端与服务端通信的信息都是肉眼可见的,随意使用一个抓包工具都可以截获通信的内容。
所以安全上存在以下三个风险:

  1. 窃听风险,比如通信链路上可以获取通信内容,用户号容易没。
  2. 篡改风险,比如强制植入垃圾广告,视觉污染,用户眼容易瞎。
  3. 冒充风险,比如冒充淘宝网站,用户钱容易没。

常见的加密方式

对称加密

  • 采⽤单钥密码系统的加密⽅法,同⼀个密钥可以同时⽤作信息的加密和解密,这种加密⽅法称为对称加密,也称为单密钥加密,特征:加密和解密所⽤的密钥是相同的
  • 常⻅对称加密算法:DES、3DES、AES、TDEA、Blowfish、RC2等
  • 特点:算法公开、计算量小、加密速度快、加密效率高

对称加密其实就是通过同⼀个“密钥”,把明⽂加密成密⽂,并且也能把密⽂解密成明⽂

非对称加密

公钥:公开的秘钥,谁都可以持有
私钥:只有自己知道的秘钥

  • 需要两个密钥来进⾏加密和解密,一个加密,另一个解密。一般公钥加密,私钥解密
  • 常见非对称加密算法(了解):RSA,DSA,ECDSA
  • 特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,⽽使得加密解密速度没有对称加密解密的速度快

数字摘要 (数字指纹) && 数字签名

  • 数字摘要(数字指纹):利⽤单向散列函数(Hash函数)对信息进⾏运算,⽣成⼀串固定⻓度的数字摘要。数字指纹并不是⼀种加密机制,但可以⽤来判断数据有没有被窜改。
  • 数字签名:数据签名是数字摘要经过加密得到的

加密过程

前文说道,http是明文传输的,具有安全隐患,而为了解决这个安全隐患,http在传输的过程中可能运用了各种加密方法。

下面打算从加密方法的采用一步一步

  • 对称
    HTTP和HTTPS的区别及通信原理,linux,http,https,网络协议
    采用对称加密显然不安全,因为是公钥,大家都知道,所有信息在传递过程中第三者也可以对数据进行解密
  • 非对称
    HTTP和HTTPS的区别及通信原理,linux,http,https,网络协议

非对称加密显然比对称加密更加安全些,但是仍有缺点,一是效率低下,二是还有安全问题

  • 对称+非对称
    HTTP和HTTPS的区别及通信原理,linux,http,https,网络协议
    这种加密方式也能达到相对安全,且相对于非对称加密提升了不少效率(因为只在第一次获得秘钥X采用了非对称加密),但是依旧存在安全问题

刚刚上述加密均存在安全问题,这个安全问题就是中间人攻击
HTTP和HTTPS的区别及通信原理,linux,http,https,网络协议
狸猫换太子,得到秘钥X。有人会觉得奇怪,那为什么客户端、服务端不知道被换了,这个不奇怪,因为信息通信时无法确认身份

所以引进了数字证书,用来确认身份的。文章来源地址https://www.toymoban.com/news/detail-664447.html

  • 对称加密+非对称+数字证书
    HTTP和HTTPS的区别及通信原理,linux,http,https,网络协议
    这里补充一些,数字证书里面是包含服务端的公钥S的,此外里面还有浏览器的域名,ip地址,且数字证书自己有公钥和私钥。浏览器里一般也会保存数字证书的公钥。
    详细了解去这: 彻底搞懂HTTPS的加密原理

到了这里,关于HTTP和HTTPS的区别及通信原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [Java网络安全系列面试题] HTTP和HTTPS协议区别和联系都有哪些?

    2.1 HTTP特点 1.支持客户/服务器模式。( C/S 模式) 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET 、 HEAD 、 POST 。每种方法规定了客户与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。

    2024年04月23日
    浏览(46)
  • 【网络技术】【Kali Linux】Wireshark嗅探(九)安全HTTP协议(HTTPS协议)

    本次实验是基于之前的实验:Wireshark嗅探(七)(HTTP协议)进行的。本次实验使用Wireshark流量分析工具进行网络嗅探,旨在初步了解安全的HTTP协议(HTTPS协议)的工作原理。 HTTPS的含义是HTTP + SSL,即使用SSL(安全套接字)协议对通信数据进行加密。HTTP和HTTPS协议的区别(用

    2024年01月20日
    浏览(51)
  • 【网络应用层协议】【HTTP】详解HTTP与HTTPS、POST 请求与 GET请求 、TCP与UDP、cookie和session的区别

    目录 1. HTTP和HTTPS的区别 2. POST 请求与 GET 请求区别 3. TCP与UDP的区别 4. cookie和session的区别

    2024年04月14日
    浏览(46)
  • 什么是HTTPS协议?与HTTP协议区别?

    HTTP协议(超文本传输协议)是一种用于在计算机网络上传输超文本的应用层协议。它是一种客户端-服务器协议,允许客户端通过Web浏览器等方式向服务器发送请求,服务器则返回响应。HTTP协议是构建万维网(WWW)的基础之一,被广泛用于在Web浏览器和Web服务器之间传输HTM

    2024年02月10日
    浏览(60)
  • HTTP和HTTPS的区别、 HTTPS运行原理

    一种用于web浏览器和web服务器基于数据传递的协议 基于TCP/IP协议的应用层传送,用于客户端和服务器之间的数据交互 是 HTTP 的安全版,基于SSL或TLS协议,对客户端和服务器之间加密和身份验证,使得数据之间传递具有了安全性 区别是什么? 1. https有加密,身份验证,公钥,

    2024年02月09日
    浏览(42)
  • http 协议和 https 协议的区别么?

    HTTP(Hypertext Transfer Protocol)是一种用于在网络上传输超文本的协议,它是计算机之间传输数据的标准通信协议。 而HTTPS(Hypertext Transfer Protocol Secure)是基于HTTP协议的加密扩展协议。 以下是HTTP协议和HTTPS协议的区别: 1.安全性 HTTP协议传输的数据是明文的,容易被攻击者截获

    2024年02月12日
    浏览(59)
  • HTTP协议 和 HTTPS协议的区别(4点) && HTTPS的缺点 && HTTP如何使用SSL/TLS协议加密过程 && CA证书干啥的

      1. HTTP协议的端口号是80, HTTPS协议的端口号是443 2. HTTP协议使用的URL是以 http:// 开头,HTTPS协议使用的URL是以https://开头 3. HTTP协议和HTTPS协议最主要的区别是: HTTP协议所生成的HTTP请求报文被TCP协议 以明文形式透明传输,同时 客户端与服务器之间无法核验对方的身份(不晓

    2024年02月14日
    浏览(46)
  • 【Linux命令详解 | wget命令】 wget命令用于从网络下载文件,支持HTTP、HTTPS和FTP协议

    在编程世界中,处理网络资源是一项关键任务,而 wget 命令就是一位可靠的助手。 wget (全名为“Web Get”)是一种用于从网络下载文件的工具,它能够处理多种协议,包括HTTP、HTTPS和FTP。作为一个博主,我们可以利用 wget 命令来获取文件、备份网站内容、自动下载资源等。

    2024年02月12日
    浏览(38)
  • HTTP与HTTPS:深度解析两种网络协议的工作原理、安全机制、性能影响与现代Web应用中的重要角色

    HTTP (HyperText Transfer Protocol) 和 HTTPS (Hypertext Transfer Protocol Secure) 是互联网通信中不可或缺的两种协议,它们共同支撑了全球范围内的Web内容传输与交互。本文将深度解析HTTP与HTTPS的工作原理、安全机制、性能影响,并探讨它们在现代Web应用中的核心角色。 HTTP 是一种应用层协议

    2024年04月11日
    浏览(61)
  • 网络原理 - HTTP / HTTPS(1)——http请求

    目录 一、认识HTTP协议 理解 应用层协议 二、fiddler的安装以及介绍 1、fiddler的安装 2、fiddler的介绍 http请求 三、HTTP 报文格式 1、http的请求 2、http的响应 五、认识URL (1)协议方案名 (2)登录信息(认证) (3)服务器地址 (4)服务器的端口号 (5)带层次的文件路径 (6)

    2024年04月16日
    浏览(82)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包