http与https概述

http与https的区别

  • 1 背景
  • 2 基本概念
  • 3 区别
  • 4 工作原理
    • 4.1 HTTP工作原理
    • 4.2 HTTPS工作原理
  • 5 HTTPS优缺点
    • 5.1 优点
    • 5.2 缺点
  • 6 HTTP请求消息和响应消息
    • 6.1 请求消息
    • 6.2 响应消息

1 背景

超文本传输协议(HTTP协议)被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

为了解决HTTP协议的这一缺陷,需要使用另一种协议:超文本传输安全协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

2 基本概念

HTTP(Hyper Text Transfer Protocol)全称为超文本[^1]传输协议,是一个简单的请求——响应协议:

  1. HTTP协议规定了如何从网站服务器传输超文本到本地浏览器;
  2. HTTP协议基于客户端服务器架构工作,是客户端(用户)和服务器端(网站)请求和应答的标准。
  3. HTTP协议可以使浏览器更加高效,使网络传输减少。
  4. HTTP协议不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer),超文本传输安全协议:

  1. 是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性
  2. HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。
  3. HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。

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

3 区别

1、https协议需要到CA(Certificate Authority,数字证书认证机构)申请证书,一般免费证书较少,因而需要一定费用。
2、http是明文传输,数据未加密,安全性差;https则是具有安全性的ssl加密传输协议,安全性好。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http页面响应速度比https快,因为http使用TCP三次握手建立连接,客户端和服务器需要交换 3 个包,而https除了TCP的三个包,还要加上ssl握手需要的 9 个包,所以一共是 12 个包。
5、https=SSL/TLS+http,所以,https比http要更耗费服务器资源。

4 工作原理

4.1 HTTP工作原理

(1)客户端与服务器建立连接。该连接是通过TCP 来完成的,一般端口号是80。
(2)客户向服务器提出请求。请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是 MIME 信息包括请求修饰符、客户机信息和许可内容。
(3)服务器接受请求,并根据请求返回相应的文件作为应答。格式:一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是 MIME 信息包括服务器信息、实体信息和可能的内容。
(4)客户与服务器关闭连接
在这里插入图片描述

4.2 HTTPS工作原理

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

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

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

5 HTTPS优缺点

5.1 优点

(1)使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
(2)HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP安全,可防止数据在传输过程中被窃取、改变,确保数据的完整性。
(3)HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

5.2 缺点

(1)相同网络环境下,HTTPS协议会使页面的加载时间延长近 50%,增加 10%到 20%的耗电。此外,HTTPS协议还会影响缓存,增加数据开销和功耗。
(2)HTTPS协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用。
(3)SSL 证书的信用链体系并不安全。特别是在某些国家可以控制 CA 根证书的情况下,中间人攻击一样可行。
(4)SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。
(5)SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。

6 HTTP请求消息和响应消息

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

6.1 请求消息

请求消息是指客户端向服务器端发送请求时所携带的数据块。
在这里插入图片描述
请求方式用来规定客户端与服务器端联系的类型。

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

请求方式说明
Get向特定资源发出请求(请求指定页面信息,并返回实体主体)
Post向指定资源提交数据进行处理请求(提交表单、上传文件),可能导致新的资源的建立或原有资源的修改
Put向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)
Head与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)
opions返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(允许客户端查看服务器性能)
Delete请求服务器删除request-URL所标示的资源*(请求服务器删除页面)
Trace回显服务器收到的请求,用于测试和诊断
ConnectHTTP/1.1协议中能够将连接改为管道方式的代理服务器

6.2 响应消息

响应消息是指服务器端向客户端进行响应请求时所携带的数据块。
在这里插入图片描述
在响应消息中,对于客户端的每一次请求,服务器端都要给予响应,在响应的时候我们可以通过状态码告诉客户端此次请求是成功还是失败。

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

HTTP协议常见的状态码

状态码说明
200表示服务器成功处理了客户端的请求
302表示请求的资源临时从不同的URI响应请求,但请求者应继续使用原有位置来进行以后的请求
404表示服务器找不到请求的资源
400表示客户端请求有语法错误
500表示服务器发生错误,无法处理客户端的请求
[^1]:超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/253614.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

HTTP和HTTPS协议,看一篇就够了

一、前言: 先来观察这两张图,第一张访问域名http://www.12306.cn,谷歌浏览器提示不安全链接,第二张是https://kyfw.12306.cn/otn/regist/init,浏览器显示安全,为什么会这样子呢?2017年1月发布的…

HTTP和HTTPS

1. 前言 近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促进下,互联网迎来了“HTTPS加密时代”,HTT…

HTTP 和 HTTPS 的区别

一、简述 1️⃣HTTP (全称 Hyper Text Transfer Protocol),就是超文本传输协议,用来在 Internet 上传送超文本。是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从 WWW 服务器传输超文本…

什么是HTTP协议和HTTPS协议,以及两者的区别

HTTP协议 超文本传输协议(Hyper Text Transfer Protocol),是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以形式给出;而消息内…

HTTP与HTTPS的区别

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此&…

HTTP与HTTPS是什么?http和https的区别

