導航:首頁 > 網路安全 > 如何識別報文屬於自己網路流

如何識別報文屬於自己網路流

發布時間: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都可以指定網卡和設置相關規則,過濾掉不想關的報文。

閱讀全文

與如何識別報文屬於自己網路流相關的資料

熱點內容
長虹網路機頂盒設置 瀏覽:311
手機和電腦文件無網路互傳 瀏覽:823
4g網路異常限速怎麼弄 瀏覽:902
我的網路密碼是多少怎麼查看 瀏覽:44
怎麼測試電信網路 瀏覽:476
移動無線網路沒有信號怎麼辦 瀏覽:356
vivox9網路共享在哪設置 瀏覽:475
ios網路連接已中斷 瀏覽:580
手機網路突然變成了g 瀏覽:156
青年網路安全聯盟 瀏覽:562
聯通網路發展國外的國家有哪些 瀏覽:328
電腦能上網微信網路連接不可用 瀏覽:15
正定區網路營銷公司 瀏覽:612
計算機網路應用技術涉及編程嗎 瀏覽:729
小米共享網路不穩定 瀏覽:639
網路機鐵盒怎麼設置 瀏覽:495
調音台網路設置 瀏覽:696
無線網路能連接上沒信號 瀏覽:329
淺談p2p網路連接 瀏覽:794
甘孜網路服務哪個好 瀏覽:665

友情鏈接