首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用结构化的字段改善HTTP

Nottingham 译 / 孟舒贤 审校 / 蒋默邱泽 原文 / https://www.fastly.com/blog/improve-http-structured-headers ●HTTP有什么问题...● 大多数Web开发人员都熟悉HTTP;如Content-Length、Cache-Control和Cookie之类。...因为需要由许多不同的客户端和服务器,代理服务和CDN处理(通常在消息的生存期内不止一次),所以大家希望它们易于处理,高效解析并且定义明确句法。...这允许新字段的作者根据这些类型定义它。例如,他们可以说“这是一个字符串列表”,人们将知道如何使用一个现成的库来明确地解析和生成,而不是编写特定于的代码。...,许多Cache-Control报头都是有效的“结构化字段”,即使它没有定义为一个: Cache-Control: max-age=3600, immutable 很不幸你还不能将结构化字段用于现有的

62710

C# HTTP系列5 HttpWebResponse.StatusCode属性

接收到此状态时的默认操作为遵循与响应关联的 Location 。 原始请求方法为 POST 时, 重定向的请求将使用 GET 方法。 移动是的同义词MovedPermanently。...使用条件请求,如: If-match、 设置条件 If-None-匹配项,或如果-以未修改形式-自。...原始请求方法为 POST 时,重定向的请求将使用 GET 方法。 重定向是的同义词找到。 RedirectKeepVerb 307 等效于 HTTP 状态 307。...作为 POST 的结果,SeeOther 将客户端自动重定向到 Location 头中指定的 URI。 用 GET 生成对 Location 所指定的资源的请求。...接收到此状态时的默认操作为遵循与响应关联的 Location 。 原始请求方法为 POST 时,重定向的请求还将使用 POST 方法。

2.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

HTTP响应状态码:除了404,还有啥?

· 203 - Non-Authoritative Information 文档已经正常地返回,但一些应答可能不正确,因为使用的是文档的拷贝,非权威性信息。...严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。...由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定向。...应答中会包含一个WWW-Authenticate,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization后再次发出请求。...· 411 - Length Required (需要有效长度) 服务器不会接受包含无效内容长度字段的请求,除非客户发送一个Content-Length

2K20

手给 Safari 提了一个Bug,让我意外收获了这些新知识

这里还发现了一个有意思的细节:Safari 在发起重定向请求时,虽然没有带上 Authorization 请求,但是会带上 cookie,这也说明了为什么在改造为 JWT 之前,Safari 能正常使用的原因...然后我又在 Chrome 中进行了相同的测试,发现 Chrome 在发起重定向请求时,会携带 Authorization 请求,所以能够正常使用。...,通过 Proxyman 将请求的响应码改为 308 后,发现 Safari 依旧不会携带 Authorization 请求。...不过统一处理也存在一些不合理的场景,比如使用 Node.js 做 HTTP 代理服务时,转发后的请求都自动变为小写了,那么会导致下层服务获取不到原始的请求字段,这样会在传输的过程中破坏原始数据[参考...XMLHttpRequest 用 XMLHttpRequest 写了一个 Demo,发现浏览器也是会自动对重定向做出处理,打印的是重定向后最终的状态码,值为 200,并不会打印 307,并且会获取到重定向后的返回值

1.3K20

知识分享之规范——HTTP 状态码

103 早期提示 主要用于与Link一起使用。它建议用户代理在服务器准备最终响应时开始预加载资源。 2xx 状态码 [成功] 状态码 描述 200 好 表示请求成功。...此响应仅在由Cache-ControlorExpires字段指示时才可缓存。 303 查看其他 响应可以在不同的 URI 下找到,并且应该在该资源上使用 GET 方法检索。...307临时重定向 指示客户端使用先前请求中使用的相同方法从另一个 URI 获取请求的资源。它与302 Found之前请求中使用的相同 HTTP 方法类似,但有一个例外。...308 永久重定向(实验性) 指示资源现在永久位于由Location指定的另一个 URI。它与301 Moved Permanently之前请求中使用的相同 HTTP 方法类似,但有一个例外。...客户端可以使用合适的 Authorization 域重复请求 402 需要付款(实验性) 保留供将来使用。它旨在用于数字支付系统。 403 禁止 未经授权的请求。客户端没有内容的访问权限。

1.7K30

HTTP1.1协议状态码

服务器必须使用101(交换协议)响应中的Upgrade字段来指示正在交换的协议。...否则(即,条件GET使用弱验证器),响应中不得包含其他实体;这样可以避免缓存的实体与更新的之间的不一致。...---- 307 Temporary Redirect (临时重定向) 所请求的资源临时位于其他URI下。由于重定向有时可能会改变,所以客户端应该继续使用Request-URI来处理以后的请求。...如果响应GET或HEAD以外的请求而收到307状态码,则用户代理不得自动重定向请求,除非用户可以确认,因为这可能会更改发出请求的条件。...响应必须包括一个WWW-Authenticate域(第14.47节),该域包含适用于所请求资源的质询。客户端可以使用合适的Authorization字段重复请求(第14.8节))。

