是否有可能从PHP监控服务器响应代码(http状态代码),以及如何做到这一点


Is it possible to monitor server response codes (http status codes) from PHP, and how would it be done?

服务器响应码/http状态码(101、200、404等)应该在用户和服务器之间的每次交互中以标头形式发送。如何从PHP监视代码,以便如果发送错误代码,它可以链接到web应用程序记录的用户操作,并适当地响应,例如通过锁定或重定向用户,通过尝试访问服务器上他们不应该访问的东西而获得重复的403(禁止)代码?

检查http_response_code:

*如果你没有传递参数,那么http_response_code将获得当前状态码。如果你传递一个参数,它将设置响应代码。*

http://php.net/manual/en/function.http-response-code.php

基本上没有,因为在 PHP文件被解析和生成"真实"输出之前,web服务器发送了报头。您可能会使用http_response_code()方法,但考虑到这一点:如果您想访问一个文件夹,您的www-data没有读权限,您将获得403 Forbidden。它是web服务器的消息,PHP甚至不会被触及(因为,对于web服务器来说,它甚至不存在)。

捕获这些事件的唯一方法是,如果您在配置中特别使用自定义ErrorDocument,或者响应代码由PHP文件发送:

if ( !$something )
    header("HTTP/1.1 403 Forbidden");
相关文章: