Vue localhost 从 http 307 到 https

news2024/11/20 6:31:32
  • Vue localhost 从 http 307 到 https
    • HTTP 307 与 HSTS
      • HTTP 307
      • 中间人攻击
      • HSTS - HTTP Strict Transport Security
    • 如何解决问题

Vue localhost 从 http 307 到 https

一个 Vue2 项目之前本地都是通过 HTTPlocalhost 访问(如下) 后来突然无法访问了, 提示的错误内容是 ERR_SSL_PROTOCOL_ERROR
在这里插入图片描述

在这里插入图片描述

我打开开发工具的 Network 一看, 本来好好的 HTTP307 到了 HTTPS. 为啥会出现这种情况呢?

在这里插入图片描述

因为我本地的另一个 localhost 开启了 HTTPS 而且使用了 HSTS.

(🤫: 如果你看到最后再回到这儿, 其实可以手动把 localhost 加入到浏览器对 HSTS 的维护达到同样效果的)

在这里插入图片描述

HTTP 307 与 HSTS

HTTP 307

HTTP 状态码是服务器对浏览器的响应. 每个状态码都是一个三位数字, 其中第一位数字定义了响应的类型. 3xx 表示重定向, 即浏览器会重定向到一个新的 URL, 并且这个 URLHTTP 响应头 Location 的值. 如上图

307 代表的是临时重定向状态码, 与 302303 不同的是, 307 不允许重定向修改请求方法(比如从 POST 修改为 GET), 相对来说就更加严格.

中间人攻击

为什么直接重定向就可以了, 还半路杀出来个 HSTS 呢? HSTS 解决了哪些重定向不能解决的问题呢? 中间人攻击 man-in-the-middle attack.

假设你连上了咖啡店的公共 WiFi, 然后访问你的网上银行账户, 并且是通过 HTTP 访问网站的, 那么中间人就可以拦截你的 HTTP 请求并重定向到一个和你要去的网站界面一模一样并且连网站地址都很相似的假网站, 如果你不认真观察就输入账号和密码, 那么你的信息就会被中间人窃取.

HSTS - (HTTP Strict Transport Security)

如果一个网站运行于 HTTPS 之上, 那么 HSTS 强迫浏览器使用安全连接, 任何通过使用 HTTP 访问网站的尝试都将被强制转换为 HTTPS. 实际上, Strict-Transport-Security 就是一个响应头.

大家可以尝试通过 HTTP 访问这个百度
http://www.baidu.com/, 然后看到页面被重定向到 HTTPS.

在这里插入图片描述

那么 HSTS 是如何解决中间人攻击的问题呢? 只要你使用 HTTPS 访问你的网站(比如网上银行)一次并且该网站使用 HSTS, 那么浏览器将会自动并且仅仅使用 HTTPS 访问你的网站.

响应头 Strict-Transport-Security 的值可以包含 max-age=<expire-time>, 表示过期时间, 即在过期时间内对该网站的所有请求都必须使用 HTTPS. 如果之后的请求继续返回 Strict-Transport-Security 响应头, 那么浏览器将会更新过期时间. 过期时间之后, 可以通过 HTTP 访问网站了.

一个问题? 虽然 HSTS 有很多的好处, 但是对于从来没有访问过该网站的用户还是有可能在第一次访问网站的时候使用 HTTP, 即便以后都是 HTTPS 了, 但是这第一次的访问就可能被中间人劫持!

为了解决这个问题, 需要使用 HSTS preload. 在官网是这么介绍的, Google 维护了一个 HSTS preload 服务, 通过该服务提交你的域名(domain), 你的域名就会被加入一个 preload 列表中. 这个列表是被硬编码到 Chrome 中的并且该列表中的域名都只会通过 HTTPS 访问. 这就避免了第一次通过 HTTP 访问的问题, 因为如果你的网站域名在 preload 列表中, 浏览器压根不允许你通过 HTTP 访问.

