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

对不起,看完这篇HTTP,真的可以吊打面试官

缓存控制 HTTP/1.1 中 Cache-Control 常规字段用于执行缓存控制,使用此可通过其提供各种指令来定义缓存策略。...缓存未占用资源 Etag 另一个典型用法是缓存未更改资源,如果用户再次访问给定 URL(已设置Etag),并且该 URL过时,则客户端将在 If-None-Match 字段中发送其 Etag...也就是说使用这些 API 应用程序想要请求相同资源,那么他们应该具有相同来源,除非来自其他来源响应包括正确 CORS 可以。...使用 Origin 和 Access-Control-Allow-Origin 展示了最简单访问控制协议。...例如,如果要允许源 https://mozilla.org 代码访问资源,可以使用如下指定方式 Access-Control-Allow-Origin: https://mozilla.org Vary

6.3K21

震惊 | HTTP 在疫情期间把我吓得不敢出门了

一般表示方法如下 Cache-Control: public 缓存控制 HTTP/1.1 中 Cache-Control 常规字段用于执行缓存控制,使用此可通过其提供各种指令来定义缓存策略...缓存未占用资源 Etag 另一个典型用法是缓存未更改资源,如果用户再次访问给定 URL(已设置Etag),并且该 URL过时,则客户端将在 If-None-Match 字段中发送其 Etag...也就是说使用这些 API 应用程序想要请求相同资源,那么他们应该具有相同来源,除非来自其他来源响应包括正确 CORS 可以。...使用 Origin 和 Access-Control-Allow-Origin 展示了最简单访问控制协议。...例如,如果要允许源 https://mozilla.org 代码访问资源,可以使用如下指定方式 Access-Control-Allow-Origin: https://mozilla.org Vary

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

跟我一起探索 HTTP-HTTP缓存

你应该做是,避免使用 kitchen-sink 请仔细阅读你正在使用任何托管缓存机制文档,并确保你选择方式可以正确控制缓存。...例如,对于带有 Accept-Language: en 并已缓存英语内容,不希望再对具有 Accept-Language: ja 请求请求重用该缓存响应。...在这种情况下,你可以通过在 Vary 值中添加“Accept-Language”,根据语言单独缓存响应。...为了解决这些问题,ETag 响应被标准化作为替代方案。 ETag/If-None-Match ETag 响应值是服务器生成任意值。...请注意,数字“41”具有最长 max-age(1 年),具有 public。 public 值具有使响应可存储效果,即使存在 Authorization

22451

HTTP headers

IANA还维护建议新HTTP注册表。 标题可以根据其上下文进行分组: 常规适用于请求和响应与正文中传输数据无关。 请求包含有关要获取资源或有关请求资源客户端更多信息。...端到端头 这些必须发送给消息最终接收者:请求服务器,或响应客户端。中间代理必须重新传输未经修改,并且缓存必须存储它们。...这样可以确保特定范围新片段与先前片段一致性,或者在修改现有文档时实现乐观并发控制系统。 Vary 确定如何匹配请求,以决定是否可以使用缓存响应,而不是从原始服务器请求新响应。...Cookie2 包含先前由服务器发送带有Set-Cookie2HTTP cookie ,已被废弃。使用Cookie代替。...Cross-Origin-Resource-Policy(CORP) 防止其他域读取应用此资源响应

7.6K70

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

因为计算机网络中是可以有第三者出现,也就是缓存服务器,这个指令通过影响请求/响应缓存服务器从而达到控制缓存目的;不仅有缓存服务器,还有浏览器内部缓存会影响链路缓存。...例如下面这种写法 Server: Apache/2.4.1 (Unix) Vary Vary HTTP 响应确定如何匹配请求,以决定是否可以使用缓存响应,而不是从原始服务器请求一个新响应。...="UTF-8" Access-Control-Allow-Origin 一个返回 HTTP 可能会具有 Access-Control-Allow-Origin ,Access-Control-Allow-Origin...例如,要允许源 https://mozilla.org 代码访问资源,可以指定: Access-Control-Allow-Origin: https://mozilla.org Vary: Origin...如果服务器指定单个来源而不是 *通配符的话 ,则服务器还应在 Vary 响应头中包含 Origin ,以向客户端指示 服务器响应将根据原始请求值而有所不同。

