当前位置: 首页 > news >正文

【六、http】go的http的客户端重定向

一、http的重定向

在这里插入图片描述
重定向过程:客户浏览器发送http请求----》web服务器接受后发送302状态码响应及对应新的location给客户浏览器–》客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址----》服务器根据此请求寻找资源并发送给客户。在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。

package mainimport ("errors""fmt""net/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?name=poloxue",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()
}
http://www.lryc.cn/news/220324.html

相关文章:

  • AI:61-基于深度学习的草莓病害识别
  • idea文件比对
  • 重磅发布|美创科技新一代 数据安全管理平台(DSM Cloud)全新升级
  • 比SAM小60倍的分割一切模型:MobileSAM
  • 版本控制系统-SVN
  • 【电路笔记】-串联RLC电路分析
  • 大数据毕业设计选题推荐-家具公司运营数据分析平台-Hadoop-Spark-Hive
  • 【触想智能】工业显示器上市前的检测项目分享
  • Vue使用epubjs电子书
  • python机器学习——决策树
  • __attribute__((__used__)) 和 __attribute__((__section__(“*“ “*“)))的使用
  • webgoat-(A1)SQL Injection
  • Flink的API分层、架构与组件原理、并行度、任务执行计划
  • Transformer:开源机器学习项目,上千种预训练模型 | 开源日报 No.66
  • Corel VideoStudio 会声会影2024剪辑中间的视频怎么删 剪辑中音乐太长怎么办
  • 数据结构初阶---复杂度的OJ例题
  • Prometheus|云原生|grafana的admin用户密码重置备忘记录
  • [hive]中的字段的数据类型有哪些
  • 第六章 树【数据结构和算法】【精致版】
  • 第九章:Dynamic Symbolic Execution
  • 在搜索引擎中屏蔽csdn
  • Linux开发工具的使用(vim、gcc/g++ 、make/makefile)
  • MySQL(10):创建和管理表
  • Python赋值给另一个变量且不改变原变量
  • PHP进销存ERP系统源码
  • npm i 报错:Cannot read properties of null (reading ‘refs‘)
  • C#学习中关于Visual Studio中ctrl+D快捷键(快速复制当前行)失效的解决办法
  • 银河E8,吉利版Model 3:5米大车身、45寸大屏、首批8295座舱芯
  • 技术分享 | 被测项目需求你理解到位了么?
  • [MRCTF2020]你传你呢1