其他许多主流浏览器, 比如Firefox, Opera, Safari, Edge甚至IE 11都使用了基于上述列表的HSTS预加载列表. 但是注意虽然主流浏览器都支持这个列表, 但它并不是HSTS` 规范中的一部分.

在这里插入图片描述

如何解决问题

很明显, 之前的截图说明了就是因为另一个 HTTPSlocalhost1 开启了 HSTS 导致 HTTPlocalhost2307 到了 HTTPS, 而 localhost2 压根没有 HTTPS, 所以就报错了. 怎么改呢, 那就是让浏览器删除对 localhostHSTS 「记忆」.

通过 chrome://net-internals/#hsts, 我们可以查询是否使用了 HSTS. 很遗憾, 我们的 localhost 榜上有名!

在这里插入图片描述

我们只需要在下面的部分先输入 localhost 后点击 delete 就可以把 localhost 移出浏览器的 HSTS 维护.

在这里插入图片描述

谢谢你看到这里😊

学习需要坚持, 已经一个月没有怎么写技术博客了, 但是这一个月是有不少其他的收获和人生新奇的体验, 祝福每个看到这里的朋友要开开心心呀🥰~ 如果文章内容有错误, 还请评论指正.

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

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

相关文章

静电接地桩的设计和施工

静电接地桩是用于将静电荷引导到地下的装置&#xff0c;以确保工作环境。以下是一般静电接地桩设计的一些建议和步骤&#xff1a; 1. 选择合适的位置&#xff1a;静电接地桩应该位于静电产生源附近&#xff0c;并接近地面。可以选择在室内或室外&#xff0c;但要确保容易维护和…

web中引入live2d的moc3模型

文章目录 前言下载官方sdk文件使用ide编译项目&#xff08;vsCode&#xff09;项目初始化使用vsCode项目树介绍使用live server运行index页面 演示导入自己的模型并显示modelDir文件resources文件夾案例模型修改modelDir然後重新打包項目運行 前言 先跟着官方sdk调试一遍&…

14.live555mediaserver-play请求与响应

live555工程代码路径 live555工程在我的gitee下&#xff08;doc下有思维导图、drawio图&#xff09;&#xff1a; live555 https://gitee.com/lure_ai/live555/tree/master 章节目录链接 0.前言——章节目录链接与为何要写这个&#xff1f; https://blog.csdn.net/yhb1206/art…

基于C/S架构工作原理序号工作步骤和理论的区别

基于C/S架构工作原理序号工作步骤和理论的区别 SSH 概念 对称加密linux 系统加密&#xff0c;就是加密和揭秘都是使用同一套密钥。 非对称加密有两个密钥&#xff1a;“私钥”和“公钥”。私钥加密后的密文&#xff0c;只能通过对应的公钥进行揭秘。而通过私钥推理出公钥的…

深入解析浏览器Cookie(图文码教学)

深入解析浏览器Cookie 前言一、什么是 Cookie?二、Cookie的特点二、如何创建 Cookie&#xff1f;三、服务器如何获取 Cookie四、Cookie 值的修改4.1 方案一4.2 方案二 五、浏览器查看 Cookie六、Cookie 生命控制七、Cookie 有效路径 Path 的设置八、案例&#xff1a;Cookie 练…

183_Power BI 折线图之平滑线性类型

183_Power BI 折线图之平滑线性类型 一、背景 曾几何时&#xff0c;为了在 Power BI 让折线图显示出平滑曲线&#xff0c;各路大佬是尽显神通。如今时间来到 2023 年 7 月&#xff0c;刚刚更新的 Power BI 已经支持折线图的平滑曲线。让我们来看看最终效果。 同时&#xff0c…

【SpringBoot3】--04.核心原理

文章目录 SpringBoot3-核心原理1.事件和监听器1.1生命周期监听1.1.1 监听器-SpringApplicationRunListener1.1.2生命周期全过程 1.2事件触发时机1.2.1各种回调监听器1.2.2完整触发流程 1.3SpringBoot事件驱动开发 2.自动配置原理2.1入门理解2.1.1自动配置流程2.1.2SPI机制2.1.3…

apache ranger

简介&#xff1a; ranger 是一个用于启用、监控和管理跨hadoop平台的全面的数据安全框架。 ranger的愿景是在hadoop系统中提供全面的安全管理。随着yarn的出现&#xff0c;hadoop 平台能够支持真正的数据糊架构。企业能够在多租户环境中运行多个任务负载。hadoop 数据安全需要…

面向对象编程/原型及原型链

一.面向对象 (1)对象是什么?为什么要面向对象? 通过对代码的抽象,进而描述单个种类物体的方式. (2)特点:面向对象-逻辑上迁移更加灵活,代码的复用性更高,高度的模块化. (3)对象的理解 1.对象是对于单个物体的简单抽象; 2.对象是容器,封装了属性和方法 **属性:对象状态…

Python官方文档中Availability: not Emscripten, not WASI是什么意思?

在我们阅读Python官方文档中&#xff0c;当某个模块或特性的文档中写着 "Availability: not Emscripten, not WASI" 时&#xff0c;它表示该模块或特性在 Emscripten 和 WASI 环境中不可用。 Emscripten 是一个工具链&#xff0c;用于将C和C代码编译为WebAssembly&am…

【Python从入门到进阶】28、xpath的安装以及使用

接上篇《27、Handler处理器使用及代理和Cookie登录实现》 上一篇我们讲解了urllib中Handler处理器的基本使用&#xff0c;以及实现代理访问和Cookie的登录。本篇我们来讲解HTML文档解析中的核心插件xpath的安装及使用。 一、xpath介绍 XPath是由W3C&#xff08;World Wide We…

kotlin中使用Room数据库(包含升降级崩溃处理)

目录 1.导入依赖库 2.数据实体类 3.数据访问对象 (DAO) 4.数据库类 5.调用DAO里面的“增、删、改、查”方法 6.数据库升降级处理 升级&#xff08;保存数据库历史数据&#xff09;&#xff1a; 升级&#xff08;不保存数据库历史数据&#xff09;&#xff1a; 降级&…

剑指 offer 数学算法题:数值的整数次方

题目描述&#xff1a; 实现 pow(x, n) &#xff0c;即计算 x 的 n 次幂函数&#xff08;即&#xff0c;xn&#xff09;。不得使用库函数&#xff0c;同时不需要考虑大数问题。 分析&#xff1a; 直接计算法&#xff0c;通过判断 n 的正负&#xff0c;若为负数&#xff0c; x 即…

无法加载文件\venv\Scripts\Activate.ps1,因为在此系统上禁止运行脚本

一、问题发生 运行环境Windows 10、python 3.11.1、IDE VScode 当然你可能使用了其他IDE&#xff0c;例如pycharm等&#xff0c;不过没有关系解决问题的方法都是一致的。 报错信息如下图所示&#xff1a; actvivate.ps1这个脚本文件是用来激活python虚拟环境的。 其实&…

LabVIEW开发图像采集和图像处理程序

LabVIEW开发图像采集和图像处理程序 扫描电子显微镜&#xff08;SEM&#xff09;是一种功能强大的工具&#xff0c;广泛用于高分辨率的生物和半导体样品检测。然而&#xff0c;对于大面积或3D成像&#xff0c;SEM成像是一个耗时的过程。MBSEM旨在通过同时扫描多个像素来减少采…

spring5源码篇(10)——spring-aop代理过程

spring-framework 版本&#xff1a;v5.3.19 文章目录 1、ProxyFactory1.1、createAopProxy() 创建AopProxy1.2、getProxy() 创建代理对象1.3、JdkDynamicAopProxy#invoke 代理逻辑1.3.1、advised.getInterceptorsAndDynamicInterceptionAdvice() 匹配添加的advisor并转化成所需…

集群基础3——haproxy负载均衡apache

文章目录 一、环境说明二、安装配置httpd三、安装配置haproxy四、验证http负载均衡五、配置https负载均衡六、haproxy网页监控6.1 监控参数详解6.2 页面操作 一、环境说明 使用haproxy对apache进行负载均衡。 主机IP角色安装服务真实IP&#xff1a;192.168.161.129VIP&#xff…

通识强化学习,初步了解强化学习的运行规则和估值方法

1.强化学习的发展及应用现状 1.1.强化学习的由来 目前&#xff0c;大家认为强化学习&#xff08;Reinforcement Learning, RL&#xff09;的来源与两个领域密切相关&#xff1a;即心理学的动物试错学习和最优控制的优化理论。 这里都是有相应的共性的&#xff0c;在environme…

PostgreSQL MVCC的弊端优化方案

我们之前的博客文章“我们最讨厌的 PostgreSQL 部分”讨论了大家最喜欢的 DBMS 多版本并发控制 (MVCC) 实现所带来的问题。其中包括版本复制、表膨胀、索引维护和真空管理。本文将探讨针对每个问题优化 PostgreSQL 的方法。 尽管 PostgreSQL 的 MVCC 实现是 Oracle 和 MySQL 等…

java每日一题:HashMap的工作原理

面试官&#xff1a;欢迎参加我们的面试。请你解释一下Java中HashMap的工作原理。&#x1f60a; 面试者&#xff1a;HashMap是一种基于哈希表的数据结构&#xff0c;它可以存储键值对。在HashMap内部&#xff0c;使用一个数组来存储数据&#xff0c;数组中的每个位置被称为桶&a…