http和https的区别(面试题)

概念

Http:HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写。HTTP 协议和 TCP/IP 协议族内的其他众多的协议相同, 用于客户端和服务器之间的通信。从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。也是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP)。

Https:HTTPS是身披SSL外壳的HTTP。是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性

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

简单对比
http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

HTTP与HTTPS的区别

  1. https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

  2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

  3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

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

  5. HTTP与HTTPS的工作原理上的区别

HTTP的工作原理:一次HTTP操作称为一个事物,其工作过程可分为四步

1、Client与Server建立连接,单击某个超链接,HTTP的工作开始。

2、连接建立后,Client发送一个请求给Server,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符,Client信息和可能的内容。

3、Server接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括Server信息、实体信息和可能的内容。

4、Client接收Server返回的信息通过浏览器显示在用户的显示屏上,然后Client和Server断开连接。

HTTPS的工作原理就加入了SSL层的安全性和保护性操作

1、Client使用HTTPS的URL访问Web服务器,要求与Web服务器建立SSL连接。

2、Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。

3、客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。

4、客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。

5、Web服务器利用自己的私钥解密出会话密钥。

6、Web服务器利用会话密钥加密与客户端之间的通信。

  1. 两者优缺点对比:HTTPS的优缺点

优点:

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

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

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

缺点:

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

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

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

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

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

http常见状态码

Http码分类
分类 分类描述
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误
常用Http状态码
200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个月学通Python(二十):Python制作报表(Web开发)

专栏介绍 结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 文章目录 专栏介绍制作报表导出Excel报表导出PDF报表生成前端…

python 写个excle表格数据导入mysql数据的服务

下面是一个使用Python将Excel表格数据导入MySQL数据库的示例代码。需要使用pandas和MySQL Connector库。 pythonimport pandas as pd import mysql.connector# 读取Excel文件 df pd.read_excel(data.xlsx)# 连接MySQL数据库 cnx mysql.connector.connect(useryour_username, …

华为无线ac+ap旁挂二层组网常用配置案例

AC控制器理解配置步骤: capwap source interface Vlanif 100 //源IP回包地址 wlan ssid-profile name test //新建个模版名称为test ssid test //wifi名称 wlan security-profile name test //建立安全模版也叫test security wpa-wpa2 psk pass-phrase admin123 a…

linux 安装 cuda

需求: inux 下安装 cuda 进程: 先查看一下系统版本 uname -a查看能支持什么版本的cudacuda toolkit 下载 wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run sudo sh cuda_11.1.0_4…

API 接口是什么?怎么对接 API?

一、API接口是什么? API接口即应用编程接口,是一些预先定义的函数,可以提供应用程序与开发人员基于某软件或硬件以访问一组例程的能力。简单来说,API接口相当于信息的桥梁,它可以让不同平台、应用程序或系统共享数据&…

红帽不再公开RHEL源码,下游如何应对,CentOS的最佳替代需要重新选择

之前写过两篇centos替代的文章 CentOS7将在三年后停止支持,有哪些替代品_centos7 替代_gsls200808的博客-CSDN博客 CentOS8替代盘点_centos8替代品_gsls200808的博客-CSDN博客 现在情况又有新变化了。 当地时间 6 月 21 日,红帽发布公告称&#xff0…

对Element DatePicker时间组件的封装,时间组件开始时间和结束时间绑定

背景 我们时常有时间范围选择,需要选择一个开始时间和一个结束时间给后端,但我们给后端的是两个字段, 分别是开始时间和结束时间,现在使用element绑定的值是一个数组,我们还要来回处理,很麻烦列表也的查询…

JAVA集成国密SM2

JAVA集成国密SM2加解密 一、pom配置二、代码集成2.1、目录结构2.2、源码2.3、测试 三、相关链接 国密算法概述:https://blog.csdn.net/qq_38254635/article/details/131801527 SM2椭圆曲线公钥密码算法 为非对称加密,基于ECC。该算法已公开。由于该算法…

react使用SVGA特效 常用api

