补充一下:

application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。
multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分。
text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。

通过抓包获取以下数据。根据这些数据和数据的格式,可以对网络编程的理解和网络请求框架的使用进行更加深刻的理解。



Post表单形式上传文件:(同时上传两个文件,每个文件对应一部分)

请求: //注意每一行的细节“–”、“换行”、“boundary的值”

POST http://125.216.242.147:8080/yjy/file/upload HTTP/1.1
Content-Type: multipart/form-data; boundary=da185eb8-c4f3-47af-82b9-92c031a9bb09
Content-Length: 729
Host: 125.216.242.147:8080 //目标地址
Connection: Keep-Alive
Accept-Encoding: gzip
User-Agent: okhttp/3.3.1

–da185eb8-c4f3-47af-82b9-92c031a9bb09 //开始设置参数:levelId=2
Content-Disposition: form-data; name=”levelId”//参数key:levelId
Content-Length: 1 //参数value的长度

2 //参数value:2
–da185eb8-c4f3-47af-82b9-92c031a9bb09 //开始设置参数:userId=402875……
Content-Disposition: form-data; name=”userId”
Content-Length: 32

40287581551beea001551bf5f29b0000
–da185eb8-c4f3-47af-82b9-92c031a9bb09 //添加文件、文件名、文件内容
Content-Disposition: form-data; name=”file”; filename=”test.txt” //注意:name 和filename 值的意义
Content-Type: text/plain //MIME类型:
Content-Length: 61 //文件的长度

01268845855584585586935888 //文件具体的内容……
this is my words
fhfh……

–da185eb8-c4f3-47af-82b9-92c031a9bb09
Content-Disposition: form-data; name=”file”; filename=”test2.txt”
Content-Type: text/plain
Content-Length: 58

01268845855584585586935888
this is my words
fghfhf
test2……

–da185eb8-c4f3-47af-82b9-92c031a9bb09– //注意最后还有个“ – ”,表示全部结束

响应:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=UTF-8
Content-Length: 566
Date: Fri, 19 Aug 2016 07:26:23 GMT

