为什么重定向到同一URL(带有斜杠)要比该URL返回响应花更多的时间?

时间:2019-04-10 11:08:03

标签: python jquery http redirect flask

我已经为演示日历站点创建了实验性备份功能,它使用以下Flask蓝图将calendar.jsonnotepad.txt文件复制到备份文件夹中:

import os, time, shutil
from flask import Blueprint

backup = Blueprint("backup", __name__)

@backup.route("/backup/create/", methods = ["GET"])
def backup_create():
  # get the current time
  current = time.strftime("%Y_%m_%d-%H:%M:%S")
  # create the backup folder (if it doesn't exist)
  if not os.path.isdir("./storage/backup/" + current):
    os.makedirs("./storage/backup/" + current)
  # create the copies
  shutil.copyfile("./storage/calendar.json", "./storage/backup/" + current + "/calendar.json")
  shutil.copyfile("./storage/notepad.txt", "./storage/backup/" + current + "/notepad.txt")
  # return the name of the backup folder
  return current, 200

然后我正在使用jQuery.get(..., ...)方法将GET请求发送到/backup/create,如下所示:

if(confirm("Are you sure you'd like to create a backup?")) {
  $.get("/backup/create", function(time) {
    alert("Files copied to the " + time + " folder.");
  });
}

发送请求时,我在控制台上获得了以下xhr输出:

Time

我知道可以使用以下方法在我的GET请求中添加一个斜杠来摆脱第一个请求:

$.get("/backup/create/" ...

但是我想知道的是, 为什么 完成重定向所需的时间比返回请求的实际请求要花费更多的时间吗?

我尝试通过删除其他几个Ajax请求上的斜杠来复制此代码,并且得到了相同的结果。

甚至有一次重定向完成的重定向时间比实际请求多了43毫秒。

其他信息:

  1. 我正在使用:FireFox 66.0.1(64位),Python 3.6.7,Flask 1.0.2和jQuery 3.3.1
  2. 前三个控制台消息与这个问题无关。

更新:在我为此感到沮丧之前,我想让所有人都知道,是的,我知道这只是几毫秒,而且没有用户会注意到,我只是好奇为什么要花更多的时间。

感谢您的帮助和建议。

0 个答案:

没有答案