首页 > 其他分享 >一文搞懂HTTP跟HTTPS的区别

一文搞懂HTTP跟HTTPS的区别

时间:2023-10-02 11:33:04浏览次数:40  
标签:协议 HTTP 传输 HTTPS 超文本 搞懂 文本

前言

当我们在网上冲浪浏览网页时,有时候会注意到一些网址的前缀是HTTPS://,而另一些则是HTTP://。那么这两种网址前缀之间有何差异呢?在我们探讨这一问题前,我们首先要了解HTTP和HTTPS的定义。

什么是HTTP

HTTP (HyperText Transfer Protocol:超文本传输协议),是一个应用层的协议,它基于请求和响应模式,无状态,即不保持前后两次请求之间的状态,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。

设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。但HTTP协议使用明文的方式发送内容,这意味着它不提供任何加密功能,因此不适合传输敏感信息,如:信用卡号、密码等支付信息等,因为这些信息可能会被第三方截获或窃取。

那么什么是超文本传输协议?我们可以拆分成三个部分理解,分别是:“超文本”“传输”和“协议”。它们之间的关系如下:

按照范围的大小 协议 > 传输 > 超文本

下面就分别对这三个名词做一个解释:

什么是超文本

在互联网的早期,我们输入的信息只能保存在本地,并且主要以文本形式存在。随着互联网技术的发展,两台电脑之间能够进行数据传输,这使得人们希望能够传输更多的信息,如图片、音频、视频等,甚至希望能够通过点击文本或图片进行超链接的跳转。这种需求推动了文本语义的扩大,超文本(Hypertext)这个概念应运而生。

超文本是一种以链接方式组织并展示信息的文本格式,它允许用户在文本中创建链接,将不同的文本片段或资源(如图片、音频、视频等)连接在一起,从而允许用户在多个文本之间进行导航和交互。点击超链接可以跳转到其他位置的文本或资源,进一步扩大了文本的语义和信息表达的范围。因此,超文本的出现是互联网技术发展的一个重要里程碑,它极大地丰富了互联网信息的表达方式和交互性

什么是传输

就是把一堆东西从 A 点搬到 B 点,或者从 B 点搬到 A 点,即“A<=>B”。这是一种双向传输协议,在传输的过程中有两个基本的参与者A和B,数据在他们之间进行双向传输而不是单向流动。通常我们将发起传输动作的A称为请求方,将接收传输的B称为响应方。

虽数据在A和B之间传输,但并不仅限于这两个角色,可以允许存在中间的"中转"或"接力"。因此,传输方式可以是"A<=>B",也可以是"A<=>X<=>Y<=>Z<=>B",在A到B的传输过程中可以存在任意多个中间人。这些中间人也遵循HTTP协议,只要不干扰基本的数据传输,就可以添加任何额外的功能,比如安全认证、数据压缩、编码转换等,以优化整个传输过程。

什么是协议

协议,在我们日常生活中常常出现,比如当我们去一个新公司时,常常需要签署一份保密协议。另外,在使用各种软件时,我们也会遵守各种许可协议。这些协议实际上与HTTP协议具有相同的本质。它们都是参与者之间的一种行为约定和规范

经过对HTTP中三个名词的详细阐述,那么我们就可以总结一下,什么是 HTTP?可以用下面这个经典的总结回答一下:HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。

什么是HTTPS

HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL

HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

HTTP与HTTPS的区别

  • 安全性:HTTP是明文传输,数据未加密,安全性较差;HTTPS数据传输过程利用SSL/TLS协议来加密数据包,安全性较好。

  • 证书费用:HTTPS协议需要向CA(证书颁发机构)申请数字证书以验证服务器身份,一般来说,这种证书需要付费购买。虽然存在一些免费的证书,但它们往往有一些限制,例如限制使用时间、限制用途等。

  • 连接方式和端口:HTTP默认端口是 80 端口,HTTPS是 443 端口。另外,HTTP和HTTPS协议在建立连接时使用的握手过程也不同。

  • 消耗资源:https需要更多的服务器资源来处理加密和解密操作,因此相比http而言,它对服务器资源的消耗更大。

  • 响应速度:HTTP使用TCP三次握手建立连接,客户端和服务端需要交换3个数据包,而HTTPS除了TCP的3个包,还需要加上SSL握手需要的9个包,一共是12个包。因此,HTTP页面响应速度比HTTPS快,但在实际应用中,这种差异通常可以忽略不计。

