在改bug时遇到了下面的问题:
原来的代码:
1 | <h4 class="g-aline g-nav-lr-left l-title"> |
点击链接显示:404 Not Found,查看请求:
1 | Request URL: http://exploit.nkdbis.cn/article/8 |
将代码修改为:
1 | <router-link :to="'/article/'+item.id"> |
再次请求,可以成功获得资源,查看请求:
1 | Request URL: http://exploit.nkdbis.cn/api/front/article/8 |
在此记录关于web页面跳转的知识点。
页面跳转
页面跳转有4种:jsp动作指令forward、html的超链接、重定向、response的响应跳转。
jsp动作指令forward
JSP(全称JavaServer Pages)是由Sun Microsystems公司主导建立的一种动态网页技术标准。 JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。
\jsp:forward转发,也是可以带参数,带值的。
· 静态中的格式:<jsp:forward page=”文件或标识路径的表达式”/>
· 动态中的格式:<jsp:forward page=”文件路径或标识路径的表达式”>
<jsp:param name=”参数名称1” value=”值1”/>
<jsp:param name=”参数名称2” value=”值2”/>
……
\</jsp:forward>
Forward(直接转发)是服务器直接请求资源,把内容响应给用户,这个过程只有一次请求,即只有一个request对象。Forward是一种服务器行为。
html的超链接
https://blog.csdn.net/cgl125167016/article/details/88973199#t5
重定向
通过修改http协议的header部分,对浏览器下达重定向指令的,让浏览器对在location中指定的url提出请求,使浏览器显示重定向网页的内容。
无论有没有设置基础路径,使用转发方式进行跳转的相对路径都是该文件的当前路径,而重定向跳转可以跳转到站点内或站点外的页面,所以使用绝对路径方式,“/”表示定位到服务器站点根目录。
Redirect(间接转发),是服务器反馈给浏览器让它重新再发起一次请求,这个过程中有两次请求,即有两个request对象。Redirect是一种客户端行为。
response的响应跳转
response是服务器对客户端的反馈,其对页面重定向的流程是:当客户端向服务器发起请求时,服务器重新给客户端一个URL地址,让客户端重新发起一个新的请求,在这个过程中,客户端第一次请求所携带的头信息将消失,在重定向之后而且地址栏显示的是重定向的页面,这是一种客户端行为。
可以通过sendRedirect重定向到服务器任何一个URL。若使用绝对路径,其中的根路径是服务器根目录,如URL=”/xxx”,则实际定向到http://localhost:8080/xxx。一般可使用request.getContextPath() + “/xxx”来访问webapp根目录下的资源。
注意:通过重定向无法访问WEB-INF中的资源,因为重定向是客户端行为,相当于浏览器重新输入URL,而WEB-INF中的内容无法通过输入URL来访问。
漏洞管理系统仍然存在的问题:
直接访问http://exploit.nkdbis.cn/index会报404:
1 | Request URL: http://exploit.nkdbis.cn/index |
访问http://exploit.nkdbis.cn时,网址栏中显示http://exploit.nkdbis.cn/index,但是请求中显示:
1 | Request URL: http://exploit.nkdbis.cn/ |
暂时没明白是怎么回事。