当前位置: 首页 > news >正文

【HTTP】http与https

 http与https的关系

应用层协议:

http(HyperText Transfer Protocol)超文本传输协议;

https(Hypertext Transfer Protocol Secure)超文本传输安全协议;

传输层协议:TCP(Transmission Control Protocol)

http + 加密(SSL/TLS) + 认证(CA证书) + 完整性保护 = https

SSL/TLS:SSL/TLS是HTTP和TCP之间的中转协议,也是一个应用层协议。我们可以把ssl/tls理解为一个黑盒子,我们把数据丢给http,http把数据丢给ssl/tls,ssl/tls把数据加密后丢给tcp,这就是https。

http是明文传输,所以如果报文被劫持,劫持者完全可以读懂报文或修改报文,易被监听、伪装、篡改,是一种不安全的协议。而https是密文传输,它是由http+SSL的结合体,由之前http到tcp,改为了http到SSL到tcp。报文是经过加密的,所以更加安全。https使用需要CA证书,大部分都是付费使用的,http默认使用80端口,https默认使用443端口。

http和https的区别主要体现在以下几个方面:

  • 协议安全性:HTTPS是HTTP的安全版,它使用了SSL/TLS协议来加密数据传输,保证数据在传输过程中的安全性。而HTTP则没有这样的加密功能,数据在传输过程中可能被截获或被篡改。
  • 连接方式:HTTP和HTTPS使用的连接方式不同。HTTP使用的是明文传输,而HTTPS则通过SSL/TLS协议进行加密传输。这种加密方式可以保护数据在传输过程中的安全,防止数据被窃取或篡改。
  • 证书管理:HTTPS需要使用CA(证书颁发机构)颁发的证书来进行加密和解密操作,而HTTP则不需要证书。因此,在使用HTTPS时,需要配置证书,而HTTP则不需要。
  • 连接状态:HTTPS连接在数据传输过程中始终保持加密状态,即使用户与服务器之间的连接在传输过程中被截断,也不会影响数据的加密状态。而HTTP的连接是明文的,一旦被截断,数据就可能被窃取或篡改。
  • 端口号:HTTP和HTTPS使用的端口号不同。HTTP通常使用80端口,而HTTPS则使用443端口。这是通过TCP/IP协议对网络通信进行管理的一种约定。
  • 资源消耗:由于HTTPS使用了加密和解密操作,因此在数据传输过程中需要消耗更多的计算资源。相比之下,HTTP的资源消耗较小。
  • 兼容性:由于HTTPS需要使用CA证书,因此在某些情况下可能会出现兼容性问题。例如,某些操作系统或浏览器可能不支持某些类型的证书或SSL/TLS协议。相比之下,HTTP的兼容性较好,可以在各种设备和操作系统上使用。

影响http网络请求的主要因素

  • 带宽和延迟‌:带宽和延迟是影响HTTP网络请求的重要因素。带宽不足会导致数据传输速度慢,而延迟高则会导致请求响应时间长‌。
  • 服务器负载‌:服务器负载过高会导致处理请求的速度变慢,响应时间延长。如果服务器同时处理大量请求,可能会导致超时或响应延迟‌。
  • 网络状态‌:网络不稳定、网络延迟或中断都会导致HTTP请求失败或响应时间延长。此外,防火墙或路由器的配置错误也可能阻止HTTP请求的传输‌。
  • 客户端配置‌:客户端设备的性能、浏览器设置、超时时间设置等都会影响HTTP请求的成功率和响应时间。例如,客户端的超时时间设置过短,可能会导致请求在等待服务器响应时超时‌。
  • HTTP协议本身的问题‌:HTTP/1.0协议中,连接无法复用,每次请求都需要经历三次握手和慢启动,这在高延迟场景下影响较为明显。此外,HTTP头部冗余和不压缩也会导致通信效率低下‌。

优化http网络请求速度的方法

  • 使用持久连接‌:通过HTTP的keep-alive机制,可以在同一个TCP连接上发送多个HTTP请求,避免每次请求都要重新建立连接‌4。
  • DNS预解析‌:在页面加载过程中提前解析需要请求的域名,减少DNS解析时间‌4。
  • 进行预连接‌:提前建立与服务器的连接,减少握手过程的时间‌4。
  • 负载均衡‌:将请求分发到多个后端服务器,提高系统的并发处理能力和可靠性‌4。
  • CDN加速‌:将静态资源缓存到离用户最近的节点,加快内容传输速度‌4。

