如何在 https 网页中强行加载 http 内容和 HTTP STATUS 的总结

解决 Chrome 中 https 默认无法加载 http 内容,影响开发调试的问题。详细介绍 HTTP STATUS。

通过隐私设置修改

Secure sites might embed content like images or web frames that aren't secure Insecure content is blocked by default on secure sites

如何在 https 网页中强行加载 http 内容?

浏览器地址输入 chrome://settings/content/insecureContent,然后回车。
在 Allowed to show insecure content 允许显示不安全内容,点击添加按钮,添加你想要允许加载 http 内容的网站。

要注意一下,如果需要在 https://example.com 中显示 http://example.com 那么应该添加的是 https://example.com ,而不是 http://example.com

1xx - Informational

HTTP 1xx 状态码是信息响应类状态码,它们表示请求已被接受并处于处理中,但通常不需要进一步的操作。以下是 1xx 状态码的详细解释和实际应用例子:

100 Continue

  • 解释

    • 客户端应当继续发送请求的其余部分,或者如果请求已完成,忽略这个响应。服务器发送这个状态码来通知客户端它已接收到请求的初始部分,并已被服务器正确解析。
  • 实际应用例子

    • 当一个客户端发送一个包含大数据的 POST 请求时,它可以先发送一个只包含头信息的请求,并在头信息中包含一个Expect: 100-continue。这告诉服务器客户端有一个请求正准备发送,但在收到服务器确认可以继续之前不会发送。如果服务器回应一个100 Continue状态码,那么客户端会继续发送请求体,否则客户端可能只发送一个简化版本的请求或放弃发送请求。

101 Switching Protocols

  • 解释

    • 请求者已要求服务器根据 Upgrade 消息头切换协议,服务器已确认并准备切换。
  • 实际应用例子

    • 当要建立一个 WebSocket 连接时,客户端会发送一个标准的 HTTP 请求,其中包括Upgrade: websocket头,表示客户端希望使用 WebSocket 协议进行通信。如果服务器支持 WebSocket 并愿意切换协议,它会响应一个101 Switching Protocols状态码,此后连接就切换为 WebSocket 协议。

102 Processing (WebDAV)

  • 解释

    • 服务器已接收到请求,并正在处理中,但没有响应可用。此状态码主要用于 WebDAV 协议。
  • 实际应用例子

    • 在使用 WebDAV 提交涉及多文件的复杂操作时,该操作可能需要较长时间才能完全处理。为了防止客户端认为请求已超时,服务器可以先返回一个102 Processing状态码,以告知客户端请求已被接受并正在处理,但尚未完成。

这些 1xx 状态码较少用于日常的 Web 开发工作,但在特定的应用场景中它们是很有用的。希望这些例子能帮助您更好地理解这些状态码的实际应用。

2xx - Successful

2xx 状态码表示请求已被成功接收、理解和接受。以下是这类状态码的详细介绍和实际应用例子:

200 OK

  • 解释

    • 请求已成功,请求所希望的响应头或数据体将随此响应返回。
  • 实际应用例子

    • 当你浏览一个网页或查询一个 API 并成功获得结果时,服务器通常返回一个200 OK状态码。

201 Created

  • 解释

    • 请求已被实现,并且有一个新的资源已经依据请求的需要而建立,且其 URI 已经随 Location 头信息返回。
  • 实际应用例子

    • 当你在一个 API 上发送一个 POST 请求以创建一个新的记录,如新的用户或新的博客文章时,服务器在成功创建资源后返回201 Created状态码。

202 Accepted

  • 解释

    • 服务器已接受请求,但尚未处理。实际的请求结果可能还会有异议。此代码只是表示请求已被服务器接收,但并没有处理。
  • 实际应用例子

    • 用于异步操作。例如,当你提交一个需要长时间处理的任务(如大型文件的上传或长时间的数据处理)时,服务器可以立即返回202 Accepted状态码,表示已接收请求但任务仍在后台处理。

203 Non-Authoritative Information

  • 解释

    • 服务器已成功处理了请求,但返回的信息可能来自另一来源。
  • 实际应用例子

    • 如果服务器提供的响应来自缓存或来自另一个服务器的信息,而不是原始服务器,则可能返回此状态码。

