重定向

Nginx的rewrite(地址重定向)剖析

大城市里の小女人 提交于 2019-11-29 19:19:34
1、rewrite语法:   指令语法:rewrite regex replacement[flag];   默认值:none   应用位置:server、location、if   rewrite是实现URL重定向的重要指令,他根据regex(正则表达式)来匹配内容跳转到replacement,结尾是flag标记   简单的小例子: 1 rewrite ^/(.*) http: //www .baidu.com/ permanent; # 匹配成功后跳转到百度,执行永久301跳转   常用正则表达式: 字符 描述 \ 将后面接着的字符标记为一个特殊字符或者一个原义字符或一个向后引用 ^ 匹配输入字符串的起始位置 $ 匹配输入字符串的结束位置 * 匹配前面的字符零次或者多次 + 匹配前面字符串一次或者多次 ? 匹配前面字符串的零次或者一次 . 匹配除“\n”之外的所有单个字符 (pattern) 匹配括号内的pattern   rewrite 最后一项flag参数: 标记符号 说明 last 本条规则匹配完成后继续向下匹配新的location URI规则 break 本条规则匹配完成后终止,不在匹配任何规则 redirect 返回302临时重定向 permanent 返回301永久重定向 2、应用场景: 调整用户浏览的URL,看起来规范 为了让搜索引擎收录网站内容,让用户体验更好

7、重定向

烈酒焚心 提交于 2019-11-29 19:14:06
重定向分为永久性重定向和暂时性重定向(页面跳转),在页面上体现的操作就是,浏览器从一个页面跳转到另一个页面。 7.1 永久性重定向 http状态码为301,多用于旧网址废弃,当访问其时会转到一个新的网址以确保用户的访问。 7.2 暂时性重定向 1.http状态码是302,表示页面暂时的跳转,比如访问淘宝时,在未登录状态下查看购物车,会跳转到登陆页面。 2.在flask中,重定向通过 flask.redirect(location,code=302) 来实现,其中location表示需要重定向到的url,应该配合 url_for() 函数来使用,code表示采用哪种重定向,默认为302。 示例: from flask import Flask, request, url_for, redirect app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' @app.route('/login/') def login(): return '这是登陆页面' @app.route('/profile/') def profile(): if request.args.get('name'): return '个人中心页面' else: return redirect(url_for(

JavaWeb基础知识总结.

喜欢而已 提交于 2019-11-29 17:16:57
JavaWeb基础知识总结. 1. web服务器与HTTP协议 W eb服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。 l Internet上供外界访问的Web资源分为: • 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。 • 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。 l 静态web资源开发技术 • Html l 常用动态web资源开发技术: • JSP/Servlet、ASP、PHP等 ruby python • 在Java中,动态web资源开发技术统称为Javaweb,我们课程的重点也是教大家如何使用Java技术开发动态的web资源,即动态web页面。 但是我们做java开发,不是做网页。 网络上的资源分为两种 早期:静态页面 html实现。 观看 现在:动态页面 php asp jsp 交互. lamp =linux +apache+ mysql+php----->个人网关或小型企业首选 asp现在没人用,但是网络上遗留下来的比较多。miscrosoft的技术 .net技术。 jsp--->java去做网页所使用的技术。jsp本质上就是servlet 使用jsp开发成本高。 BS====>浏览器+服务器 只要有浏览器就可以

Django-(Request对象和Response对象)

ぐ巨炮叔叔 提交于 2019-11-29 16:47:42
request对象 当一个页面被请求时,Django就会创建一个包含本次请求原信息的HttpRequest对象。 Django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用 request 参数承接这个对象。 请求相关的值 path_info 返回用户访问url,不包括域名 method 请求中使用的HTTP方法的字符串表示,全大写表示。 GET 包含所有HTTP GET参数的类字典对象 POST 包含所有HTTP POST参数的类字典对象 body 请求体,byte类型 request.POST的数据就是从body里面提取到的 属性 所有的属性应该被认为是只读的,除非另有说明。 属性:   django将请求报文中的请求行、头部信息、内容主体封装成 HttpRequest 类中的属性。 除了特殊说明的之外,其他均为只读的。 0.HttpRequest.scheme 表示请求方案的字符串(通常为http或https) 1.HttpRequest.body   一个字符串,代表请求报文的主体。在处理非 HTTP 形式的报文时非常有用,例如:二进制图片、XML,Json等。   但是,如果要处理表单数据的时候,推荐还是使用 HttpRequest.POST 。   另外,我们还可以用 python 的类文件方法去操作它,详情参考 HttpRequest.read()

服务端跳转和客户端跳转

