重定向

HTTP状态码

旧时模样 提交于 2019-12-03 04:36:42
HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。 1.消息 100 Continue 客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。 101 Switching Protocols 服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消息头中定义的那些协议。 只有在切换新的协议更有好处的时候才应该采取类似措施。例如,切换到新的HTTP 版本比旧版本更有优势,或者切换到一个实时且同步的协议以传送利用此类特性的资源。 102 Processing 由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。 2.成功 200 OK 请求已成功,请求所希望的响应头或数据体将随此响应返回。出现此状态码是表示正常状态。 201 Created 请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其 URI 已经随Location 头信息返回。假如需要的资源无法及时建立的话,应当返回 '202 Accepted'。 202

flask八:重定向示例

纵然是瞬间 提交于 2019-12-03 02:44:13
现象:访问地址a,跳转到地址b,在flask中,使用redirect()来进行重定向 永久性重定向:301,多用于旧网址被废弃了,需要跳转到新网址访问 例如请求www.jingdong.com,会自动跳转到www.jd.com 暂时性重定向:302,比如没有访问当前访问地址的权限,需跳转到有权限的地址 比如在淘宝买东西,未登录的情况下,去下单,会重定向到登录 重定向 带参数 from flask import Flask, request, redirect, url_forapp = Flask(__name__)@app.route('/login/', methods=['GET', 'POST'])def login(): return '这是登录页'@app.route('/profile/', methods=['GET', 'POST'])def profile(): name = request.args.get('name') return '个人中心页面' if name else redirect(url_for('login')) # 没有登录就跳转到登录页,已登录就跳转到个人中心页面if __name__ == '__main__': app.run(debug=True) 来源: https://www.cnblogs.com/zhongyehai/p

浏览网页隐藏服务器IP

守給你的承諾、 提交于 2019-12-03 02:41:07
host文件修改 notepad %windir%\system32\drivers\etc\hosts 目标IP localhost.autumn.com 可能会导致HTTP Status Code返回403 forbidden IP端口重定向 netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=10002 connectaddress=222.222.221.198 connectport=10002 访问127.0.0.1:10002会重定向到222.222.221.198:10002 尽管HTTP Status Code返回200有的网站依然会失败 来源: https://www.cnblogs.com/aeolian/p/11774358.html

Flask笔记(一)

↘锁芯ラ 提交于 2019-12-03 01:41:12
first_flask_project.py # 从flask这个包中导入Flask这个类 # Flask这个类是项目的核心,以后很多操作都是基于这个类的对象 # 注册url、注册蓝图等都是基于这个类的对象 from flask import Flask # 创建一个Flask对象,传递__name__参数进去 # __name__参数的作用: # 1. 可以规定模版和静态文件的查找路径 # 2. 以后一些Flask插件,比如Flask-migrate、Flask-SQLAlchemy如果报错了,那么Flask可以通过这个参数找到具体的错误位置 app = Flask(__name__) # @app.route:是一个装饰器 # @app.route('/')就是将url中的 / 映射到hello_world这个视图函数上面 # 以后你访问我这个网站的/目录的时候,会执行hello_world这个函数,然后将这个函数的返回值返回给浏览器。 # wwww.baidu.com/ -> hello_world函数 @app.route('/') def hello_world(): return '知了课堂' # www.baidu.com/list/ @app.route('/list/') def my_list(): return 'my list' #

HTTP状态码

◇◆丶佛笑我妖孽 提交于 2019-12-03 01:31:17
状态码 含义 100 客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。 101 服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消息头中定义的那些协议。   只有在切换新的协议更有好处的时候才应该采取类似措施。例如,切换到新的HTTP 版本比旧版本更有优势,或者切换到一个实时且同步的协议以传送利用此类特性的资源。 102 由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。 200 请求已成功,请求所希望的响应头或数据体将随此响应返回。 201 请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其 URI 已经随Location 头信息返回。假如需要的资源无法及时建立的话,应当返回 '202 Accepted'。 202 服务器已接受请求,但尚未处理。正如它可能被拒绝一样,最终该请求可能会也可能不会被执行。在异步操作的场合下,没有比发送这个状态码更方便的做法了。   返回202状态码的响应的目的是允许服务器接受其他过程的请求(例如某个每天只执行一次的基于批处理的操作)

高级开发不得不懂的Redis Cluster数据分片机制