http状态码

  • 1xx:指示信息--表示请求已接收,继续处理;
  • 2xx:成功--请求已被接受;
  • 3xx:重定向--要完成请求必须进行更进一步的操作;
  • 4xx:客户端错误--请求有语法错误或请求无法实现;
  • 5xx:服务端错误--服务器未能实现合法的请求;
  • 200:请求被正常处理;
  • 206:客户端之请求资源一部分,服务器只对请求的部分资源执行GET方法,相应报文通过Content-Range指定范围的资源;
  • 301:永久性重定向;
  • 302:临时重定向;
  • 303:希望客户端在请求一个url的时候,通过get方法重定向到另一个url上;
  • 304:发送附带条件的请求时,条件不满足时返回,与重定向无关;
  • 307:临时重定向,强制使用post方法;
  • 400:请求报文语法错误,服务器无法识别;
  • 401:请求需要验证;
  • 403:请求的对应资源禁止被访问;
  • 404:服务器无法找到对应资源;
  • 500:服务器内部错误;
  • 503:服务器正忙;

http1、2、3

协议概述
HTTP1.0短链接,一次数据通信,结束后就断开
HTTP1.1长连接,连接可以复用,按资源顺序复用
HTTP2并发请求,增加http头部压缩,可设置优先级,服务端可主动推送资源
HTTP3采用quic协议基于UDP,在0-RTT(一次TCP就是一个RTT)中完成加密与传输,解决了队头阻塞问题,减少了连接建立和恢复的延迟

相关文章:

【HTTP】http与https

