Go 语言

Go 语言教程 Go 语言环境安装 Go 语言结构 Go 语言基础语法 Go 语言数据类型 Go 语言变量 Go 语言常量 Go 语言运算符 Go 语言条件语句 Go 语言 if 语句 Go 语言 if...else 语句 Go 语言 if 语句嵌套 Go 语言 switch 语句 Go 语言 select 语句 Go 语言循环语句 Go 语言 for 循环 Go 语言循环嵌套 Go 语言 break 语句 Go 语言 continue 语句 Go 语言 goto 语句 Go 语言函数 Go 语言函数值传递值 Go 语言函数引用传递值 Go 语言函数作为值 Go 语言函数闭包 Go 语言函数方法 Go 语言变量作用域 Go 语言数组 Go 语言多维数组 Go 语言向函数传递数组 Go 语言指针 Go 语言指针数组 Go 语言指向指针的指针 Go 语言指针作为函数参数 Go 语言结构体 Go 语言切片(Slice) Go 语言范围(Range) Go 语言Map(集合) Go 语言递归函数 Go 语言类型转换 Go 语言接口 Go 错误处理 Go 语言开发工具Go 语言标准库

Go 语言标准库


package cgi

import "net/http/cgi"

cgi包实现了CGI(Common Gateway Interface,公共网关协议),参见RFC 3875

注意使用CGI意味着对每一个请求开始一个新的进程,这显然要比使用长期运行的服务程序要低效。本包主要是为了兼容现有的系统。

Go语言标准库 >>


  • func Request() (*http.Request, error)
  • func RequestFromMap(params map[string]string) (*http.Request, error)
  • func Serve(handler http.Handler) error
  • type Handler
  • func Request

    func Request() (*http.Request, error)

    返回一个当前环境下的HTTP请求。它假设当前程序执行在CGI环境下,成功返回的Request的Body是可读取数据的。(如果必要)

    func RequestFromMap

    func RequestFromMap(params map[string]string) (*http.Request, error)

    使用CGI变量集params创建一个HTTP请求。返回的Request的Body是没有数据的。

    func Serve

    func Serve(handler http.Handler) error

    在当前活跃CGI环境下执行handler;如当前无CGI环境,会返回错误。handler为nil时将使用http.DefaultServeMux。

    type Handler

    type Handler struct {
        Path string // CGI可执行文件的路径
        Root string // handler的根URI前缀,""代表"/"
        // Dir指定CGI程序的工作目录。
        // 如果Dir为""则使用Path的基目录;如果Path没有基目录则使用当前工作目录。
        Dir string
        Env        []string    // 额外设置的环境变量(如果有),格式为"key=value"
        InheritEnv []string    // 从host继承的环境变量,只有"key"
        Logger     *log.Logger // 可选的logger接口切片,如为nil则使用log.Print
        Args       []string    // 可选的传递给子进程的参数
        // 当CGI进程返回一个Location头,且其值以"/"开始时,
        // 本字段指定处理内部重定向的根部HTTP Handler。参见RFC 3875 § 6.3.2。
        // 一般会使用http.DefaultServeMux。
        // 如果为nil,返回一个本地URI路径的CGI回复会发送给客户端,不进行内部跳转。
        PathLocationHandler http.Handler
    }

    Handler在子进程中执行具有一个CGI环境的可执行程序。

    func (*Handler) ServeHTTP

    func (h *Handler) ServeHTTP(rw http.ResponseWriter, req *http.Request)