Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何';浏览器通过HTTP下载的s文件_Javascript_Html_Http_Download - Fatal编程技术网

Javascript 如何';浏览器通过HTTP下载的s文件

Javascript 如何';浏览器通过HTTP下载的s文件,javascript,html,http,download,Javascript,Html,Http,Download,我目前正试图准确地了解浏览器将文件下载到桌面时会发生什么,特别是使用了多少HTTP请求,该过程与仅获取图像或脚本等资源有何不同。如果有人在这里列出一个从浏览器发送HTTP请求开始的过程,我将不胜感激 浏览器发送http请求 服务器响应要下载的文件,并添加一些HTTP头(表示这是一个要下载的文件),通常如下所示: 内容类型:应用程序/八位字节流 内容处置:附件;filename=“picture.png” 然后,浏览器根据用户设置处理响应(通常在保存前请求权限) 我知道这是一种阅读,但它是一种

我目前正试图准确地了解浏览器将文件下载到桌面时会发生什么,特别是使用了多少HTTP请求,该过程与仅获取图像或脚本等资源有何不同。如果有人在这里列出一个从
浏览器发送HTTP请求开始的过程,我将不胜感激

  • 浏览器发送http请求
  • 服务器响应要下载的文件,并添加一些HTTP头(表示这是一个要下载的文件),通常如下所示:
    
    内容类型:应用程序/八位字节流
    内容处置:附件;filename=“picture.png”
    
  • 然后,浏览器根据用户设置处理响应(通常在保存前请求权限)
  • 我知道这是一种阅读,但它是一种很好的资源。另外,一个不那么激烈的介绍也帮了我不少忙


    至于使用的HTTP请求数量,答案是一个。TCP握手完成后,发送请求,然后返回响应。如果一切都是通过SSL/TLS进行的,则会涉及更多内容,但这都是一个HTTP请求/响应周期的一部分。

    谢谢,但您已经描述了顶级流程,我知道所有这些。例如,
    服务器响应要下载的文件
    与我要查找的不完全一样,因为服务器对文件一无所知,它在响应的正文中发送二进制代码,标题为
    内容类型:多部分/表单数据
    很抱歉,但我不确定您的意思。这是一个简单的过程。服务器发送文件的方式和提供HTML或图像的方式没有真正的区别,只是标题不同。那么,我需要更多关于服务器端、客户端或传输的细节吗?我一直在寻找相同的答案。下载文件是否作为单个HTTP响应发送,无论该文件有多大(以GB为单位)?或者它在一个连续的过程中不断地流?如果这有帮助,请告诉我。当服务器响应要下载的文件请求时,它包括某些头,包括内容类型、内容配置和内容长度。根据这些标题中的值,浏览器决定如何继续。例如,应用程序/八位字节流的内容类型以及内容长度头让浏览器知道在响应主体中预期一定数量的二进制数据。就响应主体而言,单个HTTP事务发生在TCP流上,因此它既是一个流,也是一个响应。