首页 > 系统相关 >go | 上传文件 | tcpdump&wireshark 抓包分析

go | 上传文件 | tcpdump&wireshark 抓包分析

时间:2024-04-06 22:01:02浏览次数:486  
标签:... .. .... ..... file go main tcpdump 抓包

go 上传文件

package main

import (
	"fmt"
	"log"

	"github.com/gin-gonic/gin"
)

/*

执行命令:
curl -X POST http://localhost:8080/upload -F "file=@/path/main.zip" -H "Content-Type:multipart/form-data"

*/
func main() {

	r := gin.Default()
	// Upload single file
	r.MaxMultipartMemory = 8 << 20

	r.POST("/upload", func(c *gin.Context) {

		file, _ := c.FormFile("file")
		log.Println(file.Filename)

		dst := "./" + file.Filename
		//上传至指定的完整文件路径
		c.SaveUploadedFile(file, dst)

		c.String(200, fmt.Sprintf("'%s' upload", file.Filename))
	})

	r.Run(":8080")

}

###启动

go run example.go

###抓包

#抓包
tcpdump -vvv -X -n -i any -s0 port 8080 -w test.pcap

###客户端请求 上传文件
接着在另个会话执行

curl -X POST http://localhost:8080/upload -F "file=@/path/main.zip" -H "Content-Type:multipart/form-data"
# 以下是抓包内容 http/1.1
HTTP/1.1 100 Continue