204 No Content

  • 解释

    • 服务器成功处理了请求,但没有返回任何内容。
  • 实际应用例子

    • 当你发送一个 DELETE 请求来删除一个资源,服务器可能会在成功删除后返回一个204 No Content状态码,表示请求成功,但没有额外的信息要返回。

205 Reset Content

  • 解释

    • 服务器成功处理了请求,但没有返回任何内容。与 204 响应不同,此响应要求请求者重置文档视图。
  • 实际应用例子

    • 在某些特定的浏览器行为中,如一个重置按钮成功触发后,服务器可能返回205 Reset Content来告诉浏览器重置视图。

206 Partial Content

  • 解释

    • 服务器已经成功处理了部分 GET 请求。
  • 实际应用例子

    • 当客户端执行断点续传或部分资源请求时,例如在视频流中请求特定的时间段,或在下载大文件时从中断的地方恢复下载,服务器可以返回206 Partial Content状态码和请求的部分数据。

这些 2xx 状态码表示请求在服务器端已被成功处理。当开发或与 APIs 交互时,这些状态码是最常见的正面响应。

具体 206 例子

It sounds like you're referring to the Range header in HTTP requests. The Range request header is used to request a part of a larger resource, typically for the purpose of resuming interrupted downloads or splitting a download into multiple simultaneous streams.

Here's how the header might look:

makefile
1Range: bytes=0-499

This header requests the first 500 bytes of a document.

The server will respond with a status code of 206 Partial Content if it supports range requests and the range specified is valid. The response will also include a Content-Range header, for example:

css
1content-range: bytes 0-499/1234;

This response header indicates that the server is sending bytes 0 through 499 of a document that is 1234 bytes in total.

There are different ways to specify the range:

  1. Single part ranges:

    makefile
    1Range: bytes=0-499

    This requests the bytes from 0 to 499.

  2. Multiple part ranges:

    makefile
    1Range: bytes=0-499,1000-1499

    This requests the bytes from 0 to 499 and from 1000 to 1499.

  3. Open-ended ranges:

    makefile
    1Range: bytes=500-

    This requests all bytes from 500 to the end of the document.

  4. Suffix ranges:

    makefile
    1Range: bytes=-500

    This requests the last 500 bytes of the document.

Note that not all servers support range requests. If a server doesn't support range requests, it will simply return the full resource with a 200 OK status code instead of a 206 Partial Content.

The ability to request a specific range of a document is especially useful for resuming interrupted downloads or for streaming media where you might want to jump to a particular part of a video or audio file.

207 Multi-Status (WebDAV)

  • 解释:表示多个状态码的响应。这通常用于 WebDAV 请求,其中多个操作可能会导致多个成功或错误状态。
  • 实际应用例子:用户请求一个 WebDAV 应用中的多个文件进行操作。服务器可能会成功处理某些文件,但其他文件可能失败。207 Multi-Status响应中会包含每个文件的状态。

208 Already Reported (WebDAV)

  • 解释:结果已在前面的部分中给出,因此不会再次提供。
  • 实际应用例子:在 WebDAV 的集合同步操作中,如果一个项目的成员在先前已经列出,它就不会再次被列出。

226 IM Used

  • 解释:服务器已完成了对资源的 GET 请求,并响应是对当前实例应用的结果。
  • 实际应用例子:该状态码是为了被 HTTP Delta 编码扩展所定义的,这是一个表示页面内容更改的方法。

3xx - Redirection

这些都是浏览器行为,具体可以看下 https://stackoverflow.com/questions/282429/returning-redirect-as-response-to-ajax-fetch-xhr-etc-request/2573589#2573589 这个问题,ajax request 甚至不能获取到 302 状态码。

3xx状态码类别是关于重定向的。它告诉客户端必须采取进一步的操作才能完成请求。以下是 3xx 状态码的详细解释及实际应用例子:

300 Multiple Choices

  • 解释:请求的目标有多种选择,无法直接跳转到一个特定的资源。用户或用户代理可以选择一个最合适的。
  • 实际应用例子:请求一个资源 URI,该 URI 在服务器上对应多种表示形式(例如,不同的语言或格式)。服务器返回 300 状态,提供一个选择列表,用户可以选择其希望的表示。