2.3K30

「HTTP」都给你整理好了

因为计算机网络中是可以有第三者出现,也就是缓存服务器,这个指令通过影响请求/响应缓存服务器从而达到控制缓存目的;不仅有缓存服务器,还有浏览器内部缓存会影响链路缓存。...例如下面这种写法 Server: Apache/2.4.1 (Unix) Vary Vary HTTP 响应确定如何匹配请求,以决定是否可以使用缓存响应,而不是从原始服务器请求一个新响应。...="UTF-8" Access-Control-Allow-Origin 一个返回 HTTP 可能会具有 Access-Control-Allow-Origin ,Access-Control-Allow-Origin...例如,要允许源 https://mozilla.org 代码访问资源,可以指定: Access-Control-Allow-Origin: https://mozilla.org Vary: Origin...如果服务器指定单个来源而不是 *通配符的话 ,则服务器还应在 Vary 响应头中包含 Origin ,以向客户端指示 服务器响应将根据原始请求值而有所不同。

5.1K41

HTTP接口设计

主要使用场景在于实现并发控制 客户端错误 400 Bad Request : 请求体包含语法错误 401 Unauthorized : 需要验证用户身份,如果服务器就算是身份验证后允许客户访问资源...405 Method Not Allowed : 不允许执行目标方法,响应中应该带有 Allow ,内容为对该资源有效 HTTP 方法 406 Not Acceptable : 服务器不支持客户端请求内容格式...Examples 数据缓存 大部分接口应该在响应头中携带 Last-Modified, ETag, Vary, Date 信息,客户端可以在随后请求这些资源时候,在请求头中使用 If-Modified-Since...这个时候可以使用 Last-Modified 和/或 ETag 来实现条件请求,支持乐观并发控制。 下文只考虑使用 PUT 和 PATCH 方法更新资源情况。...If-Unmodified-Since 或者 If-Match 与服务器记录实际修改时间或 ETag 历史值匹配,资源已经被修改过时候,返回状态码 409 Conflict 客户端发起请求提供条件符合实际值

1.8K20

HTTP头部信息分析

尽管实体报头既不是请求不是响应报头,但是它经常出现在请求响应头中,所以还是把他们包含在一个概念里。...消息 1、Genaral headers 名称 作用 Cache-Control 控制缓存行为; 详情 请求:no-cache(不要缓存实体,要求现在从WEB服务器去取) max-age:(只接受...Clear-Site-Data 表示清除当前请求网站有关浏览器数据(cookie,存储,缓存); Content-Security-Policy 允许站点管理者在指定页面控制用户代理资源; Content-Security-Policy-Report-Only...; Timing-Allow-Origin 用于指定特定站点,以允许访问Resource Timing API提供相关信息; Tk 显示了对相应请求跟踪情况; Vary 服务器缓存管理信息;WEB...告诉客户端实际返回内容内容类型。

91020

【Nginx24】Nginx学习:压缩模块Gzip

gzip_disable 禁用对具有匹配任何指定正则表达式“User-Agent”字段请求响应 gzip 压缩。...该指令接受多个参数: off 禁用所有代理请求压缩,忽略其他参数 expired 如果响应包含带有禁用缓存“Expires”字段,则启用压缩 no-cache 如果响应包含带有“no-cache...ETag”字段,则启用压缩 auth 如果请求包含“授权”字段,则启用压缩 any 为所有代理请求启用压缩 官方解释是 仅将响应压缩到不会在代理服务器上缓存请求是合理 ,代理请求主要指的是一些高速缓存服务器或...如果开启的话,就会添加一个上面那样响应,告诉缓存代理服务器缓存两种版本资源:压缩和非压缩,这有助于避免一些公共代理不能正确地检测 Content-Encoding 问题。...gzip_vary 开启后,响应会有 Vary: Accept-Encoding 这样内容返回回来, gzip_types 大家可以自己测测,不添加那两个,直接访问 JPG 图片或者 txt 文档看看有没有压缩

72121

HTTP1.1协议状态码

100 目的是允许正在发送带有请求正文请求消息客户端确定源服务器是否愿意接受请求(基于请求)在客户端发送请求正文之前。...201响应可能包含ETag响应字段,该字段指示刚刚创建所请求变量实体标签的当前值,请参见14.19节。...尽管任何新或更新元信息都应该应用于当前在用户代理活动视图中文档,响应主要旨在允许输入操作而不会导致更改用户代理活动文档视图。...如果ETag或Last-Modified不完全匹配,则缓存不得将206响应与其他先前缓存内容组合在一起,请参见13.5.4。...-ETag和/或Content-Location(如果已发送) 在对同一请求200条回复中 -如果字段值可能会过期,缓存控制和/或变化 与先前任何回复中发送相同 变体

2.6K40

浏览器中跨域问题与 CORS

CORS CORS 即跨域资源共享 (Cross-Origin Resource Sharing, CORS)。简而言之,就是在服务器端响应中加入几个,使得浏览器能够跨域访问资源。...因此这个问题需要写代码来解决,根据请求头中 Origin 来设置响应 Access-Control-Allow-Origin 如果请求带有 Origin,证明未跨域,则不作任何处理 如果请求带有...) 「此时会出现一个新问题:缓存」 CORS 与 Vary: Origin 在讨论与 Vary 关系时,先抛出一个问题: ❝如何避免 CDN 为 PC 端缓存移动端页面[4] ❞ 假设有两个域名访问...」 此时,Vary: Origin 就上场了,代表为不同 Origin 缓存不同资源,这在各个服务器端 CORS 中间件能体现出来,如以下几段代码 此处是一段 koa 关于 CORS 处理函数:...如同 CORS 一样,它也是有一个服务器响应控制 Strict-Transport-Security: max-age=5184000 此时浏览器访问该域名时,会使用 307 Internal