只愿长相守 提交于 2019-11-29 16:18:38
先描述一个场景: 你到一个机关办事,一个是办事窗口的那个人很不客气地说,这个事你别找我,你找xxx窗口,然后你自己跑到xxx窗口,那个窗口的人直接给你办了;还有一个是窗口的人和你说,你等下,他自己跑去找另一个人沟通一番,然后跑回来给你办了。 前者是redirect重定向,后者便是forward转发。 重定向redirect和转发forward的流程图如下: (1)客户端跳转--重定向redirect 客户端向服务器发送请求时,服务器返回一个“去访问其他链接”的响应,客户端根据此响应,第二次去访问服务器,服务器给出最终的响应,所以总共有两次请求。客户端跳转时,地址栏会发生改变。 使用response的rsendRedirect方法:   重定向格式:response.sendRedirect( "path"); (2)服务端跳转--转发forward 客户端向服务器发送请求时,服务器发现当前资源给不出回应,服务器需要在内部请求另一个资源的跳转,然后给出响应,这属于1次请求,由于服务器跳转与否客户端并不知道,所以地址栏的url并不会改变。 使用requestDispatcher对象:   转发格式:request.getRequestDispatcher( "path").forward(response,request) 使用jsp动作元素:   <jsp:forward page=

SSH框架之Struts2第二篇

我与影子孤独终老i 提交于 2019-11-29 13:57:06
1.2 知识点 1.2.1 Struts2的Servlet的API的访问 1.2.1.1 方式一 : 通过ActionContext实现 页面: <h1>Servlet的API的访问方式一:解耦合的方式</h1> <form action="${ pageContext.request.contextPath }/requestDemo1.action" method="post"> 姓名:<input type="text" name="name"/><br/> 年龄:<input type="text" name="age"><br/> <input type="submit" value="提交"> </form> 编写Action /** * Servlet的API的访问方式一:解耦合的方式 * * 只能用于接收参数 和 操作域中的数据 * @author jt */ public class RequestDemo1Action extends ActionSupport{ @Override public String execute() throws Exception { // 接收数据: /** * 在ActionContext中提供了一些方法:操作域对象的数据 * * Map<String,Object> getParameters(); * * Map

零基础摸底测试

自闭症网瘾萝莉.ら 提交于 2019-11-29 13:17:21
一、填空题 linux系统,用户密码文件是_____(绝对路径) linux系统,组账号的文件是___(绝对路径) 一条命令实现从root用户切换到tiechu用户并切换到其家目录___ 锁定tiechu用户密码的命令是___ 查看系统内核版本的命令是___ 查看系统版本号的命令是___ vim编辑工具里,如果想把全部的“hello”换成“world”,需要在___模式下,操作指令是___ 给逻辑卷lv01扩容100MB的命令是___ 常规的网络请求方法有___ ___ ___ ___ ___ apache服务的配置文件,给定域名的字段是___ dns服务的软件包的名字是___ dns服务的服务名称是___ samba服务检测语法错误的命令是___ 在dns中,根域用___表示 dns的查询方式有___、___。 dns正向解析是指___。 把在前台运行的程序放到后台运行的指令是___。 请求报文的结构包含___、___、___、___四部分。 响应报文的结构包含___、___、___、___四部分。 获取响应报文头部的命令是___。 查看zsh是否安装的命令是___ 为网络子接口设置ip的命令是___ 启动nfs服务之前要先启动___ 修改系统参数的方式有两种,第一种是___,第二种是___,第一种的特点是___,第二种的特点是___。 dns服务的默认端口是___

Status Code状态码详解对照表

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

nginx 参数

99封情书 提交于 2019-11-29 09:48:48
nginx 各参数翻译,作用 $arg_PARAMETER #这个变量包含GET请求中,如果有变量PARAMETER时的值。 $args #这个变量等于请求行中(GET请求)的参数,例如foo=123&bar=blahblah; $binary_remote_addr #二进制的客户地址。 $body_bytes_sent #响应时送出的body字节数数量。即使连接中断,这个数据也是精确的。 $content_length #请求头中的Content-length字段。 $content_type #请求头中的Content-Type字段。 $cookie_COOKIE #cookie COOKIE变量的值 $document_root #当前请求在root指令中指定的值。 KaTeX parse error: Expected 'EOF', got '#' at position 14: document_uri #̲与uri相同。 $host #请求主机头字段,否则为服务器名称。 $hostname #Set to the machine’s hostname as returned by gethostname $http_HEADER KaTeX parse error: Expected 'EOF', got '#' at position 9: is_args

关于Servlet的几个小问题

…衆ロ難τιáo~ 提交于 2019-11-29 09:23:09
1.如何配置Servlet? 答: 需要在相对应的web.xml文件中指明Servlet和Servlet类的对应关系, 以及指明Servlet的URL访问方式。。(就是web.xml中需要写的 <servlet> <servlet-name>Servlet</servlet-name> <servlet-class>Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Servlet</servlet-name> <url-pattern>/Servlet</url-pattern> </servlet-mapping> ) 答: (1).创建继承HttpServlet抽象类的子类。 (2).根据请求的类型覆盖HttpServlet的方法,如doGet()或者doPost()方法 (3).使用HttpServletRequest对象来获取请求信息 (4).使用HttpServletResponse对象来生成响应 ) 2.简述Servlet的生命周期,第一次请求servlet和第2次请求Servlet有什么区别? 1.初始化阶段 { (1)加载。。。 在每次调用之前,先查找web.xml文件生成.class文件,并将其加载到内存之中。 (2)实例化 Servlet容器根据加载的