HTTP协议上传boundary确定&下载content-disposition理解
2016-02-21 23:34
561 查看
HTTP协议上传文件-协议
上传文件需要将form标签 的 ENCTYPE 属性设置为 multipart/form-data属性, 与application/x-www-form-urlencoded类型不同, 此类型专门设计用来上传文件, 而前者用来传输数据,
可以允许若干 控件域 同时上传其值,
每个域值使用 boundary 分割:
<FORM ACTION="http://server.dom/cgi/handle" ENCTYPE="multipart/form-data" METHOD=POST> What is your name? <INPUT TYPE=TEXT NAME=submitter> What files are you sending? <INPUT TYPE=FILE NAME=pics> </FORM>
The client might send back the following data: Content-type: multipart/form-data, boundary=AaB03x --AaB03x content-disposition: form-data; name="field1" Joe Blow --AaB03x content-disposition: form-data; name="pics"; filename="file1.txt" Content-Type: text/plain ... contents of file1.txt ... --AaB03x--
详解见:
http://www.faqs.org/rfcs/rfc1867.html
HTTP协议上传文件-boundary选取
A boundary is selected that does not occur in any of the data. (This selection is sometimes done probabilisticly.)
需要不能再文件中出现, 但实践上不能扫描整个文件,再确定boundary, 所以往往是 生成一个随机值。
具有一定的概率性, 随着随机值的长度变化, 所以冲突概率很低。
HTTP协议下载文件-协议
下载报文头:Content-Type: image/jpeg
Content-Disposition: inline;filename=hello.jpg
Content-Description: just a small picture of me
下载不要包括一个 头域:
Content-Disposition 属性是作为对下载文件的一个标识字段, 是对下载文件的显示方式的描述。
脚本设置方法:
http://blog.csdn.net/androidmi/article/details/7519243
HTTP协议下载文件-content-disposition
content-disposition来自于 MIME (http://www.faqs.org/rfcs/rfc1521.html)此协议仅仅规定报文传输过程, 但是并没有规定,传输的内容对于接收端如何显示处理。
[RFC 1521] specifies a standard format for encapsulating multiple pieces of data into a single Internet message. That document does not address the issue of presentation styles; it provides a framework for the interchange of message content, but leaves presentation issues solely in the hands of mail user agent (MUA) implementors.
http://www.rfc-editor.org/rfc/rfc1806.txt
此报文头content-disposition, 对报文体进行描述, 规定了接收端的显示处理行为。
此报文头的值有两种, attachment 和 inline, 分别表示保存 还是 直接显示。
Two common ways of presenting multipart electronic messages are as a main document with a list of separate attachments, and as a single document with the various parts expanded (displayed) inline. The display of an attachment is generally construed to require positive action on the part of the recipient, while inline message components
are displayed automatically when the message is viewed.
attachment and inline
disposition := "Content-Disposition" ":" disposition-type *(";" disposition-parm) disposition-type := "inline" / "attachment" / extension-token ; values are not case-sensitive disposition-parm := filename-parm / parameter filename-parm := "filename" "=" value;
disposition英文释义
http://www.ldoceonline.com/dictionary/dispositiondis‧po‧si‧tion formal
1 [countable usually singular] a particular type of character which makes someone likely to behave or react in a certain way [= temperament]
of a nervous/sociable/sensitive etc disposition (=having a nervous etc character)
The film is not suitable for people of a nervous disposition.
have a cheerful/sunny etc disposition (=have a happy character)
2 [singular] a tendency or willingness to behave in a particular way [= inclination]
have/show a disposition to do something
Neither side shows the slightest disposition to compromise.
disposition towards
Most children have a disposition towards obedience.
3 [countable usually singular] the position or arrangement of something in a particular place
disposition of
a map showing the disposition of American forces
4 [uncountable] formal the way in which something is dealt with or used
disposition of
A solicitor advised him as to the disposition of the money.
5 [uncountable and countable] law the act of formally giving property to someone:
the disposition of assets on death
content-disposition 中 disposition 的含义是
4 [uncountable] formal the way in which something is dealt with or used
disposition of
即 content-disposition === the disposition of the message content 对消息内容的处理方式, inline 直接展示, attachment 以附件方式存储。
相关文章推荐
- TCP/IP、Http、Socket的区别
- java35.HTTP通信------使用HttpClient进行Post方式通信
- 前端开发必备!Emmet使用手册(转自 http://www.w3cplus.com/tools/emmet-cheat-sheet.html)
- keepalived(nginx)+httpd实现动静分离
- Sublime text 3 中Package Control 的安装与使用方法(转自 http://devework.com/sublime-text-3-package-control.html)
- java34.HTTP通信------使用HttpClient进行Get方式通信
- 开源一个网络图片浏览器HooPhotoBrowser
- okhttp
- Unity使用protobuf-net实现的网络框架
- iscsi 挂载网络存储及存储访问
- Sublime Text 3 破解版 + 注册机 + 汉化包(转自 http://www.cnsecer.com/251.html)
- sublime text 3(Build 3103)最新注册码(转自 http://blog.csdn.net/the_victory/article/details/50681152)
- 常见HTTP状态码
- android基础之二——网络编程(二)
- jQuery layer弹出层插件 http://layer.layui.com/直接上官网学
- Android基础之二——网络编程(一)
- Java网络编程
- IP地址,子网掩码,网关,默认网关
- TCP与UDP的区别
- ANDROID_MARS学习笔记_S04_004_用HTTPCLENT发带参数的get和post请求