标签:协议,HTTP,传输,HTTPS,超文本,搞懂,文本
From: https://www.cnblogs.com/52Herze/p/17739810.html

相关文章

  • Go每日一库之154:eCapture(无需CA证书抓包https)
    eCapture介绍eCapture是一款基于eBPF技术实现的用户态数据捕获工具。不需要CA证书,即可捕获https/tls的通讯明文。项目在2022年3月中旬创建,一经发布,广受大家喜爱,至今不到两周已经1200多个Star。作用不需要CA证书,即可捕获HTTPS/TLS通信数据的明文。在bash审计场景,可以捕获ba......
  • Android中OkHttp源码阅读二(责任链模式)
    AndroidOkHttp源码阅读详解一看OkHttp源码,发现OkHttp里面使用了责任链设计模式,所以才要学习责任链设计模式小节2最终会返回ResponseResponsegetResponseWithInterceptorChain()throwsIOException{//Buildafullstackofinterceptors.List<Interceptor>inte......
  • http get 请求,path请求参数有数组类型的参数,怎么传参
    内容来自对chatgpt的咨询当在HTTPGET请求中传递数数组类型的参数时,需要按照一定的格式进行编码。并且具体的格式可能会根据后端的实现和预期的格式进行变化。这里有两种常见的方法:方法一:相同参数名,多次出现在URL中,后面每一个数组元素都用相同的参数名。例如,如果你有一个名......
  • 一文搞懂MySQL事务隔离级别和实现原理
    什么是事务数据库事务指的是一组数据操作,事务内的操作要么就是全部成功,要么就是全部失败,什么都不做,其实不是没做,是可能做了一部分但是只要有一步失败,就要回滚所有操作。MySQL事务都是指在InnoDB引擎下,MyISAM引擎是不支持事务。假设一个网购付款的操作,用户付款后要涉及到订单......
  • 关于http-https的URL格式-及URL-Encode-基本格式分析
    关于http,https的协议格式,在很多资料上看到,基URL格式的如下:shceme://username:password@host:port/path;params?query#fragparams:key=value&key2=value2query(前面的资源可能会有SQL的where语句,一般就使用这里query):field=value&field=value2frag:锚定一个大的网页的......
  • Go每日一库之183:vegeta(http压力测试工具库)
    项目地址:https://github.com/tsenart/vegetahttps://mp.weixin.qq.com/s/J0PiqTifr_rs_S2CzMRoWg......
  • 抽象CurrentUser适配Http和Job场景
    前言获取当前请求用户的基础信息是很常见的,诸如当前用户Id,角色,有无访问权限等。通常我们可以直接使用HttpContext.User来拿到当前经过认证后的请求人信息。但是这样对于分层应用不太友好,需要安装AspNetCore.Http.Abstractions的包,这样对于这层(非Web层)来讲也有所侵入了。Curren......
  • Http-02
    三、HTTP请求3.1HTTP请求数据格式GET请求POST请求字符串格式://请求行POST/login.htmlHTTP/1.1//请求头Host:localhostUser-Agent:Mozilla/5.0(WindowsNT6.1;Win64;x64;rv:60.0)Gecko/20100101Firefox/60.0Accept:text/html,......
  • FastAPI学习-22.response 异常处理 HTTPException
    前言某些情况下,需要向客户端返回错误提示。这里所谓的客户端包括前端浏览器、其他应用程序、物联网设备等。需要向客户端返回错误提示的场景主要如下:客户端没有执行操作的权限客户端没有访问资源的权限客户端要访问的项目不存在等等...遇到这些情况时,通常要返回 4XX(40......
  • Begin of HTTP
    打开 GETget方式上传,直接在网址栏上传即可 POST先找到secret,一般藏在网页前端代码里  解码得 得F12,用hackbar上传   Cookie 直接点击cookie,把他改成ctfer即  User-Agent 直接点击user-agent然后改变浏览器直接上传,注意此处不能有中文 ......