网站建设houxiaoer,大连网络公司排名,网站建设阶段的推广,怎么做企业网站一级悬浮菜单简介 在实际工作中#xff0c;有些接口请求完以后会重定向到别的url#xff0c;而你却需要重定向前的url。URL主要是针对虚拟空间而言#xff0c;因为不是自己独立管理的服务器#xff0c;所以无法正常进行常规的操作。但是自己又不希望通过主域名的二级目录进行访问有些接口请求完以后会重定向到别的url而你却需要重定向前的url。URL主要是针对虚拟空间而言因为不是自己独立管理的服务器所以无法正常进行常规的操作。但是自己又不希望通过主域名的二级目录进行访问而
是希望通过主域名的二级域名进行访问。所以这个时候就会用到URL重定向。 重定向过程好比有个绰号叫“浏览器”的人写信找张三借钱张三回信说没有钱让“浏览器”去找李四借并将李四现在的通信地址告诉给了“浏览器 ”。于是“浏览器”又按张三提供通信地址给李四写信借钱李四收到信后就把钱汇给了“浏览
器”。可见“浏览器”一共发出了两封信和收到了两次回复“ 浏览器”也知道他借到的钱出自李四之手。具体可以通过 HttpServletResponse.sendRedirect 实现。 RequestDispatcher.forward 方法在服务器端内部将请求转发给另外一个资源浏览器只知道发出了请求并得到了响应结果并不知道在服务器程序内部发生了转发行为。这个过程好比绰号叫“ 浏览器”的人写信找张三借钱张三没有钱于
是张三找李四借了一些钱甚至还可以加上自己的一些钱然后再将这些钱汇给了“浏览器”。可见“浏览器”只 发出了一封信和收到了一次回复他只知道从张三那里借到了钱并不知道有一部分钱出自李四之手。
1、请求转发requestDispatcher
该动作是服务器行为在web容器中进行的客户端对于跳转是不知道的地址栏中显示的URL是不会变化的因为请求转发中是一次请求相同的request可以在请求中设置属性对象setAttribute()来实现数据共享
request.getRequestDispatcher(URL).forward(request,response); 2、请求重定向sendRedirect也称为间接的请求转发
该动作是客户端行为服务器会向客户端返回一个301状态码并携带一个Location属性表名应请求的地址然后客户端按照服务器返回的地址重新发送请求地址栏中显示的URL是会变化的因为请求重定向中是两次不同的请求request无法实
现数据共享
response.sendRedirect(URL); 重定向 URL重定向主要是指主域名主域名www.xusseo.com下的二级目录如www.xusseo.com/wap但是由于wap是一个新的站点所以正确的域名应该是应该是wap.xusseo.com。但是访问的文件夹却是www.xusseo.com/wap这种访问则被
称之为重定向。
常见的重定向分为301重定向和302重定向。重定向是一种比较特别的优化方式因为需要通过代码来实现从而变相提高权重值。所以在特殊情况下如果使用重定向过于严重则会被搜索引擎判定为不是正当的优化。
1、301重定向代表永久性转移(Permanently Moved)
301重定向被称之为永久性重定向主要是针对一些永久性更改的网站而且这种重定向一旦做好将会对网站的优化大有好处。
2、302重定向代表暂时性转移(Temporarily Moved )
302重定向的使用并不多见它通常被称之为暂时性的转移。302重定向的使用常见于meta重定向和JavaScript重定向。而这种重定向是典型的不正当行为很容易被搜索引擎发现并将其重定向的网址定义为不合法网站做出惩罚。
3、以举个简单的场景案例先登录打开我的博客首页进入任意一个页面都可以在这里进我的随笔编辑界面记住这个地址https://i.cnblogs.com/EditPosts.aspx?opt1
4.退出博客园登录把刚才我的随笔这个地址https://i.cnblogs.com/EditPosts.aspx?opt1输入浏览器回车抓包会看到这个请求状态码是 302浏览器地址栏瞬间刷新跳到登录首页去了 禁止重定向allow_redirects 1、用 get 方法请求https://i.cnblogs.com/EditPosts.aspx?opt1
2、打印状态码是 200这是因为 requets 库自动处理了重定向请求了这里留作疑问。聪明的你一定或许猜到了不知道的后边带你去解密笔者就喜欢抽丝剥茧的那种感觉带你一层一层揭开它神秘的面纱
3、自动处理重定向地址后我们就获取不到重定向后的 url 了就无法走下一步这里我们可以设置一个参数禁止重定向allow_redirectsFalseallow_redirectsTrue 是启动重定向然后就可以看到 status_code 是 302 了
获取重定向后地址 1、在第一个请求后服务器会下发一个新的请求链接在 response 的 headers 里如下抓包Location 2、代码实现获取Location 地址
3、参考代码 1 # coding:utf-8 2 import requests 3 # 请求头 4 headers { 5 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko 6 } 7 s requests.session() 8 # 打开我的随笔 9 r s.get(https://i.cnblogs.com/EditPosts.aspx?opt1, 10 headersheaders, 11 allow_redirectsFalse, 12 verifyFalse) 13 # 打印状态码自动处理重定向请求 14 print (r.status_code) 15 new_url r.headers[Location] 16 print (new_url) 小结 在工作和学习中我们不仅需要知其然还必须知其所以然。前边留的疑问或许你已经查资料知道其原因了。我这里还是用老办法看源码看源码看源码重要的事说三遍。
1、从get方法入手 我们知道使用requests的get方法传入url就可以访问此网站但是这个过程是怎么做的呢今天就带着这个疑问对其进行进一步探究。
打开pycharm在pycharm中通过ctrlcommand️左键我们可以定位到方法的位置。
我们首先进入sessions.py文件看到get方法如下
可以发现该方法就两句话
先看第一句kwargs.setdefault(allow_redirects, True),下面我们来说说kwargs在这里的用处
2、kwargs kwargs是字典类型setdefault的作用是给字典键名allow_redirects赋值如果该键不存在赋给其默认值也就是第二参数True。
好了到此为止就解决大家的疑问了有兴趣的小伙伴可以继续往下分析。 软件测试到测试开发全测试生涯学习路线】
以及全套配套的学习资料视频教程....
【以下路线图太详细了只能展开部分具体的可以在文章末尾扫描小卡片备注000领取哦】
1自动化测试进阶系列 2全栈性能测试监控以及调优 3全栈测试开发平台实战 4全栈安全测试渗透测试 5devops持续集成部署 6全栈接口测试工具进阶 7跨平台自动化测试工具 8大厂简历真题录音 9全栈系列课企业项目实战 总结现阶段如何突出重围呢唯有不断的学习下面是软件测试到测试开发全职业生涯全套学习资料 【需要的可以点击下方官方推广小卡片扫码备注000免费领取】