go http portal 笔记

func (ctl *loginController) Static(c *gin.Context) {
    uri := c.Param("uri")
    -------------if fileExists(path.Join(config.GetAppCfg().ResourcePath, uri)) {
        crcnumcookie := http.Cookie{Name: "crcnum", Value: crcnumStr, Path: "/"}
        timecookie := http.Cookie{Name: "time", Value: timeStr, Path: "/"}
        hostidcookie := http.Cookie{Name: "hostSessionId", Value: hostidStr, Path: "/"}
        c.Writer.Header().Set("Set-Cookie",
            fmt.Sprintf("%s=%s; Path=%s", crcnumcookie.Name, crcnumcookie.Value, crcnumcookie.Path))
        c.Writer.Header().Add("Set-Cookie",
            fmt.Sprintf("%s=%s; Path=%s", timecookie.Name, timecookie.Value, timecookie.Path))
        c.Writer.Header().Add("Set-Cookie",
            fmt.Sprintf("%s=%s; Path=%s", hostidcookie.Name, hostidcookie.Value, hostidcookie.Path))
        //http.SetCookie(c.Writer, &cookie)
        c.Writer.Header().Set("Cache-Control", "no-store")
        // 设置Expires响应头为1小时
        c.Header("Expires", time.Now().Add(time.Hour).Format(http.TimeFormat))
        c.HTML(http.StatusOK, uri, gin.H{})
    } 
---------
}

处理请求时将设置Expires响应头为当前时间加上1小时。使用time.Format函数将时间格式化为HTTP时间格式(RFC 1123)字符串,以便可以正确地传递到HTTP客户端。

Expires: Fri, 12 May 2023 04:32:46 GMT
Last-Modified: Fri, 12 May 2023 03:32:46 GMT

 

请注意,HTTP Expires响应头是在HTTP/1.0中引入的,而在HTTP/1.1中已经被弃用。现在,建议使用Cache-Control响应头来控制缓存行为。

如果你使用的是HTTP/1.1,你应该使用类似以下代码来设置Cache-Control响应头:

func YourHandler(c *gin.Context) {
    // 设置Cache-Control响应头为1小时
    c.Header("Cache-Control", "max-age=3600")

    // ...
}

 

posted @ 2023-05-12 11:28  codestacklinuxer  阅读(13)  评论(0编辑  收藏  举报