Golang net/http使用简析

本文简要分析了Golang的net/http包的使用,包括路由注册、响应函数HandlerFunc的定义、如何解析请求参数,以及http.ListenAndServe启动服务的方法。同时,解释了http.Request和http.Response结构,特别是Request.Body和Header的用途,以及如何通过Request.ParseForm()解析参数。此外,提到了http.Client、http.Server、http.Header和Cookie等关键概念。
摘要由CSDN通过智能技术生成
net/http使用简析

  • 路由:路由注册在http.HandlerFunc(Path,handlerfunc)//接收一个资源定位的路径和一个响应函数
  • 响应函数HandlerFunc(http.ResponseWriter,*http.Request)//其中http.Writer是一个接口实现了客户端消息的封装,Request获取客户端请求内容
  • 在接收参数时需要手动request.ParseForm()解析参数
  • http.ListenAndServe(Addr,handler)//启动服务,handler一般为空
结构解析
  • http.Request是客户端发出的或者服务端收到的相关信息,Request.Body和Request.Header对应请求头和消息内容,获取json数据时应当使用Body

  • http.Response{
    Status string // e.g. “200 OK”
    StatusCode int // e.g. 200
    Proto string // e.g. “HTTP/1.0”
    ProtoMajor int // e.g. 1
    ProtoMinor int // e.g. 0

    }Response对应http回复相关信息

  • Request.Form//请求头中的参数

  • Request.ParseForm()//解析URL中的查询字符串,并将解析结果更新到Form字段。

  • http.Client//http客户端

type Client struct {
   
    Transport RoundTripper
    CheckRedirect func(req *Request, via []*Request) error
    Jar CookieJar
    Timeout time.Duration
}
常用方法:对应http中客户端发起的请求
func (c *Client) Head(url string) (resp *Response, err error)
func (c *Client) Get(url string) (resp *Response, err error)
func (c *Client) Post(url string, bodyType string, body io.Reader) (resp *Response, err error)
func (c *Client) PostForm(url string, data url.Values) (resp *Response, err error)
  • http.Server
	type Server struct {
   
		Addr           string       
		Handler        Handler     
		ReadTimeout    time.Duration 
		WriteTimeout   time.Duration
		MaxHeaderBytes int         
		TLSConfig      *tls.Config   
		TLSNextProto map[string]func(*Server, *tls.Conn, Handler)
		ConnState func(net.Conn, ConnState)
		ErrorLog *log.Logger
	}Server中的字段是http服务端的配置信息
	func (srv *Server) Serve
golang的net/http是一个非常强大的包,用于创建和管理HTTPHTTPS服务器。它提供了一组用于处理HTTP请求的函数和工具,使得构建一个完整的Web应用变得非常简单和高效。 使用net/http包,我们可以很容易地创建一个HTTP服务器。只需使用http包中提供的函数,传递一个处理函数作为参数,然后调用`http.ListenAndServe()`函数即可启动服务器。服务器会监听指定的端口,并在接收到请求时调用处理函数来处理请求。 除了创建服务器外,net/http还提供了各种工具和功能来处理HTTP请求和响应。例如,我们可以通过http包提供的函数发送HTTP请求并接收响应,还可以设置请求的一些属性,如请求方法、请求头、请求体等。同时,我们也可以使用http包提供的各种工具函数来解析和处理HTTP请求和响应的数据,如解析URL、解析请求体、处理cookie等。 net/http还提供了处理HTTP路由的功能,通过创建自定义的`http.Handler`来处理特定的URL或URL模式。我们可以根据请求路径的不同,将不同的处理逻辑分配给不同的处理器,从而实现功能强大且灵活的路由。 此外,net/http还具备一些安全性方面的功能,如支持HTTPS、HTTP身份验证等。我们可以通过提供证书、私钥等信息来实现HTTPS服务器,并利用http包中提供的各种函数和方法来进行身份验证和权限控制。 总而言之,golang的net/http包是一个功能强大、易用且高效的HTTP服务器程序开发工具包。它提供了各种功能和工具,使得构建和管理HTTPHTTPS服务器变得非常简单和灵活。无论是构建Web应用还是实现HTTP客户端,使用net/http都可以让我们事半功倍。 希望以上的回答能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值