下载插件 npm install svgaplayerweb --save react中代码 import React, { useEffect } from react; import SVGA from svgaplayerweb const Svga () > {const bofang () > {var player new SVGA.Player(#demoCanvas);//创建实例var parser new SVGA.Parser(#demo…

centos7安装 mongodb

一、rpm安装 1.1、配置MongoDB Enterprise的yum 源文件 [mongodb-enterprise] nameMongoDB Enterprise Repository baseurlhttps://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/3.4/$basearch/ gpgcheck1 enabled1 gpgkeyhttps://www.mongodb.org/static/pgp…

Pytest使用fixture实现token共享

同学们在做pytest接口自动化时,会遇到一个场景就是不同的测试用例需要有一个登录的前置步骤,登录完成后会获取到token,用于之后的代码中。首先我先演示一个常规的做法。 首先在conftest定义一个login的方法,方法返回token pytes…

【Rust 基础篇】Rust Cargo 自定义构建

导言 在 Rust 中,Cargo 是一个功能强大的构建工具和包管理器,它可以帮助我们管理项目的依赖、构建和发布。Cargo 提供了许多默认的构建行为,但有时我们需要自定义构建过程以满足特定的需求。本篇博客将详细介绍如何在 Rust 中使用 Cargo 自定…

【Maven三】——maven生命周期和插件

系列文章目录 Maven之POM介绍 maven命令上传jar包到nexus 【Maven二】——maven仓库 maven生命周期和插件 系列文章目录前言一、什么是生命周期&why1.三套生命周期2.clean生命周期3.default生命周期4.site生命周期5.命令行与生命周期 二、插件目标三、插件绑定1.内置绑定2…

Matlab使用etopo在线地形数据绘制中国区域DEM地形图

以下是使用MATLAB绘制中国区域DEM地形图的过程和代码示例: 1. 首先,需要从etopo网站下载中国区域的地形数据。进入etopo网站(https://www.ngdc.noaa.gov/mgg/global/etopo5.HTML),找到“Download Global Relief Data”…

app爬虫(2)谷歌Nexus6P Frida HOOK 实战

一,环境准备(手机有root): PC端:frida16.0.3 pip3 install frida16.0.3PC端:frida-tools12.0.2 pip3 install frida-tools12.0.2手机端:frida-server16.0.2 下载地址:https://gith…

C++ 程序设计:单例+原型(手机原型机和量产机)

1.简介 1.1单例模式 C单例模式被广泛应用于需要全局唯一实例的场景。以下是一些常见的使用场景: 日志记录器 在大多数应用程序中,需要一个全局的日志记录器来记录系统运行时的事件和错误。使用单例模式可以确保只有一个日志记录器实例,并能…

韩老师多目标优化:多目标粒子群算法

一. 内容简介 韩老师多目标优化:多目标粒子群算法 视频: 【2022.2.5韩老师十七课时(中)多目标优化:多目标粒子群算法】 https://www.bilibili.com/video/BV1eS4y157Xg/?share_sourcecopy_web&vd_source7b377d4a833a67013df5…

libevent:windows环境配置+QT使用

目录 libevent是什么 编译 QT使用 测试代码 libevent是什么 Fast portable non-blocking network programming with Libevent http://www.wangafu.net/~nickm/libevent-book/TOC.html 这篇文档讲的很清楚,尤其是Chapter 1: A tiny introduction to asynchro…

大数据面试基础回答

以下是Hive大数据领域的一些常见问题: 数据倾斜:在Hive中,数据倾斜是一个常见的问题,它会导致查询结果不准确或查询过程异常。为了解决数据倾斜问题,可以尝试以下方法: 使用更高效的数据倾斜处理工具&…

cURL error 1014: SSL verify failed 报错

报错 [ERROR] cURL error 1014: SSL verify failed (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://mgobe.tencentcloudapi.com/[247] in /www/wwwroot/*.net/vendor/ [ERROR] #0 /www/wwwroot/tencentgame.net/vendor/tencentcloud/tencentcloud-sdk…