미들웨어는 이름에서 알 수 있듯이 요청 데이터를 가로채서 처리하고, 데이터를 검증하고, 요청과 응답 간의 논리적 처리 후 다음 미들웨어로 진입을 허용할지 여부를 결정합니다.
미들웨어는 프리픽스 미들웨어와 포스트엔드 미들웨어로 구분되며, 권한 인증, 로깅 등에 사용할 수 있습니다. (추천 학습: PHP 프로그래밍 입문부터 숙련도까지)
미들웨어는 필터링용입니다. 엔트리 애플리케이션 프로그래밍 방식의 HTTP 요청은 편리한 메커니즘을 제공합니다. 예를 들어 Laravel에는 사용자 인증을 확인하는 미들웨어가 내장되어 있습니다. 사용자가 신원 인증을 통과하지 못한 경우 미들웨어는 사용자를 로그인 인터페이스로 리디렉션합니다. 그러나 사용자가 인증되면 미들웨어는 애플리케이션에 대한 추가 요청을 허용합니다.
Laravel은 모든 라우팅 애플리케이션에 대해 자동으로 verifyCsrfToken 미들웨어를 제공합니다. HTTP 요청이 애플리케이션에 들어가고 verifyCsrfToken 미들웨어를 통과하면 크로스 사이트 요청 위조를 방지하기 위해 토큰이 확인됩니다. Http 응답이 애플리케이션을 떠납니다. (laravel 5.5부터는 CSRF 미들웨어가 웹 라우팅에만 자동 적용됩니다.)
물론, 신원 인증 외에도 다른 미들웨어를 작성하여 다양한 작업을 수행할 수도 있습니다. 예: CORS 미들웨어는 애플리케이션에서 나가는 모든 응답에 적절한 헤더 정보를 추가하는 일을 담당할 수 있습니다. 로깅 미들웨어는 애플리케이션으로 들어오는 모든 요청을 기록할 수 있습니다.
미들웨어가 왜 필요한가요?
1. 미들웨어가 없는 시나리오
비교적 규모가 작은 아웃소싱 프로젝트를 개발할 때 가장 먼저 고려하는 것은 향후 업그레이드 및 확장을 고려하기보다는 프로젝트를 어떻게 신속하게 개발하고 전달할 것인지입니다. 복잡하므로 하나의 컨트롤러로 모든 비즈니스 코드를 완성할 수 있습니다. 하지만 더 복잡한 비즈니스 로직을 사용하는 프로젝트를 수행하는 경우에는 어떻게 될까요?
2. 미들웨어가 필요한 시나리오
비즈니스 로직이 더 복잡해지면 컨트롤러가 너무 비대해지고 유지 관리가 어려워지기 때문에 모든 비즈니스 코드를 컨트롤러에 작성하는 것은 적절하지 않습니다. 우리는 구조(다른 기사에서 언급할 서비스 보조 컨트롤러, 작업 및 리포지토리 보조 모델)를 계층화하고 쿠키 작업/사용자 권한 확인 및 기타 작업을 해당 미들웨어에 작성해야 하므로 프로젝트 유지 관리성을 작성해야 합니다. 크게 개선될 것입니다.
미들웨어 실행 순서는?
1. 미들웨어에는 왜 실행 순서가 있나요?
가정 시나리오: 사용자가 댓글을 삭제하면 해당 사용자가 로그인했는지 확인해야 합니다. 댓글이 성공적으로 삭제된 후에는 기록을 남겨야 합니다. 이 사업의 운영 기록입니다.
실행 프로세스(핵심 프로세스만 고려): 입력(index.php) > 로그인 확인(미들웨어 1) > 데이터 기록(미들웨어 2) > 작업 로그 기록(미들웨어) 항목 3) > 응답을 반환합니다.
왜 위의 미들웨어가 2개인데 미들웨어가 3개인가요? 일반적인 작업 로그의 기록은 미들웨어로는 완료할 수 없기 때문입니다. (미들웨어를 구현하는 방법을 생각해 볼 수도 있습니다.) 각 작업에 해당하는 미들웨어를 별도로 살펴보겠습니다.
사용자 로그인 여부 확인: 미들웨어 1; 비즈니스 운영 로그 기록: 미들웨어 2 + 미들웨어 3 이 세 가지 미들웨어가 실행 순서를 구분하지 않으면 요구 사항을 구현할 수 없으므로 미들웨어 실행 순서가 있습니다. .
2. 프리 미들웨어 & 포스트 미들웨어
여기서는 프리 미들웨어와 포스트 미들웨어가 무엇인지 언급하고 싶습니다.
프리 미들웨어: 애플리케이션이 비즈니스 요청(컨트롤러)을 처리하기 전에 실행되는 미들웨어로 위 예의 미들웨어 1, 미들웨어 2 등이 있습니다.
포스트 미들웨어: 애플리케이션이 비즈니스 요청(컨트롤러)을 처리한 후 실행되는 미들웨어로 미들웨어 3에 해당합니다.
위 내용은 PHP 웹사이트를 게시하는 데 어떤 미들웨어가 사용됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!