1.3K30

干货 | 记一次跨域配置引发思考

访问了一个资源,但是这个资源响应Access-Control-Allow-Origin是 https://flights.ctrip.com 。...我去访问了这个页面,并未发现此类报报错。回访了一些用户,让同事一起尝试访问,得到反馈是一部分客户端报错,一部分客户端正常。..."),由于源站响应Vary: origin, accept-encoding,走入到了Vary缓存逻辑中; ②再请求Origin: http://a.ctrip.com,由于走入到Vary缓存逻辑...这代表body没有改变,同时源站返回了正确Access-Control-Allow-Origin给到CDN。然而CDN并没有替换源站给到,而是直接读取一个缓存中错误。...而一些头部配置是直接放在CDN供应商控制面板中做配置。例如默认不会开启Vary这些配置,是为了提升缓存效率。

61831

浏览器中跨域问题与 CORS

CORS CORS 即跨域资源共享 (Cross-Origin Resource Sharing, CORS)。简而言之,就是在服务器端响应中加入几个,使得浏览器能够跨域访问资源。...因此这个问题需要写代码来解决,根据请求头中 Origin 来设置响应 Access-Control-Allow-Origin 如果请求带有 Origin,证明未跨域,则不作任何处理 如果请求带有...) 「此时会出现一个新问题:缓存」 CORS 与 Vary: Origin 在讨论与 Vary 关系时,先抛出一个问题: ❝如何避免 CDN 为 PC 端缓存移动端页面[4] ❞ 假设有两个域名访问...」 此时,Vary: Origin 就上场了,代表为不同 Origin 缓存不同资源,这在各个服务器端 CORS 中间件能体现出来,如以下几段代码 此处是一段 koa 关于 CORS 处理函数:...如同 CORS 一样,它也是有一个服务器响应控制 Strict-Transport-Security: max-age=5184000 此时浏览器访问该域名时,会使用 307 Internal

1.4K20

RFC2616-HTTP1.1-Header Field Definitions(字段规定部分—译文)

如果存在该字段,但是服务器并没有在响应中传递该字段允许字符集,那么服务器需要返回一个406状态码,尽管传送一个不符合响应也是被允许。...这允许源服务器甚至通过配置成向客户端请求返回过期响应缓存来防止缓存。   如果非缓存指令确实指定了一个或多个字段名,则缓存可以使用响应来满足后续请求,缓存任何其他限制。...尽管不建议这样做,但是在严格连接约束下操作用户代理可能违反此指令,如果是这样,则必须明确警告用户已经提供了未经验证响应。每个未经验证访问都必须提供警告,并且需要明确用户确认。...  Vary字段值表示请求字段集,该字段集在响应是“新鲜”情况下完全确定是否允许缓存使用响应响应后续请求,而无需重新验证。...服务器可能包含一个Vary字段,其中不可缓存响应受服务器驱动协商影响,因为这可能为用户代理提供关于“响应”在响应时变化维度有用信息。