301 Moved Permanently

  • 解释:请求的 URL 已被移除,并被永久性地转移到另一个位置。新的 URL 应在响应中给出,并且应使用新的 URL 重发请求。
  • 实际应用例子:一个网站从 http://example-old.com迁移到http://example-new.com,任何旧的 URL 请求都会收到301 响应,并指向新的 URL。

302 Found

  • 解释:请求的资源暂时移动到新的 URL,但未来可能会返回。因此,客户端应继续使用原始 URL。
  • 实际应用例子:一个电子商务网站在特定促销活动期间可能会重定向用户到特定的促销页面,但活动结束后原始 URL 可能仍然有效。

303 See Other

  • 解释:对于需要 GET 请求的响应,查看其他位置。新的 URL 应在响应中给出。
  • 实际应用例子:在 Web 应用中,用户完成一个表单并点击提交(通常是 POST 请求)。为防止表单重复提交,服务器可能会发送一个303 See Other响应,并重定向到一个新的页面,例如“Thank You”页面。

304 Not Modified

  • 解释:资源未修改,因此客户端可以继续使用其缓存版本。这常用于浏览器缓存机制。
  • 实际应用例子:一个客户端已经下载了一个网页的资源(例如 CSS 文件),并在再次请求时发送 If-Modified-Since 头。如果资源自那时起没有更改,服务器会回应304 Not Modified,告诉浏览器可以继续使用缓存的文件。

305 Use Proxy

  • 解释:为了访问请求的资源,必须通过代理。代理的位置由 Location 字段定义。
  • 实际应用例子:此状态码在实际应用中较少使用,但在需要特定代理访问的内部网络中可能会遇到。

306 Unused

  • 解释:以前用于指示后续请求应使用指定的代理。现在已被弃用。
  • 实际应用例子:不再使用。

307 Temporary Redirect

  • 解释:请求的资源暂时移动到新的 URL。与 302 类似,但保证请求方法和主体不会更改。
  • 实际应用例子:在 Web 应用程序中,可能会暂时将用户重定向到另一个页面,但需要保证 HTTP 方法不变,例如在 PUT 或 POST 操作中。

308 Permanent Redirect

  • 解释:与 301 类似,表示资源已被永久性地转移到其他位置,但保证请求方法和主体不会更改。
  • 实际应用例子:如果有一个 API 终端点从一个旧的 URL 永久地移动到一个新的 URL,并且希望确保 HTTP 方法(如 POST)在重定向时保持不变,那么可以使用308 Permanent Redirect

这些 3xx 状态码都是关于重定向的,当进行网站迁移、页面重构或其他需要更改 URL 的操作时,通常会使用它们。

4xx - Client errors

4xx状态码类别是关于客户端错误的。这些状态码表示请求包含错误语法或不能完成。以下是 4xx 状态码的详细解释及实际应用例子:

400 Bad Request

  • 解释:请求包含错误的语法或无法完成。
  • 实际应用例子:客户端发送一个带有无效 JSON 格式的 POST 请求。服务器无法解析这个 JSON,因此返回400 Bad Request

401 Unauthorized

  • 解释:客户端需要身份验证才能获取响应。与 403 相反,身份验证并没有帮助。
  • 实际应用例子:用户尝试访问需要登录才能查看的资源,而用户未登录或提供无效的凭据,服务器返回401 Unauthorized

402 Payment Required

  • 解释:此状态码保留用于未来使用,目前没有标准使用方式。
  • 实际应用例子:未被广泛采用。

403 Forbidden

  • 解释:客户端没有访问权限。与 401 不同,身份验证是不可能的或不会有帮助。
  • 实际应用例子:已登录的用户尝试访问他没有权限的资源。服务器返回403 Forbidden

404 Not Found

  • 解释:服务器无法找到所请求的资源。未必要告诉客户端此资源是否存在。
  • 实际应用例子:用户尝试访问一个不存在的网页 URL,服务器返回404 Not Found

405 Method Not Allowed

  • 解释:请求方法(如 GET、POST、PUT 等)对于所请求的资源是不被允许的。
  • 实际应用例子:一个 API 终端点可能只接受 GET 请求。如果用户发送了一个 POST 请求,服务器可能会返回405 Method Not Allowed