2.6K40

网站状态码大全

203  Non-Authoritative Information 文档已经正常地返回,但一些应答可能不正确,因为使用的是文档的拷贝(HTTP 1.1新)。...严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。...由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只 能跟随对GET请求的重定向。...应答中会包含一个WWW-Authenticate,浏览器据此显示用户名字/密码对话框,然后在填 写合适的Authorization后再次发出请求。...服务器返回503时可以提供一个 Retry-After。 504  Gateway Timeout 由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。

1.4K20

Http Response Code

203 Non-Authoritative Information 文档已经正常地返回,但一些应答可能不正确,因为使用的是文档的拷贝(HTTP 1.1新)。...严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。...服务器告诉客户,原来缓冲的文档还可以继续使用。 305 Use Proxy 客户请求的文档应该通过Location所指明的代理服务器提取(HTTP 1.1新)。...由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只 能跟随对GET请求的重定向。...应答中会包含一个WWW-Authenticate,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization后再次发出请求。 403 Forbidden 资源不可用。

95930

HTTP 响应代码

HEAD:实体位于消息正文中。 POST:描述动作结果的资源在消息体中传输。 TRACE:消息正文包含服务器收到的请求消息 201 Created 该请求已成功,并因此创建了一个新的资源。...306 unused 在最新版的规范中,306 状态码已经不再被使用307 Temporary Redirect 请求的资源现在临时从不同的URI 响应请求。...308 Permanent Redirect 这意味着资源现在永久位于由 Location: HTTP Response 指定的另一个 URI。...该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 信息的请求。...客户端可以返回一个 Proxy-Authorization 信息用以验证。 408 Request Timeout 请求超时。客户端没有在服务器预备等待的时间内完成一个请求的发送。

1.2K10

HTTP错误代码汇总

203 non-authoritative information 文档已经正常的返回,但一些应答可能不正确,因为使用的是的文档的拷贝(HTTP 1.1新)。     ...服务器告诉客户,原来缓冲的文档还可以继续使用。     305 use proxy 客户请求的文档应该通过location 所指明的代理服务器提取(HTTP 1.1新)。     ...307 temporary redirect 和302(found)相同,许多浏览器会错误的相应302应该进行重定向,即使原来的请求是post,即使它实际上只在post请求的应答是303时,才能重定向。...由于这个原因,HTTP1.1新增了307,以便更加清楚的区分几个状态代码,当出现303应答时,浏览器可以跟随重定向的get和post请求,如是307应答,则浏览器只能跟随对get的请求的重定向。   ...应答中会包含-WWW-Authenticate,浏览器据此显示用户名字和密码对话框,然后再填写合适的authorization后再次发送请求。     403 Forbidden 资源不可用。

1.5K20

HTTP状态码及其含义

严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。...服务器告 诉客户,原来缓冲的文档还可以继续使用。 305 Use Proxy:客户请求的文档应该通过Location所指明的代理服务器提取(HTTP 1.1新)。...306 (unused):未使用307 Temporary Redirect:和302 (Found)相同。...由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只 能跟随对GET请求的重定向。...应答中会包含一个WWW-Authenticate,浏览器据此显示用户名字/密码对话框,然后在填 写合适的Authorization后再次发出请求。

1.7K20

HTTP响应代码详解

HEAD:实体位于消息正文中。 POST:描述动作结果的资源在消息体中传输。 TRACE:消息正文包含服务器收到的请求消息 201 Created 该请求已成功,并因此创建了一个新的资源。...306 unused 在最新版的规范中,306 状态码已经不再被使用307 Temporary Redirect(常见) 请求的资源现在临时从不同的URI 响应请求。...308 Permanent Redirect 这意味着资源现在永久位于由 Location: HTTP Response 指定的另一个 URI。...该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 信息的请求。...客户端可以返回一个 Proxy-Authorization 信息用以验证。 408 Request Timeout 请求超时。客户端没有在服务器预备等待的时间内完成一个请求的发送。

1.2K00

YAML+PyYAML笔记 4 | YAML字符流、节点属性、块伸缩使用

