首页 > 其他分享 >go | 上传文件分析 | http协议分析 | 使用openssl 实现 https 协议 server.key、server.pem

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

时间:2024-04-07 12:58:50浏览次数:19  
标签:文件 http key server file go main

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

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文件

标签:文件,http,key,server,file,go,main
From: https://blog.csdn.net/ttxiaoxiaobai/article/details/137415340

相关文章

  • kube-apiserver限流机制原理
    Kubernetes的kube-apiserver组件提供了一种限流机制来保护API服务器不会因为过多的请求而过载。这是通过几种机制实现的,包括基于速率的限流(RBAC)和基于并发连接数的限流。基于速率的限流:kube-apiserver可以配置为限制来自每个用户的请求速率。这是通过--basic-auth-file参......
  • The remote session was disconnected because there are no Remote Desktop License
    远程桌面登录报错,信息如下:TheremotesessionwasdisconnectedbecausetherearenoRemoteDesktopLicenseServersavailabletoprovidealicense.therearenoRDConnectionBrokerserversintheserverpool.Tomanageadeployment,youmustaddalltheserv......
  • Mac安装压缩版MySQL Server
    本文详细记录一次在Mac中安装MySQLServer的过程,安装环境如下:MacOS14.4x86,corei7在MySQL数据库实验环境下通常都要安装其MySQLServer,安装方式五花八门,最简单的有通过系统包管理工具一键安装,例如apt和yum等,这种安装方法会使得MySQL按照标准设计将文件分散在多个文件路径......
  • 网站HTTP怎么改成HTTPS?
    将网站从HTTP转换为HTTPS,以实现安全的加密通信,需要遵循以下步骤:1.申请SSL/TLS证书-选择证书类型:根据网站的需求选择合适的证书类型,如单域名证书、多域名证书、通配符证书等。对于只有一个主域名的情况,单域名证书通常足够;如果有多个子域名需要保护,可以选择通配符证书;如果......
  • 面试常见问题——http/https的区别,cookie和session的区别
    http:1、简单快速2、传输类型灵活3、无连接4、无状态一般http中存在如下问题:请求信息明文传输,容易被窃听截取。数据的完整性未校验,容易被篡改没有验证对方身份,存在冒充危险 https:首先客户端通过URL访问服务器建立SSL连接。服务端收到客户端请求后,会将网站支持的证......
  • centos7:编译升级 openssh:主要参考“https://github.com/boypt/openssh-rpms”
    参考“https://github.com/boypt/openssh-rpms”  “Releases·boypt/openssh-rpms(github.com)” 安装人家大牛的文档来操作即可。可选的,自行定制 version.env,可进行各种组合! BackportOpenSSHRPM/SRPMforoldCentOSAsimplescripttobuildlatestOpen......
  • 记录一下远程链接mysql报host 'xxx.xxx.xxx' is not allowed to connect to this mysq
    问题说明:服务器上的mysql本地是可以链接3306端口的,但是远程链接服务器的3306端口报错,在排除了 服务器端口和服务器防火墙 的问题之后,确定问题应该是mysql的问题解决方式:1.点击mysql命令 2.输入数据库密码 3.输入 usemysql4.输入  updateusersethost=......
  • kube-apiserver限流机制原理
    本文分享自华为云社区《kube-apiserver限流机制原理》,作者:可以交个朋友。背景apiserver是kubernetes中最重要的组件,一旦遇到恶意刷接口或请求量超过承载范围,apiserver服务可能会崩溃,导致整个kubernetes集群不可用。所以我们需要对apiserver做限流处理来提升kubernetes的健壮性。......
  • 折腾PXE网络启动 pxe 双引导bios&uefi模式 WDS windows deployment server
    简介:这才是最终章。折腾这么多,其实还是为了WDS。折腾TFTPD引导bios,是为了确认引导文件可以引导maxdos。折腾TFTPD引导uefi,也是为了确认可以引导grub。折腾OPENWRT双引导bios和UEFI,是为了确认DHCPoption93。现在我们有了可以双引导的TFTP-ROOT目录,虽然只有4个文件,这足够我......
  • 在Keycloak中实现多租户并在ASP.NET Core下进行验证
    Keycloak是一个功能强大的开源身份和访问管理系统,提供了一整套解决方案,包括用户认证、单点登录(SSO)、身份联合、用户注册、用户管理、角色映射、多因素认证和访问控制等。它广泛应用于企业和云服务,可以简化和统一不同应用程序和服务的安全管理,支持自托管或云部署,适用于需要安全、灵......