HTTP RESPONSE 之 CONTENT-DISPOSITION

Content-Disposition response 响应头产生的原因是因为假如用户请求的内容是一个文件,能够让源服务器支持一个默认的文件名字。这种用法从 Content-Disposition in RFC 1806 继承。

         Content-Disposition 的格式为

1-1

disposition-type *( ";" disposition-parm )

一个 content-disposition 必须由一个 disposition-type 组成,允许没有或多个 disposition-parm 选项,以分号分隔。

 

disposition-type 的格式为

1-2

“attachment “| disp-extension-token

一个 disposition-type 由一个 attachment 组成或者由一个 disp-extension-token 组成。

 

disposition-parm 的格式为

1-3

filename-parm | disp-extension-parm

一个 disposition-parm 由一个 filename-parm 或者一个 disp-extension-parm 组成。

 

filename-parm 格式为

1-4

“filename” “= “ quoted-string

一个 filename-parm 由一个关键字 filename 、等号和 quoted-string 组成。

 

disp-extension-token 的格式和 token 相同

 

disp-extension-parm 的格式为

1-5

token   “=”   ( token | quoted-string )

一个 disp-extension-parm 由一个 字符串和等号组成 .

 

例如 Content-Disposition: attachment; filename="fname.ext"

 

接收这个报头的用户代理不应该在 filename-parm 中带入任何路径信息,这只是 HTTP 实现的一个参数而已。 Filename 应该被认为是终端的组建而已。

 

如果设置 content-type 的值为 application/octet- stream ,这样就会暗示用户代理不显示这次 response 的内容,而是显示选择路径的对话框。

 

注: “”中的内容表示固定的内容,不允许改变

--RayC 2009-09-03-

译自 http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html 19.5.1 Content-Disposition

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: content-dispositionHTTP 协议中的一个头部字段,用于指示如何处理被请求的消息体。通常,它被用于下载文件时,指示浏览器以何种方式处理下载文件的响应。 获取 content-disposition 的方式取决于你是在客户端还是服务端。如果你是在客户端,可以使用浏览器的开发者工具查看响应头部中是否包含 content-disposition 字段。如果你是在服务端,可以查看响应头部的 content-disposition 字段来获取其值。 以下是一个示例 HTTP 响应,其中包含 content-disposition 字段: ``` HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Disposition: attachment; filename="example.txt" Content-Length: 1234 <file content> ``` 在这个示例中,content-disposition 的值是 attachment; filename="example.txt",指示浏览器应该将响应的消息体作为附件下载,并将文件名设置为 example.txt。 ### 回答2: 获取content-disposition可以通过以下几种方式实现: 1. 前端通过发送HTTP请求获取响应头中的content-disposition字段。可以使用XMLHttpRequest对象或fetch函数发送异步请求,并通过getResponseHeader方法获取content-disposition的值。 2. 在使用fetch函数发送请求时,可以通过设置请求的credentials属性为include,以便在跨域请求时,服务器可以将带有content-disposition字段的响应头发送给前端。 3. 如果前端使用的是某个特定的JavaScript库,如axios,可以查看库的文档,了解是否提供了获取响应头的方法,如通过拦截响应的方式。 需要注意的是,获取content-disposition字段可能会受到跨域资源共享(CORS)策略的限制。如果服务器没有明确允许前端访问content-disposition字段,前端将无法获取到该字段的值。在这种情况下,可以考虑使用服务器端的代理来获取content-disposition的值,并将其传递给前端。 总结起来,前端可以通过发送HTTP请求并获取响应头中的content-disposition字段来获取该字段的值。具体的实现方法可以根据前端所使用的技术栈和环境进行调整。 ### 回答3: 前端无法直接获取`content-disposition`,因为`content-disposition`是HTTP响应头部字段,在前端无法直接访问和获取。`content-disposition`常用于指定服务器响应的文件名称和下载方式。 前端可以通过发送HTTP请求并获取响应头部来获取`content-disposition`。常见的方法是使用AJAX或Fetch来发送请求,然后在返回的响应头部中查找`content-disposition`字段。 以下是一个示例使用Fetch API获取`content-disposition`的方法: ```JavaScript fetch('http://example.com/file', { method: 'GET', headers: { 'Content-Type': 'application/octet-stream', }, }) .then(response => { const contentDisposition = response.headers.get('content-disposition'); console.log(contentDisposition); }) .catch(error => { console.log(error); }); ``` 这段代码通过使用Fetch API发送一个GET请求到`http://example.com/file`,然后从响应头部中获取`content-disposition`字段的值,并将其打印到控制台。 需要注意的是,跨域请求需要在服务器端设置适当的响应头部,以允许前端访问响应头部。否则,浏览器将会阻止前端获取其他域的响应头部,以保护用户的安全和隐私。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值