1.2 字符流解析使用PyYAML库读取YAML字符流;通过load_all函数,将字符流中的每个文档解析为YAML对象;由于一个文档可能包括多个对象,因此需要使用循环逐个读取每个文档,然后解析其中的对象...123 name: xiaowang age: 99 grades: math: 100 science: 100 history: 1003 块伸缩块是一种结构...,为结构化数据提供缩进关系的文本块;块之间的关系可以使用细节和更高的缩放级别进行解释和表述;块伸缩就是定义块扩展和缩放的一种方法,可以使 YAML 代码的可读性和可维护性更高。...# 块缩进级别为 0name: Johnage: 25address: street: 123 Main St city: Anytown state: CA zip: 12345# 使用 '+...name: Jane age: 30 address: +street: 123 Main St +city: Anytown +state: CA +zip: 12345# 使用

19240

「HTTP」都给你整理好了

请求 请求用于客户端发送 HTTP 请求到服务器中所使用的字段,下面我们一起来看一下 HTTP 请求都包含哪些字段,分别是什么意思。...详细关于 Authorization 的信息,后面也会详细解释 Expect Expect HTTP 请求指示服务器需要满足的期望才能正确处理请求。...Proxy-Authorization Proxy-Authorization 是属于请求与认证的范畴,我们在上面提到一个认证的 HTTP Authorization,不同于 Authorization...ETag: W/"0815" Location Location 响应表示 URL 需要重定向页面,它仅仅与 3xx(重定向) 或 201(已创建) 状态响应一起使用。...下面是一个页面重定向的过程 ? 使用首部字段 Location 可以将响应接受方引导至某个与请求 URI 位置不同的资源。

5.2K41

你还在为 HTTP 的这些概念头疼吗?

请求 请求用于客户端发送 HTTP 请求到服务器中所使用的字段,下面我们一起来看一下 HTTP 请求都包含哪些字段,分别是什么意思。...详细关于 Authorization 的信息,后面也会详细解释 Expect Expect HTTP 请求指示服务器需要满足的期望才能正确处理请求。...Proxy-Authorization Proxy-Authorization 是属于请求与认证的范畴,我们在上面提到一个认证的 HTTP Authorization,不同于 Authorization...ETag: W/"0815" Location Location 响应表示 URL 需要重定向页面,它仅仅与 3xx(重定向) 或 201(已创建) 状态响应一起使用。...下面是一个页面重定向的过程 ? 使用首部字段 Location 可以将响应接受方引导至某个与请求 URI 位置不同的资源。

2.3K30

分享一些整理的HTTP状态码及其详解

307 请求的资源现在临时从不同的URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。...该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 信息的请求。...307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理。...411 (需要有效长度) 服务器不接受不含有效内容长度字段的请求。 412 (未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。...417 (未满足期望值) 服务器未满足"期望"请求字段的要求。 5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。

76810

温故知新 .Net重定向深度分析

:Server对象的Transfer方法使用服务器执行重定向,并避免HTTP请求 关键区别是发生转移的地方: ?...Server.Transfer("/default.aspx");// 由于使用了Web服务器的工作进程,因此Server.Transfer方法的目标URL必须是同一服务器上的虚拟路径,因此您不能使用包含...第一,二次重定向发生在SSO、website1不同域之间的重定向(其中第二次是Post请求之后302重定向),只能使用Client Redirect; 第三次由 http://www.website1....307 “临时重定向”   指示所请求的资源已被临时移动到Location提供的URL; 307和302之间的唯一区别是307保证在发出重定向请求时,Method和Body不会更改,当重定向地址是非...总结:本文简要分析了Client Redirect,Server Redirect的核心差异、使用场景; 最后给出了HTTP 3XX响应码的标准规范。

1.4K20

小结HTTP状态码

3xxs –重定向:你的请求被重定向到了其他地方。服务器收到了请求,但是有某种重定向。 4xxs – 客户端错误:客户端发生错误,导致服务器无法处理请求。...101 Switching Protocol:该状态码是响应客户端Upgrade头发送的,并且指示服务器也正在切换协议。...HEAD:实体位于消息正文中。 POST:描述动作结果的资源在消息体中传输。 TRACE:消息正文包含服务器收到的请求信息。...304 响应禁止包含消息体,因此始终以消息后的第一个空行结尾。请求的时候一般结合If-Modified-Since头部使用307 Temporary Redirect:307的意义如上302。...比如,使用POST请求始终就该用POST请求。 备注:307和303已经替代了历史上的302状态码,现在看到的临时重定向的状态码是307。详细内容可到维基百科上查看。

1.1K20
领券