2019年开公司做网站可以吗,wordpress无法建立目录,网络营销师在哪里报名考试,有个性的个人网站一、http的重定向 重定向过程#xff1a;客户浏览器发送http请求----》web服务器接受后发送302状态码响应及对应新的location给客户浏览器–》客户浏览器发现是302响应#xff0c;则自动再发送一个新的http请求#xff0c;请求url是新的location地址----》服务器根据此请求寻…一、http的重定向 重定向过程客户浏览器发送http请求----》web服务器接受后发送302状态码响应及对应新的location给客户浏览器–》客户浏览器发现是302响应则自动再发送一个新的http请求请求url是新的location地址----》服务器根据此请求寻找资源并发送给客户。在这里location可以重定向到任意URL既然是浏览器重新发出了请求则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。
package mainimport (errorsfmtnet/http
)func redirectLimitTimes() {// 限制重定向的次数client : http.Client{CheckRedirect: func(req *http.Request, via []*http.Request) error {if len(via) 10 {return errors.New(redirect too times)}return nil},}request, _ : http.NewRequest(http.MethodGet,http://httpbin.org/redirect/20,nil,)_, err : client.Do(request)if err ! nil {panic(err)}
}func redirectForbidden() {// 禁止重定向// 登录请求防止重定向到首页client : http.Client{CheckRedirect: func(req *http.Request, via []*http.Request) error {return http.ErrUseLastResponse},}request, _ : http.NewRequest(http.MethodGet,http://httpbin.org/cookies/set?namepoloxue,nil,)r, err : client.Do(request)if err ! nil {panic(err)}defer func() {_ r.Body.Close()}()fmt.Println(r.Request.URL)
}func main() {// 重定向// 返回一个状态码3xx 301 302 303 307 308redirectForbidden()
}