203 Non-authoritative Information 该请求已成功完成,但是封闭的有效负载已由转换代理从原始服务器的200 OK响应中进行了修改。...4×× Client Error 400 Bad Request 由于某些东西被认为是客户端错误(例如,格式错误的请求语法,无效的请求消息框架或欺骗性的请求路由),服务器无法或不会处理该请求。...412 Precondition Failed 在服务器上测试时,请求标头字段中给出的一个或多个条件评估为false。...417 Expectation Failed 至少一台入站服务器无法满足请求的Expect标头字段1中给出的期望。...431 Request Header Fields Too Large 服务器不愿意处理该请求,因为其标头字段太大。减小请求头字段的大小后,可以重新提交请求。
客户端应该继续发送请求的剩余部分,或者,如果请求已经完成,则忽略此响应。服务器必须在请求完成后发送最终响应。 101交换协议 为响应来自客户端的升级请求标头而发送,并指示服务器正在切换到的协议。...服务器可以返回更新后的元信息。 205 重置内容 指示客户端重置发送此请求的文档。 206部分内容 当Range从客户端发送标头以仅请求资源的一部分时使用它。...4xx 状态码(客户端错误) 状态码 描述 400 错误请求 由于语法不正确,服务器无法理解该请求。客户端不应该在没有修改的情况下重复请求。 401未经授权 表示请求需要用户认证信息。...429 请求过多 用户在给定时间内发送了太多请求(“速率限制”)。 431 请求标头字段太大 服务器不愿意处理请求,因为它的头字段太大。...451 因法律原因不可用 用户代理请求的资源无法合法提供。 499 客户端关闭请求(Nginx) 当 HTTP 服务器正在处理其请求时,客户端关闭了连接,使服务器无法发回 HTTP 标头。
如果没有其他适用的错误, 或者不知道准确的错误或错误没有自己的错误代码,则发送 BadRequest。 Conflict 409 等效于 HTTP 状态 409。...Found 指示请求的信息位于 Location 标头中指定的 URI 处。 接收到此状态时的默认操作为遵循与响应关联的 Location 标头。...PreconditionFailed 指示一个条件设置为此请求失败,并且无法执行请求。 使用条件请求标头,如: If-match、 设置条件 If-None-匹配项,或如果-以未修改形式-自。...Redirect 指示请求的信息位于 Location 标头中指定的 URI 处。 接收到此状态时的默认操作为遵循与响应关联的 Location 标头。...RedirectKeepVerb 指示请求信息位于 Location 标头中指定的 URI 处。 接收到此状态时的默认操作为遵循与响应关联的 Location 标头。
2.2 判断请求是否成功 fetch()发出请求以后,有一个很重要的注意点:只有网络错误,或者无法连接时,fetch()才会报错,其他情况都不会报错,而是认为请求成功。...Headers.forEach():依次遍历标头,每个标头都会执行一次参数函数。 上面的有些方法可以修改标头,那是因为继承自 Headers 接口。...对于 HTTP 回应来说,修改标头意义不大,况且很多标头是只读的,浏览器不允许修改。 这些方法中,最常用的是response.headers.get(),用于读取某个标头的值。...注意,有些标头不能通过headers属性设置,比如Content-Length、Cookie、Host等等。它们是由浏览器自动生成,无法修改。...no-referrer:不发送Referer标头。 origin:Referer标头只包含域名,不包含完整的路径。
服务器还可以通知客户端是否应与请求一起发送凭据(例如 Cookies 和 HTTP 身份验证)。 注意:CORS 故障会导致错误,但是出于安全原因,该错误的详细信息不适用于 JavaScript。...所有代码都知道发生了错误。确定具体出问题的唯一方法是查看浏览器的控制台以获取详细信息。 访问控制 下面我会和大家探讨三种方案,这些方案都演示了跨域资源共享的工作方式。...当客户端在本地修改资源打算重新发送之前,第二个客户端可以获取相同的资源并对资源进行修改操作,这样就会造成问题。...当它们重新发送请求到服务器时,第一个客户端所做的修改将被第二次客户端的修改所覆盖,因为第二次客户端修改并不知道第一次客户端正在修改。...如果 Etag 与原始文件不匹配,或者自获取以来已对文件进行了修改,则更改为拒绝更新,并显示412 Precondition Failed错误。
100 的目的是允许正在发送带有请求正文的请求消息的客户端确定源服务器是否愿意接受请求(基于请求标头)在客户端发送请求正文之前。...响应返回的信息取决于请求中使用的方法 GET 在响应中发送与请求的资源相对应的实体; HEAD 与请求的资源相对应的实体头字段在响应中发送,不带任何消息正文; POST 描述或包含行动结果的实体; TRACE...---- 400 Bad Request (错误的请求) 由于语法格式错误,服务器无法理解该请求。客户不应在没有修改的情况下重复请求。...---- 417 Expectation Failed 此服务器无法满足在Expect请求标头字段(请参阅第14.20节)中给出的期望,或者,如果该服务器是代理服务器,则该服务器有明确的证据表明下一跳服务器无法满足该请求...---- Server Error 5xx (服务端错误) 以数字“ 5”开头的响应状态代码表示服务器知道服务器已出错或无法执行请求的情况。
即便是有了客户端示意扩展,也依然无法获取关于浏览器能力的全部信息。与客户端进行选择的代理驱动型内容协商机制不同,服务器端的选择总是显得有点武断。...由于基于配置信息的信息熵的增加,修改后的值可以用作识别用户的指纹,所以不建议对其进行修改,不过这样的话 Web 站点也就不能依赖该值来揭示用户的真实期望。...大多数用户代理会为 Accept-Language 标头提供一个默认值,该值采用的是用户界面的显示的语言。通常终端用户不能对其进行修改,或者是不知道该怎么修改,或者在他们计算机的环境中无法进行修改。...Vary 响应标头 与前面列举的 Accept-* 形式的由客户端发送的标头相反,Vary 标头是由服务器在响应中发送的。它指示了服务器在服务端驱动型内容协商阶段所使用的标头清单。...在标头很少的时候,这并不是问题,但是随着数量的增多,消息的体积会导致性能的下降。带有精确信息的标头发送的越多,信息熵就会越大,也就准许了更多 HTTP 指纹识别行为,以及与此相关的隐私问题的发生。
index.html HTTP/1.1 Host: www.example.com Connection: upgrade Upgrade: example/1, foo/2 根据之前的请求的协议,可能需要其他标头信息...,例如:从 HTTP/1.1 升级到 WebSocket 允许配置有关 WebSocket 连接的标头详细信息,以及在连接时提供一定程度的安全性。...如果服务器没有(或者不能)升级这次连接,它会忽略客户端发送的 Upgrade 标头字段,返回一个常规的响应:例如一个 200 OK)....如果客户端愿意,则添加它,服务器将在响应中包含一个自己的密钥,客户端将在向你发送升级响应之前验证该密钥。 服务器响应的 Sec-WebSocket-Accept 标头将基于指定的 key 计算的值。...响应标头 如果服务器无法使用指定版本的 Websocket 协议进行通信,它将响应一个错误(例如 426 Upgrade Required),该错误在它的标头中包含一个 Sec-WebSocket-Version
HTTP标头使客户端和服务器可以通过HTTP请求或响应传递其他信息。HTTP标头由不区分大小写的名称,后跟冒号(:)和值组成。 值之前的空格将被忽略。...IANA还维护建议的新HTTP标头的注册表。 标题可以根据其上下文进行分组: 常规标头适用于请求和响应,但与正文中传输的数据无关。 请求标头包含有关要获取的资源或有关请求资源的客户端的更多信息。...响应标头包含有关响应的其他信息,例如响应的位置或提供响应的服务器。 实体标头包含有关资源主体的信息,例如其内容长度或MIME类型。...端到端头 这些标头必须发送给消息的最终接收者:请求的服务器,或响应的客户端。中间代理必须重新传输未经修改的标头,并且缓存必须存储它们。...如果指定了升级头字段,那么发送者还必须发送带有指定升级选项的连接头字段。有关Connection标头字段的详细信息,请参见上述RFC的6.1节。
滥用标头修改功能 对于反向代理服务器来说,增添,删除和修改后端请求中的标头是一项基本功能。有些情况在,这比修改后端本身简单的多。有时,反向代理会添加一些重要的安全标头。...作为攻击者的我们,想要利用这些规则来使反向代理服务器做出错误的响应(通过滥用后端位置标头),从而攻击其他用户。 假如我们使用Nginx作为代理,Tomcat作为后端。...Tomcat默认设置了X-Frame-Options: deny标头,所以浏览器无法将其嵌入frame中。...Cache-control标头滥用是允许反向代理储存响应。 大量的web服务器,应用服务器和框架自动且正确地设置Cache-control标头。...在一种情况下(后端严格限制,完全不允许缓存),管理员没有修改后端,而是修改反向代理规则,修改严格的Cache-control标头从而开启了缓存响应。这时,管理员一般都会错误设置。
使用 Content-Security-Policy-Report-Only 标头监控网站上的混合内容错误。...您可以通过在服务器发送的响应中添加 Content-Security-Policy 或 Content-Security-Policy-Report-Only 标头为页面启用这些功能。...如需了解 CSP 标头格式的详细信息,请参阅内容安全政策规范。 如果您不想亲自配置报告端点,https://report-uri.io/ 是一个合理的替代做法。...页面可以选择执行此行为,方法是发送一个带有该指令的 Content-Security-Policy 标头: Content-Security-Policy: block-all-mixed-content...CSP 替代方案 如果您的网站由某个平台(如 Blogger)代为托管,那么,您可能没有相应权限来修改标头和添加 CSP。
HTTP 通用标头主要用于传达有关消息本身的信息,而不是它所携带的内容。它们提供一般信息并控制如何处理和处理消息。...即使客户端和服务器都能够支持相同的压缩算法,服务器也可能选择不压缩并返回,这种情况可能是由于这两种情况造成的: 要发送的数据已经被压缩了一次,第二次压缩并不会导致发送的数据更小 服务器过载,无法承受压缩带来的性能开销...请求标头 Authorization 是用来告知服务器,用户的认证信息,服务器在只有收到认证后才会返回给客户端 200 OK 的响应,如果没有认证信息,则会返回 401 并告知客户端需要认证信息。...响应首部字段是由服务器发送给客户端响应中所包含的字段,用于补充相应信息等,这部分标头也是非常多,我们先一起来看一下 Accept-Ranges Age ETag Location Proxy-Authenticate...Retry-After 告知客户端需要在多久之后重新发送请求,使用此标头主要有如下三种情况 当发送 503(服务不可用)响应时,这表示该服务预计无法使用多长时间。
简而言之,你需要能够修改 Host 标头,并且你的请求能够到达目标应用程序。如果是这样,则可以使用此标头来探测应用程序,并观察其对响应的影响。...例如,你可能会发现 Host 头在没有 HTML 编码的情况下反映在响应标记中,甚至直接用于脚本导入。反射的客户端漏洞(例如 XSS )由 Host 标头引起时通常无法利用。...但是,这些网站的访问控制可能会做出错误的假设,允许你通过对 Host 头进行简单的修改来绕过这些限制。这会成为其他攻击的切入点。...通过格式错误的请求行进行 SSRF 自定义代理有时无法正确地验证请求行,这可能会使你提供异常的、格式错误的输入,从而带来不幸的结果。...,但是这个请求被修改了 Host 头,以指向他们控制的域。
CORS 请求失败会产生错误,但是为了安全,在 JavaScript 代码层面无法获知到底具体是哪里出了问题。你只能查看浏览器的控制台以得知具体是哪里出现了错误。...一般而言,对于跨源 XMLHttpRequest 或 Fetch 请求,浏览器不会发送身份凭证信息。...如果要发送凭证信息,需要设置 XMLHttpRequest 对象的某个特殊标志位,或在构造 Request 对象时设置。...另外,响应标头中也携带了 Set-Cookie 字段,尝试对 Cookie 进行修改。如果操作失败,将会抛出异常。...它不包含任何路径信息,只是服务器名称。 备注: origin 的值可以为 null。 注意,在所有访问控制请求中,Origin标头字段总是被发送。
2.客户端缓存验证 当您知道请求的资源在给定的时间内不会更改时,服务器可以将此类信息作为响应标头发送到客户端。基于该信息,客户端决定是否应该再次获取资源或重用先前下载的资源。...如果资源未更改,则服务器不必再次重新发送数据。相反,它使用304 HTTP代码响应,没有任何有效负载。 要公开资源的修改日期,您应该设置Last-Modified标头。...客户端根据Last-Modified标头的值设置其值,该标头是与此特定资源的先前响应一起发送的。...然后,我们将日期与If-Modified-Since标头的值进行比较,并在正匹配上返回一个空。否则,服务器发送具有Last-Modified标头的适当值的完整响应主体。...当您不跟踪资源的修改日期时,您也被迫使用ETag。服务器可以根据资源的属性计算其值。将其视为对象的哈希码。 如果资源具有其修改日期并且您可以使用一秒精度,请使用Last-Modified标头。为什么?
本文是对跨域资源共享的一般讨论,并包括对必要的HTTP标头的讨论。 功能概述部分 跨域资源共享标准的工作原理是添加新的HTTP标头,这些标头允许服务器描述允许哪些来源从Web浏览器读取该信息。...CORS故障会导致错误,但是出于安全原因,该错误的详细信息不适用于JavaScript。所有代码都知道发生了错误。确定具体出问题的唯一方法是查看浏览器的控制台以获取详细信息。...没有记录WebKit / Safari认为“非标准”的值,以下WebKit错误除外: 需要对非标准CORS安全列出的请求标头进行飞行前检查接受,接受语言和内容语言 对于简单的CORS,在Accept,Accept-Language...但是,如果请求是由于请求中存在Authorization标头而触发预检的请求,则无法使用上述步骤解决限制。除非您可以控制请求的服务器,否则您将根本无法解决它。...它不包括任何路径信息,而仅包括服务器名称。 注:该origin值可以是null或URI。 请注意,在任何访问控制请求中,始终发送Origin标头。
一个可选的 HTTP 标头集合指明请求或描述消息主体(body)。 一个空行指示所有关于请求的元数据已经发送完毕。 一个可选的包含请求相关数据的主体(比如 HTML 表单内容),或者响应相关的文档。...(例如 If-None)来修改请求。...该类型的主体由两个标头定义:Content-Type 和 Content-Length。 多资源(Multiple-resource)主体,由多部分主体组成,每一部分包含不同的信息位。...响应标头(Response header),例如 Vary 和 Accept-Ranges,提供有关服务器的其他信息,这些信息不适合状态行。...HTTP/2 帧 HTTP/1.x 消息有一些性能上的缺点: 与主体不同,标头不会被压缩。 两个消息之间的标头通常非常相似,但它们仍然在连接中重复传输。 无法多路复用。
如果请求被允许,则响应包含请求的信息。否则,响应仅包含指示 CORS 不允许请求的标头。启用 REST 服务以支持 CORS 的概述默认情况下,REST 服务不允许 CORS 标头。...重要提示:默认 CORS 标头处理不适用于处理机密数据的 REST 服务。接受 CORS 标头要指定 REST 服务接受 CORS 标头:修改规范类以包含 HandleCorsRequest 参数。...此请求始终未经身份验证发送,并由 CSPSystem 用户执行。此用户应具有 REST 服务使用的任何数据库的 READ 权限;如果没有,服务将响应 HTTP 404 错误。...修改规范类并重新编译,重新生成调度类。最终结果是调度类从自定义类而不是从 %CSP.REST 继承,因此使用对 OnHandleCorsRequest() 的定义,它覆盖了默认的 CORS 标头处理。...本节说明此方法如何处理源、凭据、标头和请求方法并提出变体建议。可以使用此信息来编写 OnHandleCorsRequest() 方法。以下代码获取源并使用它来设置响应标头。
领取专属 10元无门槛券
手把手带您无忧上云