IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 关于fidders抓包显示sessionOut=true的问题-页面缓存问题 -> 正文阅读

[网络协议]关于fidders抓包显示sessionOut=true的问题-页面缓存问题

游览器为了节约资源,是会缓存页面的,但这也会带来一个问题,那就是因为缓存了页面,你再次打开页面它不会发送请求(游览器觉得页面没有变化),导致你页面是打开了,但是你的登录状态出现了问题(因为没有发送登录请求,你的登录状态没有更新),也就是为什么fidders抓包,会显示sessionOut=true? ? =====>? ?登录状态过期/未登录

?网上有很多处理页面缓存的方法,比如:

1.打包的时候把html打包成jsp,然后添加一些东西

2.在meta里添加一些东西防止缓存

3.给请求添加时间戳等等;

踩坑记录:

先说结论,我的项目,给请求添加【时间戳】,是没有用的,仍然会出现sessionOut的情况,请求发不出去;

所以我采用了再meta里添加一些东西 + 将html打包成jsp 的结合方法,来处理这个问题


?将html打包成jsp尾缀文件,可防止页面缓存(亲测有效)

第一步:查看这篇博客,有思路和说明

(1条消息) vue cli 直接打包成 index.jsp 文件_ruisenLi的博客-CSDN博客https://blog.csdn.net/ruisenLi/article/details/121075443?我按照这篇博客来进行打包,结果确实得到了打包后的jsp文件

但是,当我实际部署了这个静态页面后,打开页面,会提示? 【错误码500】,这就是上面这篇博客里提到,但是没有说明确的地方,

我对这里进行一下补充说明:

因为使用jsp格式,同时,打包时还使用的是??raw-loader?插件?解析jsp,会导致后端无法解析?<%=??这种东西,如果还有,那么后端就会返回500错误码,所以,需要将模板文件中的所有??<%=??给删掉,不然

?

第二步:其他的按照这篇博客来打包就ok了。?

第三步:你会发现部署后的静态文件,中文乱码

这是因为打包后的首页(这里打包成了jsp尾缀的文件,一般打包是index.html),需要加上jsp标识,这样才不会中文乱码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; 

这是我打包后的jsp首页:? 注意第一行(jsp标识,解决打包后页面中文乱)??

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <meta http-equiv="Cache-control" content="no-store, must-revalidate">
<!-- 防止缓存 -->
  <meta http-equiv="Expires" content="-1">
  <meta http-equiv="Cache" content="no-store">
  <meta http-equiv="Pragma" content="no-store">
  <meta name="renderer" content="webkit">
  <title></title>
  <link href="css/chunk-vendors.62e4da29.css" rel="preload" as="style">
  <link href="css/xxx.179117ef.css" rel="preload" as="style">
  <link href="js/chunk-vendors.363e9f0d.js" rel="preload" as="script">
  <link href="js/xxx.af92b656.js" rel="preload" as="script">
  <link href="css/chunk-vendors.62e4da29.css" rel="stylesheet">
  <link href="css/xxx.179117ef.css" rel="stylesheet">
</head>

<body><noscript><strong>暂不支持该浏览器,请使用chrome等浏览器访问</strong></noscript>
  <div id="app"></div>
  <script src="js/chunk-vendors.363e9f0d.js"></script>
  <script src="js/xxx.af92b656.js"></script>
</body>

</html>

需要在打包后的首页的【首行】,加上这行代码,就能解决部署后的静态页面中文乱码问题

????????你可以在打包后手动打开页面粘贴上这行,也可以在public/index.html这个模板文件的首行先加上这行,这样,打包完就会自动自动有这行,不用手动去粘贴~?

注意:模板文件中,要删掉我上面说的 <%= 内容,这样打包后的页面才不会报错!

?


?

给请求添加时间戳的方法:(无法处理页面被缓存问题)

????????我封装的请求api中,通过axios拦截器,针对get、post进行参数的拦截处理,分别针对params和data中的参数添加上【? _t:1564156? 】这样的时间戳,确保每个请求都是差异的,虽然用来处理页面缓存而不发送请求的问题,但是能让每个请求的独一的,可能某天就能用上呢?记录一下~

具体代码如下:

//请求拦截器,在请求发送前,进行参数的处理,添加时间戳
axios.interceptors.request.use(config => {
  if (config.method === 'get') {
    // 缓存问题,get请求添加时间戳
    //通过扩展运算符号,列出本身传入的params参数,然后再添加一个_t时间戳参数
    config.params = {
      ...config.params,
      _t: Date.parse(new Date()) / 1000
    }
  } else if (config.method === 'post') {  //当前请求时post时
     //同理,展开本身传入的data参数,再添加时间戳参数
    const obj = { 
        ...config.data,
         _t: Date.parse(new Date()) / 1000 
    }
    config.data=obj
  }
})

这样,当你发送请求的时候,就会在参数里带上一个? _t 的时间戳参数,表示每个请求都是不同的

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-19 17:56:53  更:2021-11-19 17:58:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:41:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码