406 Not Acceptable

  • 解释:服务器无法为请求提供满足"Accept"头字段要求的响应。
  • 实际应用例子:客户端请求 JSON 格式的数据,但服务器只能提供 XML 格式,因此返回406 Not Acceptable

407 Proxy Authentication Required

  • 解释:与 401 类似,但表示客户端必须通过代理进行身份验证。
  • 实际应用例子:在需要身份验证的代理后面的客户端尝试发出请求,代理返回407 Proxy Authentication Required

408 Request Timeout

  • 解释:服务器等待客户端发送的请求时间过长。
  • 实际应用例子:用户开始一个请求但过久才完成它,如提交一个大型表单但网络很慢,服务器因等待太久返回408 Request Timeout

409 Conflict

  • 解释:请求与服务器上的资源当前状态冲突。
  • 实际应用例子:两个用户尝试同时修改同一资源,如同一文档。其中一个首先保存更改,当第二个用户尝试保存时,服务器返回409 Conflict

410 Gone

  • 解释:资源不再可用,并且将来也不会再有。
  • 实际应用例子:一个过时的 API 版本不再受支持,请求这个 API 时,服务器返回410 Gone

411 Length Required

  • 解释:服务器需要请求的 Content-Length 头字段。
  • 实际应用例子:客户端发送一个没有定义 Content-Length 头的 POST 请求,服务器返回411 Length Required

412 Precondition Failed

  • 解释:服务器未满足请求头字段中给定的前提条件之一。
  • 实际应用例子:客户端使用 If-Match 头发送请求,但服务器的资源的 ETag 与该值不匹配,返回412 Precondition Failed

413 Payload Too Large

  • 解释:请求体过大,服务器无法处理。
  • 实际应用例子:用户尝试上传一个超出大小限制的文件,服务器返回413 Payload Too Large

414 URI Too Long

  • 解释:请求的 URI 过长,服务器无法处理。
  • 实际应用例子:客户端发出一个带有异常长的查询参数的 GET 请求,服务器返回414 URI Too Long

415 Unsupported Media Type

  • 解释:请求的格式不受支持。
  • 实际应用例子:客户端尝试上传一个不受支持的文件格式,如 .exe,服务器返回415 Unsupported Media Type

416 Range Not Satisfiable

  • 解释:如果请求的范围无法满足,则服务器应当返回此响应代码。
  • 实际应用例子:客户端请求一个文件的一个范围,但该范围超出文件的大小,服务器返回416 Range Not Satisfiable

417 Expectation Failed

  • 解释:服务器不能满足客户端的 Expect 请求头字段的期望值。
  • 实际应用例子:客户端发送一个带有Expect: 100-continue头的请求,但服务器不支持这个特性并返回417 Expectation Failed

418 I'm a teapot (RFC 2324)

  • 解释:这是作为 1998 年愚人节玩笑发布的 HTCPCP/1.0 规范的一部分,不应当在实际应用中使用。
  • 实际应用例子:非实际应用,只是一个玩笑。

421 Misdirected Request

  • 解释:请求针对的是无法产生响应的服务器。可能由于服务器的配置导致,不能被此客户端用于此请求的连接复用。
  • 实际应用例子:使用 HTTP/2 的客户端连接到了不支持它的服务器,服务器返回421 Misdirected Request

422 Unprocessable Entity (WebDAV)

  • 解释:请求格式正确,但服务器无法处理它的语义。
  • 实际应用例子:在 RESTful API 中,客户端上传一个语义上无效的 JSON 对象,服务器返回422 Unprocessable Entity

423 Locked (WebDAV)

  • 解释:资源被锁定,因此请求失败。
  • 实际应用例子:用户尝试编辑正在被另一用户编辑的文档,服务器返回423 Locked

424 Failed Dependency (WebDAV)

  • 解释:由于先前的请求失败,所以此请求失败。
  • 实际应用例子:客户端尝试执行一个基于另一个操作的操作,但第一个操作失败,导致服务器返回424 Failed Dependency

425 Too Early

  • 解释:服务器不愿意冒着再次进行可能有害的请求的风险,因此拒绝了这个请求。
  • 实际应用例子:非常规使用,是 HTTP/3 的新状态码。

426 Upgrade Required

  • 解释:客户端应当切换到其他协议,如 TLS/1.0。
  • 实际应用例子:客户端连接到一个需要更高版本 TLS 的服务器,服务器返回426 Upgrade Required