http与https的关系 应用层协议: http(HyperText Transfer Protocol)超文本传输协议; https(Hypertext Transfer Protocol Secure)超文本传输安全协议; 传输层协议:TCP(Tr…...

【Git多人开发与协作之团队的环境搭建】

Git多人开发与协作之团队的环境搭建 新的改变1. Git 的用途2. 分支的概念与类型3. HEAD 和分支指针如何查看 HEAD 指向的位置: 4. 常见的 Git 操作5. 常见问题与解决方法总结GitHub 项目获取实操在新电脑上运行 Git1. 安装 Git2. 配置用户名和邮箱3.配置 Git 和 SSH…...

java基础概念36:正则表达式1

一、正则表达式的作用 作用一:校验字符串是否满足规则;作用二:在一段文本中查找满足要求的内容。——爬虫 二、正则表达式 2-1、字符类 示例: public static void main(String[] args) {System.out.println("a".matc…...

java实现小程序接口返回Base64图片

文章目录 引言I java 接口返回Base64图片接口设计获取验证码图片-base64字符串获取验证码图片-二进制流arraybufferII 小程序端代码过期代码: 显示文件流图片(arraybuffer)知识扩展:微信小程序下载后端返回的文件流引言 场景: 图形验证码 背景: 接口返回arraybuffer的格式…...

网络编程并发服务器的应用

作业2:完成局域网CS模型,局域网内一个服务器,多个客户端连接一个服务器,完成局域网聊天(select函数,poll函数,完成TCP并发服务器)。 poll函数应用: 服务器部分代码&…...

数据结构——停车场管理问题

目录 1、问题描述2、逐步分析1)涉及操作2)代码实现 3、代码整合 1、问题描述 1、题目 设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列&#x…...

道品智能科技移动式水肥一体机:农业灌溉施肥的革新之选

在现代农业的发展进程中,科技的力量正日益凸显。其中,移动式水肥一体机以其独特的可移动性、智能化以及实现水肥一体化的卓越性能,成为了农业领域的一颗璀璨新星。它不仅改变了传统的农业灌溉施肥方式,更为农业生产带来了高效、精…...

AI实习--常用的Linux命令

一、基础命令 1. 切换到根目录。 cd ~ 2. 返回上一级目录。 cd .. 3. 查看当前目录下包括哪些文件和文件夹。 ls 4. 查看当前路径。 pwd 5. 将文件或文件夹剪切到目标目录下。 mv 文件所在路径 目标路径 6. 查看文本文件内容。 cat 文本文件名 7. 创建文件或文件夹…...

Python学习指南 + 谷歌浏览器如何安装插件

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: Python 目录 前言 Python 官方文档的使用 谷歌浏览器中如何安装插件 前言 在学习Python时,我们可能会出现这样的困惑&#x…...

研0找实习【学nlp】15---我的后续,总结(暂时性完结)

当下进展成果: nlptransformerpytorchhuggingfacebert简历环境配置表情识别文本分类 断更了快1个月,2个礼拜找实习,1个礼拜伤心,1个礼拜想我要干什么…… 承认自己的才疏学浅,了解了leetcode,和老师商量了…...

kylin麒麟银河桌面版操作系统安装部署

本文主要描述kylin麒麟银河桌面版操作系统的安装,该操作系统的安装源文件可以从kylin麒麟银河官方网站上下载,商业版本需要申请试用,开源版本可以直接下载使用。 如上所示,x86芯片处理器架构的请下载INTEL版本,华为海思…...

MyBatis插件原理及应用

&#x1f3ae; 作者主页&#xff1a;点击 &#x1f381; 完整专栏和代码&#xff1a;点击 &#x1f3e1; 博客主页&#xff1a;点击 文章目录 介绍<plugins>标签解析拦截器链的工作原理插件的应用场景MyBatis插件应用的四个组件InterceptorChain和Interceptor MyBatis框架…...

[M最短路] lc743. 网络延迟时间(spfa最短路+单源最短路)

文章目录 1. 题目来源2. 题目解析 1. 题目来源 链接&#xff1a;743. 网络延迟时间 相关链接&#xff1a; [图最短路模板] 五大最短路常用模板) 2. 题目解析 怎么讲呢&#xff0c;挺抽象的…很久没写最短路算法了。反正也是写出来了&#xff0c;但脱离了模板&#xff0c;把…...

MySQL 中的锁

MySQL 中的锁&#xff1a;全面解析与应用指南 在 MySQL 数据库的复杂世界里&#xff0c;锁是确保数据一致性、完整性以及并发控制的关键机制。无论是简单的小型应用还是复杂的企业级系统&#xff0c;深入理解 MySQL 中的锁对于优化数据库性能、避免数据冲突和错误都具有至关重要…...

【动手学电机驱动】STM32-FOC(8)MCSDK Profiler 电机参数辨识

STM32-FOC&#xff08;1&#xff09;STM32 电机控制的软件开发环境 STM32-FOC&#xff08;2&#xff09;STM32 导入和创建项目 STM32-FOC&#xff08;3&#xff09;STM32 三路互补 PWM 输出 STM32-FOC&#xff08;4&#xff09;IHM03 电机控制套件介绍 STM32-FOC&#xff08;5&…...

【C++11】尽显锋芒

(续) 一、可变参数模板 C11支持可变参数模板&#xff0c;也就是说支持可变数量参数的函数模板和类模板&#xff0c;可变数目的参数被称 为参数包&#xff0c;存在两种参数包&#xff1a;模板参数包&#xff0c;表示零或多个模板参数&#xff1b;函数参数包&#xff1a;表示零…...

掌握控制流的艺术:Go语言中的if、for和switch语句

标题:掌握控制流的艺术:Go语言中的if、for和switch语句 在Go语言的编程世界中,控制流语句是构建程序逻辑的基石。if语句、for循环和switch语句是我们最常用的控制流工具,它们让我们能够根据不同的条件执行不同的代码块。本文将深入探讨这些语句的使用方法、技术细节和实际…...

飞书会话消息左右排列

飞书会话消息左右排列 1. 飞书登录后&#xff0c;点击头像&#xff0c;弹出菜单有个按钮设置 2. 3....

.net 支持跨平台(桌面)系列技术汇总

1. 首先微软老大哥的.net core 。 .NET Core 是微软开发的一个跨平台、高性能的开源框架&#xff0c;用于构建云和互联网连接的新型应用。 它允许开发者在 Windows、macOS 和 Linux 上使用喜爱的开发工具进行开发&#xff0c;并支持部署到云或本地环境。 .NET Core 是对 .NET …...

springboot 静态资源访问

最近在学习springboot&#xff0c;在学习中一个静态资源访问&#xff0c;难道了我三天&#xff0c;在网上找了很多的资料&#xff0c;又是配置&#xff0c;又是重写WebMvcConfigurationSupport&#xff0c;因为以前没有接触&#xff0c;本来很简单的事情走了很多弯路&#xff0…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...