当前位置: 首页 > 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…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道

文/法律实务观察组 在债务重组领域&#xff0c;专业机构的核心价值不仅在于减轻债务数字&#xff0c;更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明&#xff0c;合法债务优化需同步实现三重平衡&#xff1a; 法律刚性&#xff08;债…...

【Ftrace 专栏】Ftrace 参考博文

ftrace、perf、bcc、bpftrace、ply、simple_perf的使用Ftrace 基本用法Linux 利用 ftrace 分析内核调用如何利用ftrace精确跟踪特定进程调度信息使用 ftrace 进行追踪延迟Linux-培训笔记-ftracehttps://www.kernel.org/doc/html/v4.18/trace/events.htmlhttps://blog.csdn.net/…...

十二、【ESP32全栈开发指南: IDF开发环境下cJSON使用】

一、JSON简介 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;具有以下核心特性&#xff1a; 完全独立于编程语言的文本格式易于人阅读和编写易于机器解析和生成基于ECMAScript标准子集 1.1 JSON语法规则 {"name"…...