导航:首页 > 网络安全 > 如何识别报文属于自己网络流

如何识别报文属于自己网络流

发布时间:2023-07-25 16:07:20

如何实现java解析网络协议报文

普通参数:
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

文件参数:
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary

参数实体的最后一行是: --加上boundary加上--,最后换行,这里的 格式即为: --OCqxMF6-JxtxoMDHmoG5W5eY9MGRsTBp--。

模拟文件上传请求
public static void uploadFile(String fileName) {
try {
// 换行符
final String newLine = "\r\n";
final String boundaryPrefix = "--";
// 定义数据分隔线
String BOUNDARY = "========7d4a6d158c9";
// 服务器的域名
URL url = new URL("www.myhost.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置为POST情
conn.setRequestMethod("POST");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
// 设置请求头参数
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("Charsert", "UTF-8");
conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY);
OutputStream out = new DataOutputStream(conn.getOutputStream());
// 上传文件
File file = new File(fileName);
StringBuilder sb = new StringBuilder();
sb.append(boundaryPrefix);
sb.append(BOUNDARY);
sb.append(newLine);
// 文件参数,photo参数名可以随意修改
sb.append("Content-Disposition: form-data;name=\"photo\";filename=\"" + fileName
+ "\"" + newLine);
sb.append("Content-Type:application/octet-stream");
// 参数头设置完以后需要两个换行,然后才是参数内容
sb.append(newLine);
sb.append(newLine);
// 将参数头的数据写入到输出流中
out.write(sb.toString().getBytes());
// 数据输入流,用于读取文件数据
DataInputStream in = new DataInputStream(new FileInputStream(
file));
byte[] bufferOut = new byte[1024];
int bytes = 0;
// 每次读1KB数据,并且将文件数据写入到输出流中
while ((bytes = in.read(bufferOut)) != -1) {
out.write(bufferOut, 0, bytes);
}
// 最后添加换行
out.write(newLine.getBytes());
in.close();
// 定义最后数据分隔线,即--加上BOUNDARY再加上--。
byte[] end_data = (newLine + boundaryPrefix + BOUNDARY + boundaryPrefix + newLine)
.getBytes();
// 写上结尾标识
out.write(end_data);
out.flush();
out.close();
// 定义BufferedReader输入流来读取URL的响应
// BufferedReader reader = new BufferedReader(new InputStreamReader(
// conn.getInputStream()));
// String line = null;
// while ((line = reader.readLine()) != null) {
// System.out.println(line);
// }
} catch (Exception e) {
System.out.println("发送POST请求出现异常!" + e);
e.printStackTrace();
}
}

⑵ 如何用自己的pc查看HTTP的请求报文和应答报文

想查看HTTP请求和应答报文,可以先了解一下TCP和HTTP协议:HTTP是第七层也就是应用层协议,它是建立在TCP协议之上的,因此,抓包分析的话,HTTP交互都是从TCP三次握手开始的。

以一次简单的HTTP交互为例说明:

  1. 客户端-->syn-->服务器 (TCP层交互)

  2. 服务器-->syn ack-->客户端 (TCP层交互)

  3. 客户端-->ack-->服务器 (TCP层交互)

TCP三次握手建立连接后,

4. 客户端发送GET/POST请求数据 (HTTP层交互)

5. 服务器收到GET/POST请求,回复ack (TCP层交互)

6. 服务器根据请求回复相应的数据 (HTTP层交互)

7. 客户端收到服务器数据,回复ack (TCP层交互)

在完成HTTP数据交互后,TCP四次分手断开连接:

8. 客户端-->fin ack-->服务器

9. 服务器-->ack-->客户端

10. 服务器-->fin ack-->客户端

11. 客户端-->ack-->服务器

这样,一次简单的HTTP交互就完成了。如果要查看的话,windows下可用wireshark等抓包工具,linux下用tcpmp就行。wireshark和tcpmp都可以指定网卡和设置相关规则,过滤掉不想关的报文。

阅读全文

与如何识别报文属于自己网络流相关的资料

热点内容
定制版路由器可以使用其他网络吗 浏览:719
网络异常金币领取失败怎么办 浏览:581
有线网络安全证书 浏览:83
联通宽带网络重新设置 浏览:650
苹果13光遇网络异常 浏览:916
广州营销网络电话软件 浏览:245
网络安全ppt演讲台词 浏览:667
移动网络处的cmcc 浏览:229
如何使用网络看电视机 浏览:218
西安4g网络什么时候开通 浏览:736
濮阳两年制计算机网络专业课 浏览:287
网络信号很强但使用很卡 浏览:128
voip网络电话如何溯源 浏览:362
宽带无线连接不上网络 浏览:109
有线网络电视如何禁用有线 浏览:358
如何查询我的网络信息 浏览:201
两次路由器会影响网络吗 浏览:683
网络营销的文化背景 浏览:178
上海辅助网络技术要多少钱 浏览:440
加入不了wifi网络 浏览:239

友情链接