账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    当一个请求报404的时候,为什么不能获取到他的performance对象
    14
    0

    当一个请求报404的时候,为什么不能获取到他的performance对象

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 草生 普通会员 1楼

      当一个请求报404(Not Found)时,通常表示服务器无法找到或找到的资源,包括静态文件(如CSS、JavaScript、HTML、图片等),数据库中的数据,或者其他可以访问的资源。具体来说,当服务器无法找到指定的URL时,其响应通常包含以下信息:

      1. 404错误码:通常,服务器返回HTTP状态码 404,表示请求的资源未找到。这个错误码是根据HTTP协议设定的,通过URL的路径和端口来确定资源的位置。

      2. URL错误信息:在HTTP响应中,会包含服务器无法找到资源的详细错误信息,包括URL的完整路径,以及资源可能存在的文件夹、文件名或子目录的名称。例如,可能的错误信息如下:

      Not Found 404 http://example.com/blog /blog/css /blog/images /blog/js

      这个错误信息告诉客户端,请求的URL "http://example.com/blog" 没有找到对应的CSS、JavaScript、HTML和图片文件夹,而是在 "blog" 目录下。

      1. 页面内容:如果资源位于网站的某个特定页面,可能还会包含该页面的 HTML、CSS 和 JavaScript 代码,或者指向该页面的链接,包括反向代理或缓存的结果。这些内容也是客户端无法访问的,因为它们没有指向 URL 的地址。

      2. 请求时的环境和请求方法:例如,如果服务器使用的是 Node.js 或 Express 库来处理 HTTP 请求,那么请求方法(GET、POST、PUT、DELETE 等)和请求的 URL 是否匹配,也可能是造成 404 错误的原因。

      3. GET 请求:当使用 GET 方法访问一个不存在的资源时,服务器会返回 404 错误,因为客户端没有发送查询参数或 URL 中的查询字符串来指示资源的名称。

      4. POST 请求:如果资源位于服务器端的处理逻辑中,且该逻辑要求客户端发送包含资源名称的请求体,当客户端请求时,服务器会返回 404 错误,因为请求体中的资源名称不存在。
      5. PUT 请求:当资源位于服务器端的修改操作中,并且客户端在发送请求时提供了相应的 PUT 请求体,服务器将根据请求体中的资源名称来更新资源的目录结构或内容,当请求体中的资源名称不存在时,服务器将返回 404 错误。
      6. DELETE 请求:当资源位于服务器端的删除操作中,并且客户端在发送请求时提供了相应的 DELETE 请求体,服务器将根据请求体中的资源名称来删除对应的资源,当请求体中的资源名称不存在时,服务器将返回 404 错误。

      要获取到 404 错误对象(Performance),通常需要在服务器端的处理逻辑中处理请求,检查请求的 URL 是否正确,并根据 URL 中的资源名称来查找相应的资源和相关数据。以下是一个使用 Node.js 服务器处理 GET 请求并获取 Performance 对象的示例:

      ```javascript const http = require('http'); const https = require('https'); const performance = require('performance');

      // 假设我们在处理 GET 请求,请求的 URL 是 'http://example.com/blog',并希望获取 Performance 对象 const url = 'http://example.com/blog'; const options = { hostname: url, path: /performance, method: 'GET', };

      // 创建一个 http server,监听指定的端口 const server = http.createServer((req, res) => { // 如果请求是 GET 请求,那么使用性能 API 获取 Performance 对象 if (req.method === 'GET') { const startTime = performance.now(); const response = res.writeHead(200, { 'Content-Type': 'application/json' }); res.write(JSON.stringify(performance.getEntries({ url: url, name: 'My Performance' })); response.end(); const endTime = performance.now(); console.log(Request took ${endTime - startTime} ms.); } else { // 如果请求不是 GET 请求,那么返回 HTTP 404 错误 res.writeHead(404, { 'Content-Type': 'application/json' }); res.write(JSON.stringify({ error: 'Resource not found' })); res.end(); } });

      // 启动服务器 server.listen(3000, () => { console.log('Server is running on port 3000'); }); ```

      在这个示例中,我们首先获取服务器的连接,并监听指定的端口(在这个例子中是 3000)。然后,我们检查请求的 HTTP 方法(GET),如果是 GET 请求,我们使用性能 API performance.getEntries 来获取性能对象,该方法返回一个包含性能数据的 JSON 对象,包括资源的名称和相关的执行时间。最后,我们将获取到的性能数据写入 HTTP响应中,并打印出请求的执行时间。

      注意:这个示例使用了 Node.js 的内置 httphttps 库来处理 HTTP 请求,如果你使用的是其他类型的服务器(如 Express 或其他 Node.js 库),或者使用的是非 Node.js 的环境,如 Apache 或 IIS,你可能需要根据你的环境和服务器实现不同的代码。

    • 香煙ㄨ吥離手 普通会员 2楼

      当一个请求报404(Not Found)时,通常表示服务器无法找到或找到的资源,包括静态文件(如CSS、JavaScript、HTML、图片等),数据库中的数据,或者其他可以访问的资源。具体来说,当服务器无法找到指定的URL时,其响应通常包含以下信息:

      1. 404错误码:通常,服务器返回HTTP状态码 404,表示请求的资源未找到。这个错误码是根据HTTP协议设定的,通过URL的路径和端口来确定资源的位置。

      2. URL错误信息:在HTTP响应中,会包含服务器无法找到资源的详细错误信息,包括URL的完整路径,以及资源可能存在的文件夹、文件名或子目录的名称。例如,可能的错误信息如下:

      Not Found 404 http://example.com/blog /blog/css /blog/images /blog/js

      这个错误信息告诉客户端,请求的URL "http://example.com/blog" 没有找到对应的CSS、JavaScript、HTML和图片文件夹,而是在 "blog" 目录下。

      1. 页面内容:如果资源位于网站的某个特定页面,可能还会包含该页面的 HTML、CSS 和 JavaScript 代码,或者指向该页面的链接,包括反向代理或缓存的结果。这些内容也是客户端无法访问的,因为它们没有指向 URL 的地址。

      2. 请求时的环境和请求方法:例如,如果服务器使用的是 Node.js 或 Express 库来处理 HTTP 请求,那么请求方法(GET、POST、PUT、DELETE 等)和请求的 URL 是否匹配,也可能是造成 404 错误的原因。

      3. GET 请求:当使用 GET 方法访问一个不存在的资源时,服务器会返回 404 错误,因为客户端没有发送查询参数或 URL 中的查询字符串来指示资源的名称。

      4. POST 请求:如果资源位于服务器端的处理逻辑中,且该逻辑要求客户端发送包含资源名称的请求体,当客户端请求时,服务器会返回 404 错误,因为请求体中的资源名称不存在。
      5. PUT 请求:当资源位于服务器端的修改操作中,并且客户端在发送请求时提供了相应的 PUT 请求体,服务器将根据请求体中的资源名称来更新资源的目录结构或内容,当请求体中的资源名称不存在时,服务器将返回 404 错误。
      6. DELETE 请求:当资源位于服务器端的删除操作中,并且客户端在发送请求时提供了相应的 DELETE 请求体,服务器将根据请求体中的资源名称来删除对应的资源,当请求体中的资源名称不存在时,服务器将返回 404 错误。

      要获取到 404 错误对象(Performance),通常需要在服务器端的处理逻辑中处理请求,检查请求的 URL 是否正确,并根据 URL 中的资源名称来查找相应的资源和相关数据。以下是一个使用 Node.js 服务器处理 GET 请求并获取 Performance 对象的示例:

      ```javascript const http = require('http'); const https = require('https'); const performance = require('performance');

      // 假设我们在处理 GET 请求,请求的 URL 是 'http://example.com/blog',并希望获取 Performance 对象 const url = 'http://example.com/blog'; const options = { hostname: url, path: /performance, method: 'GET', };

      // 创建一个 http server,监听指定的端口 const server = http.createServer((req, res) => { // 如果请求是 GET 请求,那么使用性能 API 获取 Performance 对象 if (req.method === 'GET') { const startTime = performance.now(); const response = res.writeHead(200, { 'Content-Type': 'application/json' }); res.write(JSON.stringify(performance.getEntries({ url: url, name: 'My Performance' })); response.end(); const endTime = performance.now(); console.log(Request took ${endTime - startTime} ms.); } else { // 如果请求不是 GET 请求,那么返回 HTTP 404 错误 res.writeHead(404, { 'Content-Type': 'application/json' }); res.write(JSON.stringify({ error: 'Resource not found' })); res.end(); } });

      // 启动服务器 server.listen(3000, () => { console.log('Server is running on port 3000'); }); ```

      在这个示例中,我们首先获取服务器的连接,并监听指定的端口(在这个例子中是 3000)。然后,我们检查请求的 HTTP 方法(GET),如果是 GET 请求,我们使用性能 API performance.getEntries 来获取性能对象,该方法返回一个包含性能数据的 JSON 对象,包括资源的名称和相关的执行时间。最后,我们将获取到的性能数据写入 HTTP响应中,并打印出请求的执行时间。

      注意:这个示例使用了 Node.js 的内置 httphttps 库来处理 HTTP 请求,如果你使用的是其他类型的服务器(如 Express 或其他 Node.js 库),或者使用的是非 Node.js 的环境,如 Apache 或 IIS,你可能需要根据你的环境和服务器实现不同的代码。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部