一、HTTP是什么? HTTP 是超⽂本传输协议,也就是Hyper Text Transfer Protocol。 HTTP 是⼀个在计算机世界⾥专⻔在「两点」之间「传输」⽂字、图⽚、⾳频、视频等「超⽂本」数据的「约定和规范」。 超⽂本传输协议,它可以拆成三个部分&…

HTTP与HTTPS的区别,详细介绍

需要查看更多的计算机网络相关的知识?点击这里 目录 HTTP与HTTPS介绍 HTTPS和HTTP的主要区别 HTTPS的主干层次介绍 客户端在使用HTTPS方式与Web服务器通信时的步骤 CA证书的申请及其使用过程 SSL与TLS SSL/TLS历史 SSL/TLS协议的基本过程 SSL/TLS 密码套件…

C++ vector与map的结合运用

目录 vector和map的简单介绍: 今天我们用vector容器和map容器实现以下简单的功能: 案例描述: 图解: ​ 实现步骤: 代码实现: 运行结果: vector和map的简单介绍: map和vector都是C STL&…

系统漏洞利用与提权

任务二:系统漏洞利用与提权 任务环境说明: 服务器场景:PYsystem0033 服务器场景操作系统:Ubuntu 服务器场景用户名:未知 密码:未知 1.使用nmap扫描靶机系统,将靶机开放的端口号按从小到大的顺序作为F…

pycharm内置Git操作失败的原因

文章目录 问题简介解决方案DNS缓存机制知识的自我理解 问题简介 最近在pycharm中进行代码改动递交的时候,总是出现了连接超时或者推送被rejected的情况,本以为是开了代理导致的,但是关闭后还是推送失败,于是上网查了以后&#xf…

集群模式下,redis锁的问题,红锁

在使用redis来实现分布式锁的时候,如果redis是集群的,比如1主4从,这种主从模式就会存在延迟问题,导致加锁出现问题。 此时就应该使用红锁的方案,即在代码中不依赖于主从,将这5台机器视为平等的&#xff0c…

redis锁

用django-redis很容易实现redis分布式锁,但本文介绍用另外一种方式redis模块来实现redis锁—过期后自动解锁。 from celery_demo.celery import app import time from celery import Celery, platforms # from django.core.cache import cache import redisplatfor…

深入理解Redis分布式锁

背景 项目中有个场景是做数据分析,然后将目标数据保存在db,有个要求是将同类型的目标数据值保存一次,因此每次保存时需要判断之前是否已经存在了,由于qps较高,之前使用redis来缓存已经保存的数据,来抵挡对db的大部分流…

redis锁的几种实现

1. redis加锁分类 redis能用的的加锁命令分表是INCR、SETNX、SET 2. 第一种锁命令INCR 这种加锁的思路是, key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作进行加一。 然后其它用户在执行 INCR 操作进行加一时&#xff0…

java redis锁_Java中Redis锁的实现

由于具体业务场景的需求,需要保证数据在分布式环境下的正确更新,所以研究了一下Java中分布式锁的实现。 Java分布式锁的实现方式主要有以下三种: 数据库实现的乐观锁 Redis实现的分布式锁 Zookeeper实现的分布式锁 其中,较常用的是前两种方式,但是数据库实现方式需要较多的…

设计模式之~工厂系列

目录 简单工厂模式 工厂方法模式 简单工厂 VS 工厂方法 抽象工厂模式: 拓展: 利用简单工厂模式优化抽象工厂 利用反射抽象工厂 进行优化 反射配置文件抽象工厂进行优化 简单工厂模式 优点:简单工厂模式的最大优点在于工厂类包含…

【无标题】win11打开VMware虚拟机蓝屏解决

win11打开VMware虚拟机蓝屏解决 win11打开虚拟机蓝屏!!!解决方案:win11支持16.2以上版本,其他版本不兼容,可用文末的卸载工具卸载之前已安装版本(深度卸载),然后下载16.2…

数字图像学笔记 —— 18. 图像抖动算法

文章目录 为什么需要图像抖动图像抖动算法实现的基本思路常见图像抖动算法实现Floyd-Steinberg 抖动算法Atkinson 抖动算法算法实现 为什么需要图像抖动 在数字图像中,为了表示数字图像的细节,像素的颜色深度信息最少也是8位,即 0 − 256 0…

vulhub-Jarbas(易)

打靶练习Jarbas 0x00 部署0x01 信息收集:端口扫描、服务发现0x02 路径爬取0x03 反弹shell0x04 内网信息收集0x05 crontab定时任务提权0x06 总结 0x00 部署 靶机:下载地址 宿主机:kali2021版本 0x01 信息收集:端口扫描、服务发现…

什么是先进存力?曙光存储:内铸数字底座,外成实践底气

5月26日,由DOIT联合中国电子学会共同举办的2023数据基础设施技术峰会在苏州举办。中科曙光存储产品事业部副总经理张新凤受邀参会,并在主论坛发表主题演讲,与数百位业内专业嘉宾伙伴共探存力发展未来。 什么样的存力能打造数字经济底座&#…