1.5K30

六万字 HTTP 必备知识学习,程序员不懂网络怎么行,一篇HTTP入门 不收藏都可惜

代理可以执行多种功能: 缓存缓存可以是公共或私有的,如浏览器缓存) 过滤(如防病毒扫描或家长控制) 负载平衡(允许多个服务器为不同请求提供服务) 身份验证(控制对不同资源访问) 日志记录(允许存储历史信息...缓存控制 Cache-control HTTP/1.1定义 Cache-Control 用来区分对缓存机制支持情况, 请求响应都支持这个属性。通过它提供不同值来定义缓存策略。...如果资源请求响应头里含有ETag, 客户端可以在后续请求头中带上 If-None-Match 来验证缓存。 Last-Modified 响应可以作为一种弱校验器。...304响应可以同时更新缓存文档过期时间。 ️‍Vary 响应 Vary HTTP 响应决定了对于后续请求,如何判断是请求一个新资源还是使用缓存文件。...当缓存服务器收到一个请求,只有当前请求和原始缓存请求缓存响应头里Vary都匹配,才能使用缓存响应。 使用vary有利于内容服务动态多样性。

77430

18 个运维必知 Nginx 代理缓存配置技巧,你都掌握了哪些呢?

Nginx 如何缓存动态内容 只要 Cache-Control 允许。即使在很短时间内缓存动态内容可以减少原始服务器和数据库负载,从而缩短第一个字节时间,因为不必为每个请求重新生成页面。...Nginx 使用 ETag 在 Nginx 1.7.3 及更高版本中,ETag 完全支持 If-None-Match。...这些扩展做了什么: 如果当前正在更新 stale-while-revalidate,Cache-Control HTTP 扩展允许使用陈旧缓存响应。...HTTP stale-if-error 扩展 Cache-Control 允许在发生错误时使用陈旧缓存响应。...这些具有比较低优先级, proxy_cache_use_stale 指令如上所述。 Nginx 是否支持 Vary Nginx 1.7.7 以及更高版本中是支持 Vary

2.3K20

一个合格中级前端工程师需要掌握技能笔记(中)

缓存控制 Cache-control HTTP/1.1定义 Cache-Control 用来区分对缓存机制支持情况, 请求响应都支持这个属性。通过它提供不同值来定义缓存策略。...对于像浏览器这样HTTP UA,不知道ETag代表什么,不能预测它值是多少。如果资源请求响应头里含有ETag, 客户端可以在后续请求头中带上 If-None-Match 来验证缓存。...304响应可以同时更新缓存文档过期时间。 Vary 响应 Vary HTTP 响应决定了对于后续请求,如何判断是请求一个新资源还是使用缓存文件。...当缓存服务器收到一个请求,只有当前请求和原始缓存请求缓存响应头里Vary都匹配,才能使用缓存响应。 ? image.png 使用vary有利于内容服务动态多样性。...HTTP 响应首部字段 Access-Control-Allow-Origin: | * 其中,origin 参数值指定了允许访问该资源外域 URI。

56720

看完这篇HTTP,跟面试官扯皮就没问题了

主要大类有 可缓存性、阈值性、 重新验证并重新加载 和其他特性 可缓存性是唯一响应具有的特性,我们会在响应头中详述。...(请求) s-maxage: 重写了 max-age 和 Expires 请求,仅仅适用于共享缓存,被私有缓存所忽略(这块不理解,看完响应 Cache-Control 再进行理解)(请求)...Access-Control-Allow-Origin 一个返回 HTTP 可能会具有 Access-Control-Allow-Origin ,Access-Control-Allow-Origin...例如,要允许源 https://mozilla.org 代码访问资源,可以指定: Access-Control-Allow-Origin: https://mozilla.org Vary: Origin...如果服务器指定单个来源而不是 *通配符的话 ,则服务器还应在 Vary 响应头中包含 Origin ,以向客户端指示 服务器响应将根据原始请求值而有所不同。

80510
领券