0

0

为什么请求总是404?

伊谢尔伦

伊谢尔伦

发布时间:2016-11-21 13:45:52

|

2827人浏览过

|

来源于php中文网

原创

 本次我们来说说关于404的一些内容。因为在公众号后台,和qq群里,都有人在问一类的问题:

  我应用已经部署好了,后台启动也没见到异常输出。请求tomcat的manager这些都可以,为什么请求自己的应用总是返回404?

  是啊,这是为什么呢?

  我们来分析这个问题的描述。

  1. 应用部署好了,后台没有异常输出。

  2. tomcat的manager应用可以正常请求

  以上两点只能说明tomcat正常启动,同时manager应用和用户的应用成功部署,但对于manager的请求正常,并不能保证你自己的应用也能正常请求。

  毕竟,你的应用内资源是什么,和manager没有关联,甚至,你请求的时候,地址还可能写错。或者说,你眼睁睁看着应用部署在webapps目录下,但在浏览器里请求总是不停止的返回404。

  上面这个问题是我们本次文章的主要分析的内容。我们首先来看,404这个http请求的状态码,wikipedia里这样描述:

  404(not found)这个http错误信息,是个标准的响应码,在计算机网络通信中,标识client可以和server通信, 但server找不到client请求的资源。

  在tomcat里,404会在许多情形下返回。

  我们前面的文章了说过,tomcat里包含两个默认的servlet:

  jspservlet, defaultservlet。(tomcat是如何响应静态资源的?)

  我们随便请求tomcat中一个不存在的资源时,例如下面两个都不存在的资源:

  http://localhost:8080/abc 和 http://localhost:8080/abcd.jsp

  这个时候,会请求到上面提到的这两个servlet中。此时,由于资源并不存在,所以返回404和我们预期的一致。

2021.jpg
例如DefaultServlet,在处理请求时,会在Resource中查找当前请求的资源是否存在。

这里用到了一个cache,记录了当前应用的所有资源内容,

在资源中找不到。下图是Tomcat根应用内的资源
2023.jpg

这里的response设置完status和message后,整个处理流程结束,错误页面的展示,是根据具体的配置,不同的状态码对应可以对应到不同的页面,这里Tomcat的错误页面,我们前面文章分析过具体实现。(你的错误页面。不,是你的错误页面)

  我们再来分析看另一种情况:

  比如你在请求manager应用时,应用名称写成了Manager或者manageR,这个时候,和上面处理其实一致,这个应用名称,会被识别为/这个应用的一个资源去处理,所以没有该资源自然是返回404。

  再看一种情况:

  manager应用下是有404.jsp这个错误页面的,但你直接以下面的形式去请求,还是会得到404

  http://localhost:8080/manager/WEB-INF/jsp/404.jsp

TP-COUPON 导购系统 免费版
TP-COUPON 导购系统 免费版

自从百度屏蔽淘宝客网站、淘宝抛弃淘宝客之后,个人站长集体陷入了恐慌之中。此时,什么值得买网的异军突起引起了广大个人站长的极大关注。做一个什么值得买一样的导购网站成了众多个人站长的一致心愿! TP-COUPON 导购系统 即是让个人站长实现此心愿的绝佳选择! 欢迎个人站长选用。V1.1版 更新记录:1.修正请求时查询淘宝店铺错误的bug2.删除一些无用的代码

下载

这个大家都知道,是Tomcat内对于目录的访问进行了限制。(WEB-INF目录知多少)
再看一种:
你应用内的某个页面,假设是index.jsp内,其本质上要跳转到其它的一个页面,如果是使用sendRedirect还好,跳转后显示具体的路径信息。但假设使用的forward,这个时候,你forward的页面又不存在
这个时候每次请求都会是404,但你看着你请求的页面明明安静的躺在目录里。

所以,再看到请求返回404的时候,要分情况分析,具体是什么原因导致的,是真的资源找不到,还是其它原因。

甚至还有可能是你配置了多个error code对应到同样一个404的错误页面,你每次看到404,也有可能是其它原因。

相关专题

更多
c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

77

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

45

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

118

2026.01.09

学python网站汇总
学python网站汇总

本专题整合了学python网站汇总,阅读专题下面的文章了解更多详细内容。

10

2026.01.09

python学习网站
python学习网站

本专题整合了python学习相关推荐汇总,阅读专题下面的文章了解更多详细内容。

14

2026.01.09

俄罗斯手机浏览器地址汇总
俄罗斯手机浏览器地址汇总

汇总俄罗斯Yandex手机浏览器官方网址入口,涵盖国际版与俄语版,适配移动端访问,一键直达搜索、地图、新闻等核心服务。

70

2026.01.09

漫蛙稳定版地址大全
漫蛙稳定版地址大全

漫蛙稳定版地址大全汇总最新可用入口,包含漫蛙manwa漫画防走失官网链接,确保用户随时畅读海量正版漫画资源,建议收藏备用,避免因域名变动无法访问。

324

2026.01.09

php学习网站大全
php学习网站大全

精选多个优质PHP入门学习网站,涵盖教程、实战与文档,适合零基础到进阶开发者,助你高效掌握PHP编程。

42

2026.01.09

php网站搭建教程大全
php网站搭建教程大全

本合集专为零基础用户打造,涵盖PHP网站搭建全流程,从环境配置到实战开发,免费、易懂、系统化,助你快速入门建站!

12

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
http状态码大全
http状态码大全

共47课时 | 107.1万人学习

React 教程
React 教程

共58课时 | 3.5万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 2.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号