찾다
웹 프론트엔드JS 튜토리얼요청이 항상 404인 이유는 무엇입니까?

이번에는 404에 관한 몇 가지 내용에 대해 이야기해보겠습니다. 왜냐하면 공식 계정과 QQ 그룹의 백그라운드에서 사람들이 같은 질문을 하고 있기 때문입니다.

내 애플리케이션이 배포되었으며 백그라운드에서 시작할 때 비정상적인 출력이 보이지 않았습니다. Tomcat의 관리자에게 요청할 수 있지만 자체 애플리케이션을 요청하면 왜 항상 404가 반환됩니까?

네, 왜 그렇습니까?

이 문제에 대한 설명을 분석해 보겠습니다.

1. 애플리케이션이 배포되었으며 백그라운드에 비정상적인 출력이 없습니다.

2. 톰캣의 매니저 애플리케이션이 정상적으로 요청 가능

위의 두 점은 톰캣이 정상적으로 시작됨과 동시에 매니저 애플리케이션과 사용자 애플리케이션이 성공적으로 배포되었음을 알 수 있지만, 관리자의 요청이 정상이므로 자신의 애플리케이션도 정상적으로 요청할 수 있는지 확인할 수 없습니다.

결국 지원서에 있는 리소스는 관리자와는 아무런 관련이 없습니다. 실제로 요청하실 때 주소가 틀릴 수도 있습니다. 즉, webapps 디렉터리에 배포된 애플리케이션을 보고 있지만 브라우저의 요청은 항상 멈추지 않고 404를 반환합니다.

위 질문이 저희 기사의 주요 분석 내용입니다. 먼저 Wikipedia에 설명되어 있는 HTTP 요청 404의 상태 코드를 살펴보겠습니다.

HTTP 오류 메시지 404(찾을 수 없음)는 컴퓨터 네트워크 통신에서 클라이언트와 클라이언트를 식별하는 표준 응답 코드입니다. 서버가 통신할 수 있지만 서버는 클라이언트가 요청한 리소스를 찾을 수 없습니다.

Tomcat에서는 여러 상황에서 404가 반환됩니다.

이전 기사에서 언급했듯이 Tomcat에는

JspServlet, DefaultServlet이라는 두 가지 기본 서블릿이 포함되어 있습니다. (Tomcat은 정적 리소스에 어떻게 반응하나요?)

Tomcat에 존재하지 않는 리소스를 무작위로 요청하는 경우(예: 다음 두 가지 존재하지 않는 리소스)

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

이때 위에서 언급한 두 개의 Servlet에 요청이 이루어집니다. 이때, 리소스가 존재하지 않으므로 404의 리턴은 우리의 기대와 일치합니다.

요청이 항상 404인 이유는 무엇입니까?
예를 들어 DefaultServlet은 요청을 처리할 때 현재 요청한 리소스가 Resource에 있는지 확인합니다.

여기에서는 캐시를 사용하여 현재 애플리케이션의 모든 리소스 콘텐츠를 기록합니다.

은 리소스에서 찾을 수 없습니다. 아래 그림은 Tomcat 루트 애플리케이션의 리소스입니다
요청이 항상 404인 이유는 무엇입니까?

여기서 응답에 상태와 메시지를 설정하면 전체 처리 프로세스가 종료되고 오류 페이지가 나타납니다. 특정 구성에 따라 표시되며, 다른 상태 코드는 다른 페이지에 해당할 수 있습니다. 다음은 이전 기사에서 특정 구현을 분석한 것입니다. (귀하의 오류 페이지입니다. 아니요, 귀하의 오류 페이지입니다.)

다른 상황을 분석해 보겠습니다.

예를 들어 관리자 애플리케이션을 요청하면 애플리케이션 이름이 Manager 또는 prepareR 로 기록됩니다. 이번에는 실제로 위 처리와 일치합니다. 이 애플리케이션 이름은 이 애플리케이션의 리소스로 인식되어 처리되므로 해당 리소스가 없으면 자연스럽게 404가 반환됩니다.

또 다른 상황을 살펴보겠습니다.

매니저 애플리케이션 아래에 404.jsp 에러페이지가 있는데, 다음 양식으로 직접 요청하면 여전히 404가 나옵니다

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

모두가 이것이 내부 디렉토리에 대한 액세스라는 것을 알고 있습니다. Tomcat 제한이 적용되었습니다. (WEB-INF 디렉토리에 대해 얼마나 알고 계십니까?)
또 다른 것을 살펴보겠습니다:
index.jsp에 있다고 가정하면 애플리케이션의 특정 페이지는 sendRedirect를 사용하면 기본적으로 다른 페이지로 이동합니다. 다행히 점프 후 구체적인 경로 정보가 표시됩니다. 하지만 전달을 사용한다고 가정하면 이때 전달한 페이지는 존재하지 않습니다
이때 모든 요청은 404가 되지만 요청한 페이지는 분명히 디렉토리에 조용히 놓여 있는 것을 볼 수 있습니다.

그래서 404를 반환하는 요청을 보면 상황을 사례별로 분석하여 구체적인 원인을 파악해야 하고, 리소스를 실제로 찾을 수 없는지, 또는 다른 이유.

동일한 404 오류 페이지에 해당하는 여러 오류 코드를 구성했을 수도 있습니다. 404가 표시될 때마다 다른 이유가 있을 수 있습니다.


성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
es6数组怎么去掉重复并且重新排序es6数组怎么去掉重复并且重新排序May 05, 2022 pm 07:08 PM

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

JavaScript的Symbol类型、隐藏属性及全局注册表详解JavaScript的Symbol类型、隐藏属性及全局注册表详解Jun 02, 2022 am 11:50 AM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

404代码是前端问题还是后端问题404代码是前端问题还是后端问题Jun 12, 2023 pm 01:53 PM

404代码和具体情况有关,既可能是前端问题也可能是后端问题,在某些情况下,404错误可能来自于客户端出现问题,例如在URL路径拼写导致找不到网页,在其他情况下,404错误可能是由于Web应用程序 没有正确地响应请求导致的,例如缺少接口实现或数据库查询结果为空等问题。

原来利用纯CSS也能实现文字轮播与图片轮播!原来利用纯CSS也能实现文字轮播与图片轮播!Jun 10, 2022 pm 01:00 PM

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

JavaScript对象的构造函数和new操作符(实例详解)JavaScript对象的构造函数和new操作符(实例详解)May 10, 2022 pm 06:16 PM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

JavaScript面向对象详细解析之属性描述符JavaScript面向对象详细解析之属性描述符May 27, 2022 pm 05:29 PM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

javascript怎么移除元素点击事件javascript怎么移除元素点击事件Apr 11, 2022 pm 04:51 PM

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

整理总结JavaScript常见的BOM操作整理总结JavaScript常见的BOM操作Jun 01, 2022 am 11:43 AM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는