428 Precondition Required

  • 解释:服务器要求请求是条件的,通常是为了防止“丢失更新”问题。
  • 实际应用例子:一个 API 要求使用 If-Match 头进行并发控制,如果客户端没有提供此头,则服务器返回428 Precondition Required

429 Too Many Requests

  • 解释:用户在给定的时间内发送了太多的请求。
  • 实际应用例子:一个 API 有频率限制,例如每分钟 100 个请求。如果客户端超过这个限制,服务器返回429 Too Many Requests

431 Request Header Fields Too Large

  • 解释:请求头太大,服务器不愿处理。
  • 实际应用例子:客户端发送一个带有大量自定义头或非常长的 cookie 值的请求,服务器返回431 Request Header Fields Too Large

451 Unavailable For Legal Reasons

  • 解释:由于法律原因,服务器不能或不会处理请求。
  • 实际应用例子:在某些国家或地区,特定内容可能因为法律或法规被封锁,访问这些内容时,服务器返回451 Unavailable For Legal Reasons

4xx 状态码表示客户端应当能够修正请求并再次尝试。

5xx - Server errors

5xx状态码表示服务器错误。当服务器意识到它不能完成一个请求时,这类状态码就会出现。通常,问题不在于请求本身,而是在于处理请求时服务器出了问题。以下是 5xx 状态码的详细解释及实际应用例子:

500 Internal Server Error

  • 解释:服务器遇到了一个未知的错误,导致无法完成请求。
  • 实际应用例子:代码中的运行时异常,如数据库连接失败、空指针异常等,可能导致返回500 Internal Server Error

501 Not Implemented

  • 解释:服务器不支持当前请求方法,或者服务器没有能力满足请求。
  • 实际应用例子:客户端请求一个服务器尚未实现的 HTTP 方法,如 TRACE,服务器返回501 Not Implemented

502 Bad Gateway

  • 解释:服务器作为网关或代理,从上游服务器收到无效的响应。
  • 实际应用例子:一个反向代理服务器尝试获取数据,但从上游服务器接收到无效响应,返回502 Bad Gateway

503 Service Unavailable

  • 解释:服务器目前无法使用(由于超载或停机维护)。
  • 实际应用例子:网站由于维护或流量过大暂时无法访问,服务器返回503 Service Unavailable

504 Gateway Timeout

  • 解释:服务器作为网关或代理,但是没有及时从上游服务器或其他辅助服务器收到请求。
  • 实际应用例子:在反向代理设置中,代理尝试从上游服务器获取响应,但等待时间过长导致超时,返回504 Gateway Timeout

505 HTTP Version Not Supported

  • 解释:服务器不支持请求中所用的 HTTP 协议版本。
  • 实际应用例子:客户端发送了一个 HTTP/2 的请求到一个只支持 HTTP/1.1 的服务器,服务器返回505 HTTP Version Not Supported

506 Variant Also Negotiates

  • 解释:服务器存在内部配置错误,导致它无法完成请求。
  • 实际应用例子:这是一个与内容协商有关的错误,但实际应用非常少见。

507 Insufficient Storage (WebDAV)

  • 解释:服务器无法在请求处理过程中保存完成的响应的任何部分。
  • 实际应用例子:使用 WebDAV,用户尝试上传一个大文件,但服务器磁盘空间不足,返回507 Insufficient Storage

508 Loop Detected (WebDAV)

  • 解释:服务器在处理请求时检测到无限循环。
  • 实际应用例子:WebDAV 请求导致无限循环,例如,一个资源重定向到自身,返回508 Loop Detected

510 Not Extended

  • 解释:进一步的扩展请求的必要信息没有被提供或在请求中没有被找到。
  • 实际应用例子:客户端发送了一个需要额外信息的请求,但未提供,返回510 Not Extended

511 Network Authentication Required

  • 解释:客户端需要进行网络级别的身份验证。
  • 实际应用例子:用户试图访问一个需要网络验证的网络,例如 Wi-Fi 热点登录,服务器返回511 Network Authentication Required

通常,5xx 错误表明是服务器端的问题,而不是客户端的问题。当出现这些错误时,服务器管理员需要调查并解决问题的根本原因。