匿名 (未验证) 提交于 2019-12-03 00:43:02
Redis 集群简介 Redis Cluster 是 Redis 的分布式解决方案,在 3.0 版本正式推出,有效地解决了 Redis 分布式方面的需求。 Redis Cluster 一般由多个节点组成,节点数量至少为 6 个才能保证组成完整高可用的集群,其中三个为主节点,三个为从节点。三个主节点会分配槽,处理客户端的命令请求,而从节点可用在主节点故障后,顶替主节点。 如上图所示,该集群中包含 6 个 Redis 节点,3主3从,分别为M1,M2,M3,S1,S2,S3。除了主从 Redis 节点之间进行数据复制外,所有 Redis 节点之间采用 Gossip 协议进行通信,交换维护节点元数据信息。 一般来说,主 Redis 节点会处理 Clients 的读写操作,而从节点只处理读操作。 数据分片策略 分布式数据存储方案中最为重要的一点就是数据分片,也就是所谓的 Sharding。 为了使得集群能够水平扩展,首要解决的问题就是如何将整个数据集按照一定的规则分配到多个节点上,常用的数据分片的方法有:范围分片,哈希分片,一致性哈希算法和虚拟哈希槽等。 范围分片假设数据集是有序,将顺序相临近的数据放在一起,可以很好的支持遍历操作。范围分片的缺点是面对顺序写时,会存在热点。比如日志类型的写入,一般日志的顺序都是和时间相关的,时间是单调递增的,因此写入的热点永远在最后一个分片。

ASp.Net Mvc Core 重定向

匿名 (未验证) 提交于 2019-12-03 00:41:02
在之前老版本的MVC中。重定向直接写 HttpContext.Response.Redirect("/404.html") 就好了,程序走到这里会自动返回302然后跳转了, 必须在Action中返回一个Redirect return Redirect("/404.html"); 然后这样才会被正确的重定向。 原文:https://www.cnblogs.com/chenxincoder/p/9309437.html

基于SPA的网页授权流程(微信OAuth2)

匿名 (未验证) 提交于 2019-12-03 00:40:02
先说传统MVC网站的网页授权流程。 1.用户发起了某个需要登录执行的操作 2.收集AppId等信息重定向到微信服务器 3.微信服务器回调到网站某个Controller的Action 4.在此Action下通过得到的code请求得到access_token,并用a_t进一步获取用户信息,至此授权流程完成,可以保存用户信息到数据库和cookie,重定向回原页面 SPA架构下的问题 1.服务端与前端之间不保证可信,需要认证交互 2.使用WebApi交互,无法在服务端控制前端的页面跳转 3.认证过程中有安全级别较高的数据(access_token),不应该暴露在客户端,直接导致认证流程必须前端与WebApi配合完成 作者:Yitimo 链接:https://www.jianshu.com/p/27b8069b4178 来源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。 这里给出一张基于ng2的前后端分离的SPA的交互流程图,只需要关心右下部分需要用户数据但localStorage中没有(也就是说用户未登录)的情况。 这里给出了三条登录方式,前两种(QQ与微信的授权登录)均是第三方平台的OAuth2认证登录方式,第三种是暂不必实现但迟早会加入的用户注册登录方式,为了支持多种方式(授权或注册),必须给出很通用可扩展的登录流程。 来谈微信授权的流程 1

OAuth2.0认证流程

匿名 (未验证) 提交于 2019-12-03 00:26:01
The OAuth 2.0 Authorization Framework OAuth 2.0授权框架支持第三方支持访问有限的HTTP服务,通过在资源所有者和HTTP服务之间进行一个批准交互来代表资源者去访问这些资源,或者通过允许第三方应用程序以自己的名义获取访问权限。 为了方便理解,可以想象OAuth2.0就是在用户资源和第三方应用之间的一个中间层,它把资源和第三方应用隔开,使得第三方应用无法直接访问资源,从而起到保护资源的作用。 为了访问这种受保护的资源,第三方应用(客户端)在访问的时候需要提供凭证。即,需要告诉OAuth2.0你是谁你要做什么。 你可以将用户名和密码告诉第三方应用,让第三方应用之间以你的名义去访问,也可以授权第三方应用去访问。 可以联想一下微信公众平台开发,在微信公众平台开发过程中当我们访问某个页面,页面可能弹出一个提示框应用需要获取我们的个人信息问是否允许,点确认其实就是授权第三方应用获取我们在微信公众平台的个人信息。这里微信网页授权就是使用的OAuth2.0。 在传统的client-server认证模型中,客户端通过提供资源所有者的凭证来请求服务器访问一个受限制的资源(受保护的资源)。为了让第三方应用可以访问这些受限制的资源,资源所有者共享他的凭证给第三方应用。 OAuth定义了四种角色: resource owner(资源所有者) resource

C++重定向命令行结果到文件

匿名 (未验证) 提交于 2019-12-03 00:26:01
// MyProcess.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <windows.h> #include <iostream> #include <atlstr.h> using std :: string ; using std :: cout ; using std :: cin ; using std :: endl ; void GetInfoOfDos ( const string & strCmd , string & strOut ) { HANDLE hOutputRead = nullptr , hOutputWrite = nullptr ; SECURITY_ATTRIBUTES sa ; ZeroMemory (& sa , sizeof ( SECURITY_ATTRIBUTES )); sa . bInheritHandle = TRUE ; sa . lpSecurityDescriptor = NULL ; sa . nLength = sizeof ( SECURITY_ATTRIBUTES ); if ( FALSE == CreatePipe (& hOutputRead , & hOutputWrite , & sa , 0 )) { printf ( "create