`
liyixing1
  • 浏览: 957355 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

http协议之文件上传 boundary

 
阅读更多
RFC1867协议
在原有的基础上添加了对file域的支持,同时限定了form的method必须为POST,enctype必须为multipart/form-data.
实际上enctype最后会转换成Content-Type。

为了方便查看我们写一个页面,然后使用firefox的firebug插件查看network信息和google chrome的debug功能。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>啊啊啊</title>
</head>
<body>
ads高
<form action="http://127.0.0.1:8080/daowole/rb1" method="post" enctype="multipart/form-data"><input
name="body" value="123" /> <input name="name"  type="file" /><input
type="submit" /></form>
</body>
</html>

提交后首先查看头信息(Request headers)
firefox将headers和content分隔开了,卡起来不清晰,我就看google了。
Accept:application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Charset:GBK,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:140952
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryuwYcfA2AIgxqIxA0
Host:127.0.0.1:8081
Origin:null
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.151 Safari/534.16
首先是Content-Type
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryuwYcfA2AIgxqIxA0
首先指定了表单类型为multipart/form-data;。
boundary是分隔符
因为上传文件不在使用原有的http协议了。请求内容不再可能以
x = y方式发送了。而使用了
分隔符
字段内容
分隔符号
字段内容2
而boundary就是指定分隔符号的标志。
请求的内容就应该是这样的了。

------WebKitFormBoundaryuwYcfA2AIgxqIxA0
Content-Disposition: form-data; name="body"

123
------WebKitFormBoundaryuwYcfA2AIgxqIxA0
Content-Disposition: form-data; name="name"; filename="QQ.exe"
Content-Type: application/x-msdownload
文件本身的字节
分享到:
评论
2 楼 liyixing1 2013-08-27  
hhb19900618 写道
你好 boundary 的值是随便设置的字符串吗?

长度没具体试过
1 楼 hhb19900618 2013-08-21  
你好 boundary 的值是随便设置的字符串吗?

相关推荐

    C#实现HTTP上传文件的方法

    通常,文件上传是通过POST请求实现的,其中包含一个名为"multipart/form-data"的Content-Type,用于分隔不同的数据部分。每个部分都有自己的边界,以便服务器能够正确解析数据。 在C#中,我们可以利用System.Net...

    java处理文件上传的底层实现以及java模拟post协议实现文件上传

    本篇将详细探讨Java处理文件上传的底层实现,以及如何使用Java模拟POST协议来实现文件上传。 首先,我们需要理解文件上传的基本原理。在HTTP协议中,文件上传通常通过POST请求进行。当用户在表单中选择文件并提交时...

    boundary数据解析

    在IT领域,尤其是在网络通信和数据传输中,"boundary数据解析"是一个重要的概念,它主要与HTTP协议中的多部分表单...对于开发处理文件上传、表单提交等功能的Web服务或者客户端应用来说,掌握这一技术是必不可少的。

    Java自带的HttpURLConnection访问接口实现文件上传

    在Java编程语言中,HTTPURLConnection是Java标准库提供...虽然这需要对HTTP协议有一定的理解,但它是理解网络编程和文件上传原理的一个好起点。在实际开发中,我们还需要考虑如安全性、错误处理和性能优化等更多因素。

    C# http系列之以form-data方式上传多个文件及键值对集合到远程服务器

    C# http系列之以form-data方式上传多个文件及键值对集合到远程服务器是指在C#中使用http协议以form-data方式上传多个文件及键值对集合到远程服务器的技术。这种技术广泛应用于云端应用、第三方应用平台、开发平台等...

    python上传时包含boundary时的解决方法

    在Python中进行文件上传时,有时会遇到需要指定`boundary`的情况,特别是在处理`multipart/form-data`类型的HTTP请求时。这种格式通常用于浏览器提交表单数据,尤其是包含文件上传的表单。`boundary`是一个字符串,...

    winform实现把文件上传服务器功能

    在.NET框架中,WinForm应用程序可以利用HTTP协议与Web服务器进行通信,实现文件上传功能。本文将详细解析如何在WinForm界面中实现文件上传至服务器的过程,并基于提供的压缩包文件"Upload_Win"来探讨其内容。 首先...

    通用文件上传下载接口使用说明.docx

    通用文件上传下载接口使用说明提供了详细的文件上传和下载接口信息,包括请求方法、传输协议、请求数据格式和回应数据格式等,为开发者提供了一个明确的指南,帮助他们更好地使用文件上传下载接口。

    JAVA模拟http上传文件_代码男_新浪博客

    1. **HTTP POST请求**:在HTTP协议中,文件上传通常使用POST方法,因为GET方法不适用于大文件传输。POST请求可以携带数据,包括文件内容。 2. **Multipart/form-data编码**:文件上传时,数据会被编码为Multipart/...

    VB上传本地文件到服务器

    首先,VB中的文件上传通常与Web Forms或ASP.NET相关联,虽然这里提到的是VB,但可能指的是VBScript或者VB6,因为这些版本也支持文件上传功能。VBScript通常用于ActiveX控件或Classic ASP页面,而VB6则用于桌面应用...

    模拟Http请求上传文件

    本文将详细讲解如何通过模拟HTTP请求来实现文件上传,这对于非安卓平台的接口开发者进行接口调试至关重要。 HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,它定义了客户端和服务器之间通信的数据格式...

    http post上传文件与表格 ContentType = multipart/form-data

    在Web开发中,HTTP POST请求常用于向服务器发送数据,特别是在涉及用户交互,如表单提交或文件上传时。"multipart/form-data"是HTTP协议中一种特殊的Content-Type,专为处理混合类型的数据,如文本、文件等。这个...

    使用Socket 完成HTTP post方式的文本及文件上传 demo

    通过这个过程,我们可以看到使用Socket实现HTTP POST文件上传涉及到网络通信、HTTP协议和数据编码等多个方面。这只是一个基础的实现,实际的应用中可能还需要考虑更多因素,如安全性、效率和错误处理等。在开发过程...

    android之文件上传

    总的来说,Android中的文件上传涉及到HTTP协议的理解,特别是POST请求和多部分表单数据的构造。在实际应用中,通常会使用库如Retrofit、Volley或OkHttp等来简化这一过程,而不是手动编写网络请求的细节。这些库提供...

    Http 文件上传下载

    文件上传和下载是HTTP协议的常见应用场景,特别是在Web应用程序中。让我们深入探讨这两个概念及其在实际开发中的实现。 文件上传通常涉及到用户通过浏览器将本地文件发送到服务器的过程。在HTTP上下文中,这通常是...

    java上传文件到服务器

    下面将详细介绍如何使用Java实现文件上传到服务器的步骤、涉及的技术以及关键知识点。 首先,了解基本流程: 1. **选择文件**:在Java应用中,可以使用`JFileChooser`组件让用户选择要上传的文件。 2. **读取文件...

    java 实现上传文件到远程服务器

    在现代软件开发中,文件上传功能是十分常见的需求之一,尤其在Web应用中。本篇文章将详细介绍如何利用Java编程语言结合Spring MVC框架来实现文件的远程上传功能。具体实现过程中,我们会采用HTTP协议中的`POST`方法...

    IHTTPModel接口实现文件上传

    总的来说,实现IHTTPModel接口进行文件上传涉及到对HTTP协议的理解,以及有效地处理和解析`multipart/form-data`数据。通过编写自定义的HttpModule,开发者可以创建一个高效且灵活的文件上传系统,能够处理各种大小...

    web文件上传原理讲解与代码

    文件上传的核心是通过HTTP协议完成数据传输。当用户选择文件并提交表单后,浏览器会根据表单中的`method`属性和`enctype`属性构建请求报文。 ##### (一)Form表单上传文件规范 1. **表单元素**:通常包含`...

Global site tag (gtag.js) - Google Analytics