{“result”:true,”document”:{“docId”:”297ed60b56a159b70156a1b18ecc0003”,”originalName”:”test.txt”,”saveName”:”201608191526413400.txt”,”savePath”:”D:\image\201608191526413400.txt”,”downPath”:”http://125.216.242.147:8080/attachment/201608191526413400.txt“,”type”:”“,”publishStatus”:0,”needPay”:0,”money”:0,”docSize”:61,”uploadTime”:1471591583426,”user”:{“userId”:”40287581551beea001551bf5f29b0000”,”username”:null,”password”:null,”realName”:null,”avator”:null,”money”:0,”role”:null,”level”:null},”level”:{“levelId”:”2”,”levelName”:null,”levelDesc”:null,”users”:null}}}



将文件作为请求体,发送到服务器:

请求:

POST http://125.216.242.147:8080/yjy/file/upload HTTP/1.1
Content-Type: application/octet-stream
Content-Length: 61
Host: 125.216.242.147:8080
Connection: Keep-Alive
Accept-Encoding: gzip
User-Agent: okhttp/3.3.1

01268845855584585586935888
this is my words…… //文件具体内容

响应:

HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Content-Language: en
Content-Length: 4445
Date: Fri, 19 Aug 2016 07:28:32 GMT
Connection: close

<html><head><title>Apache Tomcat/7.0.54 - Erro…(省略)


Post传递参数

请求:
POST http://125.216.242.147:8080/yjy/file/list HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 55
Host: 125.216.242.147:8080
Connection: Keep-Alive
Accept-Encoding: gzip
User-Agent: okhttp/3.3.1

levelId=2&uploadUserId=40287581551beea001551bf5f29b0000 //参数的key和value,多个参数用“&”连接

响应:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 13736
Date: Sat, 20 Aug 2016 02:42:04 GMT

{“result”:true,”total”:24,”documents”:[{“docId”:”297ed60b5654a206015654d6f8560016”,”originalName”:”……}
//具体的Json串



下载文件时的接收到的报文格式:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/”61-1471675934041”
Last-Modified: Sat, 20 Aug 2016 06:52:14 GMT
Content-Type: text/plain(注:txt)
(注:word:Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document)
Content-Length: 61 //报文数据部分的长度,可以用来表示“所下载文件的大小”
Date: Tue, 06 Sep 2016 03:33:27 GMT

01268845855584585586935888
this is my words
……


HTTP请求包文格式相关推荐

  1. FPGA实战-以太网包文

    为什么要学包文? 1.FPGA最大的应用领域是通信 2.以太网领域通常将数据封装成包文格式 3.处理的基本单元 以太网包文的最简单格式 包文的接口表示有哪些 data :传输的数据信号: vld   ...

  2. FIFO加包文,切割包文

    一.模块没收到一个包文时,先发送一个开始包文,再发送数据包文,最后发送结束包文. 输入的包文是32bit,而输出的包文格式要求为8bit 开始包文格式如下: 8'h55 8''h55 8'h55 8' ...

  3. 利用状态机实现简易包文类型识别器

    数据包文格式分为数据包文和控制包文格式 //第一段 always @(posedge clk or negedge rst_n)beginif(rst_n==1'b0)beginstate_c< ...

  4. HTTP 请求包/回复包格式数据分析

    GET /cgi-bin/user/qzone_cgi_msg_getcnt2?uin=1020578379bm=08409c0002008001&v=1&g_tk=158987147 ...

  5. 挖漏经验:在密码重置请求包中添加X-Forwarded-Host实现受害者账户完全劫持

    今天分享的这篇Writeup为作者通过利用目标网站"忘记密码"功能,在重置密码请求发包中添加X-Forwarded-Host主机信息,欺骗目标网站把重置密码的链接导向到自己的服务器 ...

  6. UDP数据包协议格式详解

    源端口目的端口:是0-65535任何数字,在收到请求时系统会为客户端动态分配,0-1023为知名端口号 报文长度(单位4byte):表示udp报头+udp数据总长度,有别于tcp,也没有选项 UDP报 ...

  7. COAP数据包协议格式详解

    Ver:版本编号,占2bit,固定01 T:报文类型,占2bit,CON=00,NON=01,ACK=10,RST=11 CON--需要被确认的请求,如果CON请求被发送,那么对方必须做出响应. NO ...

  8. Pcap 数据包捕获格式详解

    Pcap 是 Packet Capture 的英文缩写,是一种行业标准的网络数据包捕获格式.如果你是网络开发人员,那么通常会使用 Wireshark.Tcpdump 或 WinDump 等网络分析器捕 ...

  9. TCP数据包协议格式详解

    出一个专栏把通信协议搞一下吧,万物互联的根本呀. IP 版本4位:4(二进制0100)表示IPv4,6(二进制0110)表示IPv6 报头长度(单位4byte):因为选项长度不确定,取值范围是5-15 ...

最新文章

  1. OKR的实施案例:OKR不需要很复杂
  2. 平正真诚——记红帆公司2011年秋季旅游·衡山
  3. C# 9.0 终于来了, Top-level programs 和 Partial Methods 两大新特性探究
  4. linux组的管理命令,linux 用户和组管理命令(示例代码)
  5. 安装oracle的口令是,Oracle中口令设置、用户解锁、卸载等问题
  6. 一般将来时语法课教案_优秀教案人教版必修二Unit2——语法专题课训练
  7. (绪论和参考文献)基于深度强化学习的复杂作业车间调度问题研究
  8. 06 - 雷达发射机 概述
  9. 《从0到1:CTFer成长之路》书籍配套题目-[第二章 web进阶]死亡ping命令
  10. 如何理解刑法中的“以非法占有为目的”
  11. 【2021最新版】《全网搜索 6.0》软件使用手册
  12. 故障分析 | 使用--force批量导入数据导致部分数据丢失的问题
  13. 【033】Bootstrap实现标签页效果
  14. 2021观澜二中高考成绩查询入口,深圳2019年中考成绩出炉 各校高分成绩汇总
  15. 美团住宿业务数据治理体系化思考与实践
  16. 局域网限速软件_复工复学活力加倍、办公类软件最低 6 折再来袭!
  17. Android刘海屏、水滴屏全面屏适配详解,997页字节跳动Android面试真题解析火爆全网
  18. 【pandas】将单元格中的多个数据拆分为多行数据(explode),以csv文件为源文件进行处理
  19. java获取ajax传的数组对象,ajax传递对象数组
  20. 夜深模拟器不能连接 adb shell 解决方案

热门文章

  1. 计算机毕业设计ssm高校就业管理系统157v3系统+程序+源码+lw+远程部署
  2. DIRECT3D基础知识 ---- 渲染与纹理 及位图,顶点缓存释义
  3. 四川山海蓝图抖音橱窗和抖音小店的区别
  4. 你见过最差的程序员是怎样的?
  5. 各种排序算法的时间复杂度和空间复杂度-记忆方式
  6. one平台 复现代码 节点缓存感知的DTN概率路由算法
  7. 取excel内容相同的值,并写到另一个excel表格内
  8. 现代计算机组成原理第六章,《现代计算机组成原理》课件第6章.pdf
  9. echarts按照时间显示柱状图_ECharts柱状图的标注如何实现
  10. C++不同的数据成员类型