POST /upload HTTP/1.1
Host: localhost:8080
User-Agent: curl/7.61.1
Accept: */*
Content-Length: 1143
Content-Type: multipart/form-data; boundary=------------------------fc4cffd8a2c2f658
Expect: 100-continue

--------------------------fc4cffd8a2c2f658
Content-Disposition: form-data; name="file"; filename="main.zip"
Content-Type: application/octet-stream

PK........F..X...!....4.......main.goUT	....
f...fux..............T.N.@.}..b.....M/..%..E...D(.J....d....%@Q..3......).......iyy.'...U.....A.GL	.O.kY...tS?.J....6'Z...X......F...."ix{a..jr.=0b.U	V8..j..IR...l_....8.sx'-....jeux........g.%i..(v:..s_;....$.'....`.,ay.&......?.9q.RR...0.M....;o.G}`..D../....o.....X..-/.o..hB&....nxc...cLIXHD.(..A_SX5...K..1.........*%..{F....Q}@.cx.	.......lp..)....nU.]............sm...V....7..jq..HC......."..
....%(./K...OV$....FTB9.k.nV...Z.r`#nX.il...=._.....)~K.._.v.R{..(Z'..J.+.
[email protected]?D.u..>.l(...[..8..75....W.Tp..	#.D.a*x%....4of..........$^.JH%.`......p2...W.....y^...Sm].....`."6.....wR..BU.({..K...6.]+
.m[.\J..Y.."+../.k(...G....d$4aA..M.Go.Nl.-..;c..].%..)
....
..0..H.`./]7+....,."w.P.#.*.....^..cWa2..-.=.'.(%....u...n\.........\M..^.A.;.(0.|.ti.'.$..k;8L..i.5.U.CafX5l.V.~....N.JX8....?.PK..........F..X...!....4.....................main.goUT.....
fux.............PK..........M...L.....
--------------------------fc4cffd8a2c2f658--
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
Date: Fri, 05 Apr 2024 12:49:59 GMT
Content-Length: 17

'main.zip' upload

上面的显示,
来一张图片,
在这里插入图片描述

对了,如果不用curl 方式可以在浏览器打开 html 请求服务器上传文件

<!DOCTYPE html>
<html>
<body>

<h2>Upload File</h2>

<form action="http://localhost:8080/upload" method="post" enctype="multipart/form-data">
  Select file to upload:
  <input type="file" name="file" id="file">
  <input type="submit" value="Upload File" name="submit">
</form>

</body>
</html>

标签:...,..,....,.....,file,go,main,tcpdump,抓包
From: https://blog.csdn.net/ttxiaoxiaobai/article/details/137410047

相关文章

  • Django框架之ORM操作
    一、选择数据库1、默认数据库Django默认的数据库是sqlite3数据库DATABASES={'default':{'ENGINE':'django.db.backends.sqlite3','NAME':BASE_DIR/'db.sqlite3',}}2、指定数据库修改连接到MySQL数据库DATABASES......
  • Django框架之请求生命周期流程图
    一、引言WSGI、wsgiref、uwsgi三者是什么关系?WSGI是协议,小写的wsgiref和uwsgi是实现该协议的功能模块缓存数据库提前已经将你想要的数据准备好了,需要的时候直接拿就可以,提高了效率和响应时间。eg:当你在修改你的数据的时候,你会发现数据并不是立刻修改完成的,而是需要经......
  • Django框架之路由层
    一、路由匹配1、什么是路由在计算机领域中,路由(Routing)通常指的是确定数据包在网络中传输的路径的过程。当数据包从源主机发送到目标主机时,路由是决定数据包应该沿着哪条路径传输的方法。路由器是负责执行这种路由功能的设备。在Web开发中,路由通常指的是将特定的URL请求映射到相......
  • python基于flask汽车4s店服务销售配件管理系统django+echart 数据可视化_od8kr
     该系统采用python技术,结合flask框架使页面更加完善,后台使用MySQL数据库进行数据存储。系统主要分为三大模块:即管理员模块,员工管理模块和用户模块。本文从汽车服务流程分析入手,分析了其功能性需求和非功能性需求,设计了一个由管理员,用户和员工三部分组成的汽车服务管理系统。用......
  • 毅四捕Go设计模式笔记——桥接模式
    桥接模式(BridgePattern)桥接模式是一种结构型设计模式,它的主要目的是将抽象部分与它的实现部分解耦,使它们都可以独立的变化。通过使用组合而非继承的方式,桥接模式结合了两个独立的维度,让它们可以独立扩展而不是在两者之间建立静态的继承关系。为了解决什么问题?桥接模式解......
  • 【go从入门到精通】一文把map字典搞得明明白白
    Mapmap是一种元素对的无序集合,一组称为元素value,另一组为唯一键索引key。未初始化map的值为nil。map是引用类型,可以使用如下声明:varmap1map[keytype]valuetype([keytype]和valuetype之间允许有空格,但是Gofmt移除了空格)在声明的时候不需要知道map的长度,map是可......
  • django图书推荐系统 计算机专业毕业设计源码89399
    摘 要随着时代的不断更新,社会的不断变换,信息技术的飞速发展,计算机科技技术也逐步走向成熟。图书推荐系统对于当今社会来说是必不可少的一个信息组成部分,它可以管理大量图书、大量读者、让读者有条不紊的进行评分图书,大大减小了工作量,并且提高了工作效率。本文研究的图书推......
  • Rancher-rke: E0404 14:22:44.616099 5841 memcache.go:287] couldn‘t get resource
    一、根因    1、非正常关闭了主机。    2、导致docker上的metrics容器进程挂掉。二、解决办法    1、重启docker        systemctlrestartdocker    2、清理处于Exited状态的pod        dockerrm`dockerps-a|......
  • Go+云原生高级开发工程师进阶路线及资料推荐
    云原生这几年非常火,很多同学都在学习云原生相关技术,我也在如何进阶为Go+云原生高级开发工程师?中,详细介绍了如何学习,以使自己快速进阶为Go+云原生高级开发。这里我再快速总结下学习路线,并提供路线中涉及到的学习资料供你下载。学习路线本着只看优秀课程、不重复学习、学习......
  • [iAlgo Insight - 树上 K 祖先] 倍增解决
    Problem:1483.树节点的第K个祖先Tag:TreeDifficulty:HardClassic:......