HTTP请求包文格式
补充一下:
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请求包文格式相关推荐
- FPGA实战-以太网包文
为什么要学包文? 1.FPGA最大的应用领域是通信 2.以太网领域通常将数据封装成包文格式 3.处理的基本单元 以太网包文的最简单格式 包文的接口表示有哪些 data :传输的数据信号: vld ...
- FIFO加包文,切割包文
一.模块没收到一个包文时,先发送一个开始包文,再发送数据包文,最后发送结束包文. 输入的包文是32bit,而输出的包文格式要求为8bit 开始包文格式如下: 8'h55 8''h55 8'h55 8' ...
- 利用状态机实现简易包文类型识别器
数据包文格式分为数据包文和控制包文格式 //第一段 always @(posedge clk or negedge rst_n)beginif(rst_n==1'b0)beginstate_c< ...
- HTTP 请求包/回复包格式数据分析
GET /cgi-bin/user/qzone_cgi_msg_getcnt2?uin=1020578379bm=08409c0002008001&v=1&g_tk=158987147 ...
- 挖漏经验:在密码重置请求包中添加X-Forwarded-Host实现受害者账户完全劫持
今天分享的这篇Writeup为作者通过利用目标网站"忘记密码"功能,在重置密码请求发包中添加X-Forwarded-Host主机信息,欺骗目标网站把重置密码的链接导向到自己的服务器 ...
- UDP数据包协议格式详解
源端口目的端口:是0-65535任何数字,在收到请求时系统会为客户端动态分配,0-1023为知名端口号 报文长度(单位4byte):表示udp报头+udp数据总长度,有别于tcp,也没有选项 UDP报 ...
- COAP数据包协议格式详解
Ver:版本编号,占2bit,固定01 T:报文类型,占2bit,CON=00,NON=01,ACK=10,RST=11 CON--需要被确认的请求,如果CON请求被发送,那么对方必须做出响应. NO ...
- Pcap 数据包捕获格式详解
Pcap 是 Packet Capture 的英文缩写,是一种行业标准的网络数据包捕获格式.如果你是网络开发人员,那么通常会使用 Wireshark.Tcpdump 或 WinDump 等网络分析器捕 ...
- TCP数据包协议格式详解
出一个专栏把通信协议搞一下吧,万物互联的根本呀. IP 版本4位:4(二进制0100)表示IPv4,6(二进制0110)表示IPv6 报头长度(单位4byte):因为选项长度不确定,取值范围是5-15 ...
最新文章
- Ubuntu系统添加root用户
- sklearn 随机分割数据_sklearn.ensemble.RandomForestClassifier 随机深林参数详解
- 活动分享|今晚启明云端与您相约立创直播间,红包\彩屏开发板送不停!
- Alpha冲刺博客集
- ldap的shema
- java之通过FileChannel实现文件复制
- Linux Crontab 任务管理工具命令以及示例
- java 最少使用(lru)置换算法_「Redis源码分析」Redis中的LRU算法实现
- 前端走向后台,node.js基本
- hnu小学期实训之数圈
- 使用代理服务器来连接到internet_代理服务器是什么,有什么作用?
- html中页面跳转以及传值的处理
- Tracepro中up vector和normal vector的定义1
- 怎样找一张图片的原图、出处?最全搜图网站+具体案例分享
- hihocoder 1403 后缀数组一·重复旋律 (后缀数组 + 二分)
- 网站域名备案流程是什么样的?
- 大转盘抽奖活动的设计
- 随机生成姓名存入mysql_MYSQL随机生成姓名
- AndroidStudio(Idea) 快捷键错乱,insert键乱入,复制粘贴查找快捷键无效
- 电脑硬盘怎样合并分区?