首页 > 其他分享 >golang 构建Web服务器

golang 构建Web服务器

时间:2024-07-23 14:19:21浏览次数:14  
标签:Web http log mux golang Handler func 服务器 main

main.go

package main

import (
    "fmt"
	"log"
	"net/http"
)

func loggingMiddleware(next http.Handler) http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		log.Printf("%s %s\n", r.Method, r.URL.Path)
		next.ServeHTTP(w, r)
	})
}

func helloHandler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "Hello, with middleware!")
}

func main() {
	mux := http.NewServeMux()
	mux.HandleFunc("/", helloHandler)

	server := &http.Server{
		Addr:    ":8080",
		Handler: loggingMiddleware(mux),
	}

	log.Println("Starting server on :8080...")
	if err := server.ListenAndServe(); err != nil {
		log.Fatal(err)
	}
}

 

 

标签:Web,http,log,mux,golang,Handler,func,服务器,main
From: https://www.cnblogs.com/boye169/p/18318300

相关文章

  • Net core Web Api 8.0连接sqlserver
    1.在appsettings文件配置连接字符串{    "ConnectionStrings":{        "DefaultConnection":"DataSource=Win10p22h2vm;InitialCatalog=UserInfo;UserID=sa;Password=123456;TrustServerCertificate=True"    },DataSource是连接数据的......
  • Golang异步编程方式和技巧
    Golang异步编程方式和技巧原创 腾讯程序员 腾讯技术工程  2024年04月23日18:00 广东 12人听过Golang基于多线程、协程实现,与生俱来适合异步编程,当我们遇到那种需要批量处理且耗时的操作时,传统的线性执行就显得吃力,这时就会想到异步并行处理。下面介绍一些异步......
  • 高性能web站点
    1、组件分离1.1、DNS负载均衡不同的web内容分布到不同的服务器上,并划分子域,利用DNS将请求自然转移到不同的服务器上。主要可以分为两大内容:动态内容,CPU、IO密集型静态内容,IO密集型通过在DNS中配置多个A记录,将请求转移到集群中不同的服务器,这有助于具有地域性问题的大型......
  • 计算机课程设计:JavaWeb期刊管理系统
    计算机课程设计:JavaWeb期刊管理系统项目说明 使用JavaWeb开发的数据库显示界面的课程设计,支持数据分页查询以及期刊的模糊搜索,首页采用动态二维码生成进行校验,支持上传图片,用户密码采用md5加密,支持期刊的分页显示。使用方法:这里说明一下:大致的使用方法1、getclone......
  • Nginx:高性能 Web 服务器的卓越之选
    Nginx在当今数字化的时代,Web服务器的性能和效率至关重要。Nginx作为一款备受赞誉的高性能Web服务器,正发挥着举足轻重的作用。Nginx是一款轻量级、高性能、高并发的Web服务器和反向代理服务器。它以其出色的性能和稳定性在众多服务器中脱颖而出。核心特点高并发处......
  • SUMA&国产海光平台服务器32DB16主板ECC内存对应表&故障内存定位
    32DB16主板内存映射关系,在ECC报错后,可参考LinuxHWError及EDAC等OS信息,定位出错内存所在位置。一、关于主板型号如何确认?方法一:可以使用以下命令在Linux系统进行查看,sudodmidecode-tbaseboard也可以使用cat/sys/class/dmi/id/board_vendorcat/sys/class/dmi/id/bo......
  • 搭载LSI SAS3908/3916 MR芯片的LSI-9560 服务器raid卡(史上最详细的保姆级使用教程)
    一、9560RAID卡型号配置介绍目前常用的基于SAS3908和SAS3916芯片的RAID卡分别为BCM9560-8i、BCM9560-16i。SAS3908/3916支持Legacy和UEFI两种启动方式,但在Legacy模式下不支持进行RAID配置,仅在UEFI模式下可以进行,因此,如果需要离线配置RAID组列,需切换到UEFI模式进行,本文主......
  • Oauth 检查信用的有效性和服务器的可访问性
    我正在使用Google帐户为我的网站添加Oauth登录,并且偶然发现了一件事-如何在执行登录流程之前验证Oath提供的信息??首先,我有一个Flask应用程序以这种方式创建:是这样实现的:importloggingimportosfromdatetimeimportdatetimefromdatetimeimporttim......
  • 【vue+jdbc实现数据库操作java web前后分离版】
    创建数据库droptableifexistsusers;createtableusers(idbigint(20)notnullauto_incrementcomment'用户id',usernamevarchar(100)default''comment'用户名',phone......
  • Web劫持详解:原理、实现方式及防护方法
    Web劫持是一种常见且危险的网络攻击方式,攻击者通过篡改网页内容或重定向用户请求,达到窃取信息、传播恶意软件或其他非法目的。本文将详细讲解Web劫持的原理、实现方式及有效防护方法,并指出在防护过程中需要注意的事项。一、Web劫持的原理Web劫持主要是通过篡改或控制用户的浏......