【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)中完成加密与传输,解决了队头阻塞问题,减少了连接建立和恢复的延迟

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

百度 文心一言 vs 阿里 通义千问 哪个好?

背景介绍: 在当前的人工智能领域,随着大模型技术的快速发展,市场上涌现出了众多的大规模语言模型。然而,由于缺乏统一且权威的评估标准,很多关于这些模型能力的文章往往基于主观测试或自行设定的排行榜来评价模型性能…

MySQL聚合查询分组查询联合查询

#对应代码练习 -- 创建考试成绩表 DROP TABLE IF EXISTS exam; CREATE TABLE exam ( id bigint, name VARCHAR(20), chinese DECIMAL(3,1), math DECIMAL(3,1), english DECIMAL(3,1) ); -- 插入测试数据 INSERT INTO exam (id,name, chinese, math, engli…

python学习笔记1

首先,想要学习一个东西,要弄清楚他是做什么的。需要用什么东西去完成他。 python是一种解释型编辑语言,类似于百度搜索引擎,主要目的是搜集资料和整理资料。 了解到这个目的之后,pytohon的学习和使用就简单很多。 第一…

15 go语言(golang) - 并发编程goroutine原理及数据安全

底层原理 Go 的 goroutine 是一种轻量级的线程实现,允许我们在程序中并发地执行函数。与传统的操作系统线程相比,goroutine 更加高效和易于使用。 轻量级调度 用户态调度:Go 运行时提供了自己的调度器,这意味着 goroutine 的创建…

dmdba用户资源限制ulimit -a 部分配置未生效

dmdba用户资源限制ulimit -a 部分配置未生效 1 环境介绍2 数据库实例日志报错2.1 mpp01 实例日志报错2.2 mpp02 实例日志报错 3 mpp02 服务器资源限制情况4 关闭SELinux 问题解决4.1 临时关闭 SELinux4.2 永久关闭 SELinux 5 达梦数据库学习使用列表 1 环境介绍 Cpu x86 Os Ce…

【计算机网络】核心部分复习

目录 交换机 v.s. 路由器OSI七层更实用的TCP/IP四层TCPUDP 交换机 v.s. 路由器 交换机-MAC地址 链接设备和设备 路由器- IP地址 链接局域网和局域网 OSI七层 物理层:传输设备。原始电信号比特流。数据链路层:代表是交换机。物理地址寻址,交…

【新人系列】Python 入门(十四):文件操作

✍ 个人博客:https://blog.csdn.net/Newin2020?typeblog 📝 专栏地址:https://blog.csdn.net/newin2020/category_12801353.html 📣 专栏定位:为 0 基础刚入门 Python 的小伙伴提供详细的讲解,也欢迎大佬们…

JVM指令集概览:基础与应用

写在文章开头 在现代软件开发中,Java 语言凭借其“一次编写,到处运行”的理念成为了企业级应用的首选之一。这一理念的背后支撑技术正是 Java 虚拟机(JVM)。JVM 是一个抽象的计算机,它实现了 Java 编程语言的各种特性,并且能够执行编译后的字节码文件。了解 JVM 的工作原…

HarmonyOS4+NEXT星河版入门与项目实战(22)------动画(属性动画与显示动画)

文章目录 1、属性动画图解2、案例实现-小鱼移动游戏1、代码实现2、代码解释3、资源图片4、实现效果3、显示动画4、案例修改-显示动画5、总结1、属性动画图解 这里我们用一张完整的图来汇整属性动画的用法格式和使用的主要属性范围,如下所示: 2、案例实现-小鱼移动游戏 1、代…

diffusion model: prompt-to-prompt 深度剖析

参考:diffusion model(十四): prompt-to-prompt 深度剖析-CSDN博客 P2P提出的Motivation 目前大火的文生图技术(text to image),给定一段文本(prompt)和随机种子,文生图模型会基于这两者生成一张图片。生…

【vue for beginner】Vue该怎么学?

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 vue2 和 vue3 Vue2现在正向vue3逐渐更新中,官方vue2已经不再更新。 这个历程和当时的pyt…

Python语法基础(三)

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 我们这篇文章来说一下函数的返回值和匿名函数 函数的返回值 我们先来看下面的这一段函数的定义代码 # 1、返回值的意义 def func1():print(111111111------start)num166print…

光伏功率预测!Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型时序预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型多变量时序光伏功率预测 (Matlab2023b 多输入单输出) 1.程序已经调试好,替换数据集后,仅运行一个main即可运行,数据格式…

Jpype调用jar包

需求描述 ​   公司要求使用python对接口做自动化测试,接口的实现是Java,部分接口需要做加解密,因此需要使用python来调用jar包来将明文加密成密文,然后通过http请求访问接口进行测试。 如何实现 1.安装Jpype ​   首先我…

HTML飞舞的爱心

目录 系列文章 写在前面 完整代码 代码分析 写在后面 系列文章 序号目录1HTML满屏跳动的爱心(可写字)2HTML五彩缤纷的爱心3HTML满屏漂浮爱心4HTML情人节快乐5HTML蓝色爱心射线6HTML跳动的爱心(简易版)7HTML粒子爱心8HTML蓝色…

前端面试题-1(详解事件循环)

1.了解浏览器的进程模型 1.什么是进程? 程序运行需要有它自己专属的内存空间,可以把这块内存空间简单的理解为进程 每个应用至少有一个进程,进程之间相互独立,即使要通信,也需要双方同意。 2.什么是线程&#xff1f…

记录QT5迁移到QT6.8上的一些问题

经常看到有的同学说网上的教程都是假的,巴拉巴拉,看看人家发布时间,Qt官方的API都会有所变动,多搜索,多总结,再修改记录。 下次遇到问题多这样搜索 QT 4/5/6 xxx document,对比一下就知道…

python常见问题-pycharm无法导入三方库

1.运行环境 python版本:Python 3.9.6 需导入的greenlet版本:greenlet 3.1.1 2.当前的问题 由于需要使用到greenlet三方库,所以进行了导入,以下是我个人导入时的全过程 ①首先尝试了第1种导入方式:使用pycharm进行…

【计算机网络】—— 物理层

文章目录 前言 一、基本概念 1. 传输媒体 2. 物理层协议的主要任务 3. 物理层的任务 二、传输媒体 1. 导引型 同轴电缆 双绞线 光纤 电力线 2. 非导引型 三、传输方式 1. 串行、并行 2. 同步、异步 3. 单工、半双工、全双工 四、编码和调制 1. 基本概念 2. …

OGRE 3D----4. OGRE和QML共享opengl上下文

在现代图形应用开发中,OGRE(Object-Oriented Graphics Rendering Engine)和QML(Qt Modeling Language)都是非常流行的工具。OGRE提供了强大的3D渲染能力,而QML则用于构建灵活的用户界面。在某些应用场景中,我们需要在同一个应用程序中同时使用OGRE和QML,并且共享OpenGL…