go | 上传文件分析 | http协议分析 | 使用openssl 实现 https 协议 server.key、server.pem

是这样的,现在分析抓包数据

test.go

package main

import (
	"fmt"
	"log"

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

func main() {

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

	r.POST("/upload", func(c *gin.Context) {
		// 尝试从请求表单中获取名为file 的文件,返回两个值,分别是 *mutilepart.FileHeader 和 error
		// *mutilepart.FileHeader 是一个结构体,包含了文件的元数据,如文件名、文件大小、MIME类型
		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 test.go

在这里插入图片描述
上面的这张图详细介绍了起始行、头部字段、空行、消息体都有哪些东邪,以及分析这些字段的意思

下面再上传一个压缩文件
在这里插入图片描述

注意哈,可以通过curl 模拟上床数据(不得不说curl 命令真强大)
curl -X POST http://localhost:8080/upload -F “file=@/yourpath/main.zip” -H “Content-Type:multipart/form-data”
简单讲一下这些参数

-X POST 请求方式
url
-F “file=@xxx/main.zip” 要上传的文件
-H 采用表单编码方式请求数据

使用openssl生成server.key 、server.pem

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.pem
req - 请求处理器,用于处理SSL证书的请求。
-x509 - 指定生成一个X.509格式的SSL证书。
-nodes - 指定不对生成的SSL证书进行加密。
-days 365 - 指定证书的有效期为365天。
-newkey rsa:2048 - 创建一个新的2048位的密钥。
-keyout my.key - 指定生成的密钥保存到my.key文件。
-out my.crt - 指定生成的SSL证书保存到my.crt文件

相关推荐

  1. 实验8 分析HTTP协议和DNS

    2024-04-07 06:44:01       36 阅读
  2. go语言tcp协议实现文件

    2024-04-07 06:44:01       24 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-07 06:44:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-07 06:44:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-07 06:44:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-07 06:44:01       20 阅读

热门阅读

  1. Transformer架构的自注意力机制

    2024-04-07 06:44:01       15 阅读
  2. Django -- 报错

    2024-04-07 06:44:01       13 阅读
  3. VS CODE环境安装和hello world

    2024-04-07 06:44:01       14 阅读
  4. EmmyLuaDebugger介绍与源代码分析

    2024-04-07 06:44:01       15 阅读
  5. 【Node.js】缓存

    2024-04-07 06:44:01       18 阅读
  6. MyBatis与Hibernate的优缺点对比

    2024-04-07 06:44:01       13 阅读
  7. 虚拟机安装docker容器

    2024-04-07 06:44:01       16 阅读
  8. Node.js 和 npm 命令

    2024-04-07 06:44:01       14 阅读
  9. 服务器硬件基础知识

    2024-04-07 06:44:01       14 阅读
  10. 泛型数组的赋值

    2024-04-07 06:44:01       15 阅读
  11. WebKit结构简介

    2024-04-07 06:44:01       14 阅读
  12. 什么是MariaDB

    2024-04-07 06:44:01       13 阅读