• 关于

    HTTP响应头信息

    的搜索结果

问题

CDN 如何实现设置HTTP头?

青衫无名 2019-12-01 22:02:12 2245 浏览量 回答数 0

回答

日志记录了一条对应时间节点上的get请求,请求头为Baiduspider/3.0。有的爬虫为了抓取页面数据将会伪装自己的请求头,有关http请求头的详情你可参考下下列文档HTTP响应头信息和请求头信息详解link

fralychen 2019-12-02 02:04:27 0 浏览量 回答数 0

回答

当 API 请求发生错误的时候,服务端会返回错误信息,包括 HTTP 的 Status Code 和响应 Body 中的具体错误细节。其中响应 Body 中的错误细节为如下格式: { "errorCode" : , "errorMessage" : } 在所有服务端可能返回的错误信息中,一部分适用于多数 API,而另外一部分则为某些 API所独有。下表即为 API 响应中的通用错误码,它们会在多个 API 响应中出现。而每个 API 所独有的错误码会在该 API 参考中单独描述。 表 1. 通用错误码 HTTP 状态码(Status Code) 错误码(Error Code) 错误消息(Error Message) 描述(Description) 411 MissingContentLength Content-Length does not exist in http header when it is necessary. 没有提供必须的 Content-Length 请求头。 415 InvalidContentType Content-Type {type} is unsupported. 不支持 Content-Type 指定的类型。 400 MissingContentType Content-Type does not exist in http header when body is not empty. 没有为 Body 不为空的 HTTP 请求指定 Content-Type 头。 400 MissingBodyRawSize x-log-bodyrawsize does not exist in header when it is necessary. 压缩场景下没有提供必须的 x-log-bodyrawsize 请求头。 400 InvalidBodyRawSize x-log-bodyrawsize is invalid. x-log-bodyrawsize 的值无效。 400 InvalidCompressType x-log-compresstype {type} is unsupported. x-log-compresstype 指定的压缩方式不支持。 400 MissingHost Host does not exist in http header. 没有提供 HTTP 标准请求头 Host。 400 MissingDate Date does not exist in http header. 没有提供 HTTP 标准请求头 Date。 400 InvalidDateFormat Date {date} must follow RFC822. Date 请求头的值不符合 RFC822 标准。 400 MissingAPIVersion x-log-apiversion does not exist in http header. 没有提供 HTTP 请求头 x-log-apiversion。 400 InvalidAPIVersion x-log-apiversion {version} is unsupported. HTTP 请求头 x-log-apiversion 的值不支持。 400 MissAccessKeyId x-log-accesskeyid does not exist in header. 没有在 Authorization 头部提供 AccessKeyId。 401 Unauthorized The AccessKeyId is unauthorized. 提供的 AccessKeyId 值未授权。 400 MissingSignatureMethod x-log-signaturemethod does not exist in http header. 没有提供 HTTP 请求头 x-log-signaturemethod。 400 InvalidSignatureMethod signature method {method} is unsupported. x-log-signaturemethod 头部指定的签名方法不支持。 400 RequestTimeTooSkewed Request time exceeds server time more than 15 minutes. 请求的发送时间超过当前服务处理时间前后 15 分钟的范围。 404 ProjectNotExist Project {name} does not exist. 日志项目(Project)不存在。 401 SignatureNotMatch Signature {signature} is not matched. 请求的数字签名不匹配。 403 WriteQuotaExceed Write quota is exceeded. 超过写入日志限额。 403 ReadQuotaExceed Read quota is exceeded. 超过读取日志限额。 500 InternalServerError Internal server error message. 服务器内部错误。 503 ServerBusy The server is busy, please try again later. 服务器正忙,请稍后再试。 错误消息中包括 {…} 部分为出错相关的具体信息。例如,ProjectNotExist 的错误消息中包括{name},表示错误消息中该部分会被具体的 Project Name 来替换。

保持可爱mmm 2020-03-26 22:53:08 0 浏览量 回答数 0

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

问题

如何使用API

云栖大讲堂 2019-12-01 21:04:08 1458 浏览量 回答数 0

回答

$.post就是post请求,$.ajax可以通过配置type为get/post(及其他可用的http方法,如get,delete)指定提交方法,返回数据jquery一般会通过响应头来判断类型自动生成对应的数据,如响应头为application/json会自动转为json对象,其他当做text/html处理$.post最终使用的还是$.ajax方法,只是一些参数做了默认处理。$.ajax可以更详细的配置ajax请求信息,如请求头,方法等

吴孟桥 2019-12-02 02:36:41 0 浏览量 回答数 0

回答

首先,PTS 中看到的请求带宽和响应带宽都和 SLB 或者 ECS 中看到的带宽不同。具体的计算逻辑如下: PTS 中统计的请求带宽是基于发送的实际的 HTTP 请求体大小; PTS 中统计的响应带宽的计算方式是:HTTP 响应头字节数 + Content - Length(没有该值则统计响应的 BODY 实际字节数)。 最后,基于上面的逻辑最终的计算方式为:每台施压机器 5s 为周期计算周期内的平均值(响应大小或请求大小,会拉平峰值),用户看到的统计信息为施压机的计算值之和(高并发下会分配多台施压机进行施压)。

保持可爱mmm 2020-03-28 19:44:51 0 浏览量 回答数 0

回答

描述 创建用户信息。 请求信息 请求行 RequestLine PUT /users HTTP/1.1 请求行参数 URI Param 无 特有请求头 RequestHead 无 请求体 RequestBody Request Body: { "User": { "Password": "String" 必填 } } 请求体解析 名称 类型 是否必须 描述 Password String 是 固定密码,长度限制[8-32],必须包含字母、符号或数字中的至少两项。 返回信息 返回行 ResponseLine HTTP/1.1 200 OK 特有返回头 ResponseHead 无 返回体 ResponseBody { "data": {}, "requestId": "String" } 示例 请求示例 PUT /users HTTP/1.1 <公共请求头> { "User": { "Password": "sbG93JsZA363489" } } 返回示例 HTTP/1.1 200 OK <公共响应头> { "data": {}, "requestId": "071CFEDB-E5A4-41BB-BB03-5DA0A59D3888" } 描述 更新用户信息。 请求信息 请求行 POST /users HTTP/1.1 请求行参数 URI Param 无 特有请求头 RequestHead 无 请求体 RequestBody { "User": { "Password":"String" } } 请求体解析 名称 类型 是否必须 描述 Password String 是 固定密码,长度限制[8-32],必须包含字母、符号或数字中的至少两项。 返回信息 返回行 ResponseLine HTTP/1.1 200 OK 特有返回头 ResponseHead 无 返回体 ResponseBody { "data": { }, "requestId":"String" } 返回体解析 无 示例 请求示例 POST /users HTTP/1.1 <公共请求头> { "User": { "Password":"xxxxxxxxx" } } 返回示例 HTTP/1.1 200 OK <公共响应头> { "data": { }, "requestId":"3E7D302A-ACBB-47B7-AD68-2CA45B7B0AFC" }

1934890530796658 2020-03-25 14:32:45 0 浏览量 回答数 0

回答

调用 DeleteCluster 根据集群 ID,删除集群实例,并释放集群所有节点资源。 请求信息 请求行 RequestLine DELETE /clusters/{cluster_id} HTTP/1.1 表 1. 请求行参数 URI Param 名称 类型 是否必须 描述 cluster_id string 是 集群 ID。 特有请求头 RequestHead 无,请参考公共请求头部。 请求体 RequestBody 无 返回信息 返回行 ResponseLine HTTP/1.1 202 Accepted 特有返回头 ResponseHead 无,请参考公共返回头部。 返回体 ResponseBody 无 示例 请求示例 DELETE /clusters/Cccfd68c474454665ace07efce924**** HTTP/1.1 <公共请求头> 返回示例 HTTP/1.1 202 Accepted <公共响应头>

1934890530796658 2020-03-31 21:08:15 0 浏览量 回答数 0

回答

这个问题虽然只有两个2个动作:输入URL和呈现页面,但这背后发生了很多"有趣"的事情,这个过程也涉及到很多方面的技术,包括像浏览器、DNS、http、html、服务器等。如果让我来回答,它大致的过程应该是这样的:DNS解析-->建立连接,发送数据包 -->服务器响应请求,返回给浏览器-->浏览器渲染程序页面。 1.DNS解析 当我搜索这个问题的时候,首先在浏览器输入了一个URL地址,但URL中服务器地址是一个域名而不是一个指定的IP地址,路由器并不知道你想要查找的地址,那么DNS域名解析系统会将该域名解析成ip,而IP地址是唯一的, 每一个ip地址对应网络上的一台计算机 2.建立网络连接,发送数据包 由于1的努力,已经能够根据ip和端口号与网络上对应的服务器建立连接,浏览器这边会向服务器发送一个数据包,里面包含了大量的信息,但这个数据包有一定的格式。就像我给你邮个快递,也得遵循邮递公司的一些规则吧!我得写上我的身份信息、寄的物品、标明邮递地址....道理是一样的,到了网络中这些规则就是“Http协议(网络协议)”。 3.服务器响应请求,返回给浏览器 服务器会分解你的数据包,例如你查找的是一个文档,那么服务器可能会返回一个doc文档或者zip压缩资源给你;如果你访问的是一个链接页面,那么服务器相应的返回一个包含HTML/CSS标记文档,这些请求和响应都有一个通用的写法,这些规则也就是前面提到的"http协议"。客户端向服务器请求资源时,除了告诉服务器要请求的资源,同时还会附带一些其他的信息,这部分信息放在"header"部分(服务器响应请求也一样!),主要有请求头(略)和响应头, http响应头详解: Request URL:https://static.zhihu.com/static/revved/-/css/m.652b53b3.css Request Method:GET Status Code:200 OK (from cache) Remote Address:123.125.110.16:443 Response Headers accept-ranges:bytes //在整个返回体中本部分的字节位置 access-control-allow-origin://跨域请求,则允许所有域名的脚本访问该资源。 cache-control:max-age=600 //指定请求和响应遵循的缓存机制,当你请求头里设置no-cache时,是告诉服务器我这里没有缓存。响应头里这里设置的时间是600,意思浏览器600秒之内别来找我,自己去缓存找吧! content-encoding:gzip // web服务器支持的返回内容压缩编码类型为gzip,web服务器表明自己使用了什么压缩方法。 content-length:49207 //资源长度 content-type:text/css //告诉客户端,资源文件的类型,一般还有字符编码,例如charset=UTF-8,客户端将通过utf-8对资源进行解码,然后对资源进行html解析。 date:Mon, 07 Mar 2016 12:23:37 GMT//记录时间 expires:Mon, 07 Mar 2016 12:33:37 GMT //表明该实体将于什么时候过期 last-modified:Mon, 07 Mar 2016 07:19:19 GMT//请求资源的最后修改时间 server:nnws/1.7.3.6 //服务器信息,by the way!这是啥服务器? status:200 OK //状态码 version:HTTP/1.1 //http协议版本1.1 x-cache-lookup:Hit From MemCache Gz //查看服务器中是否有某个网页缓存,有则返回Hit,没有返回Miss看到http响应状态码我突然想到了404,= =!顺便带几个常见的: 100 Continue 继续,一般在发送post请求时,已发送了http、header之后服务端将返回此信息,表示确认,之后发送具体参数信息 200 OK 正常返回信息 201 Created 请求成功并且服务器创建了新的资源 301 Moved Permanently 请求的网页已永久移动到新位置。 400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。 404 Not Found 找不到如何与 URI 相匹配的资源。 500 Internal Server Error 最常见的服务器端错误。4.浏览器渲染呈现 浏览器拿到响应的页面代码,将其解析呈现在用户面前,至于为什么会是看到的这个样子,有时又是另外的一些页面效果,这里就涉及到web标准了,也就是我们经常提到的w3c标准。根据资源的类型,在网页上呈现给用户,这个过程叫网页渲染。解析和呈现的过程主要由浏览器的渲染引擎实现,浏览器的渲染引擎质量就决定了浏览器的好坏(引擎这一块已经超出了我的理解范围了)。

a123456678 2019-12-02 02:08:40 0 浏览量 回答数 0

问题

日志服务的GetShipperStatus有什么用处?

轩墨 2019-12-01 22:00:04 1393 浏览量 回答数 0

回答

调用 DescribeClusterUserKubeconfig 返回包含当前登录用户身份信息的 Kubernetes 集群访问 kubeconfig。 请求信息 请求行 RequestLine GET /k8s/:{clusterid}/user_config 特有请求头 RequestHead 无,请参考公共请求头部。 返回信息 返回行 ResponseLine HTTP/1.1 200 OK 特有返回头 ResponseHead 无,请参考公共返回头部。 返回体 ResponseBody { "config": "string" } 表 1. 返回体解释 名称 类型 描述 clusterid String 集群 ID。 config String 当前用户对应的集群访问 kubeconfig。 示例 请求示例 GET /k8s/c5b5e80b0b64a4bf6939d2d8fbbc5****/user_config HTTP/1.1 <公共请求头> 返回示例 HTTP/1.1 200 Ok <公共响应头> { "config": "xxxxxxxx" }

1934890530796658 2020-03-31 21:03:51 0 浏览量 回答数 0

问题

Kubernetes API 参考&nbsp;&nbsp;集群 API 列表&nbsp;&nbsp;删除集群

青蛙跳 2019-12-01 21:37:39 527 浏览量 回答数 0

问题

Swarm API参考&nbsp;&nbsp;集群API列表&nbsp;&nbsp;删除集群实例

青蛙跳 2019-12-01 21:38:01 728 浏览量 回答数 0

问题

如何使用表格存储的 API

云栖大讲堂 2019-12-01 20:58:54 1796 浏览量 回答数 0

回答

调用 ModifyClusterTags 修改当前 Kubernetes 集群的 tag 接口。 请求信息 请求行 RequestLine POST /clusters/{cluster_id}/tags HTTP/1.1 表 1. 请求行参数 URI Param 名称 类型 是否必须 描述 cluster_id string 是 集群 ID。 特有请求头 RequestHead 无,请参考公共请求头部。 请求体 RequestBody [ { "key": "xxxxxxxx", "value": "xxxxxxxx" } ] 表 2. 请求体解释 名称 类型 必须 描述 key string 否 标签名称。 value string 否 标签值。 返回信息 返回行 ResponseLine HTTP/1.1 200 OK 特有返回头 ResponseHead 无,请参考公共返回头部。 示例 请求示例 POST /clusters/c5b5e80b0b64a4bf6939d2d8fbbc5****/tags HTTP/1.1 <公共请求头> [ { "key": "xxxxxxxx", "value": "xxxxxxxx" } ] 返回示例 HTTP/1.1 200 Ok <公共响应头>

1934890530796658 2020-03-31 21:04:40 0 浏览量 回答数 0

问题

CDN 如何实现拖拽播放?

青衫无名 2019-12-01 22:02:18 1717 浏览量 回答数 0

问题

Kubernetes API 参考  集群 API 列表  获取集群 kubeconfig 接口

青蛙跳 2019-12-01 21:37:33 546 浏览量 回答数 0

问题

Tomcat做web服务器,如何配置?

落地花开啦 2019-12-01 19:26:54 996 浏览量 回答数 1

回答

ngx_http_headers_module模块提供了两个重要的指令add_header和expires,来添加 “Expires” 和 “Cache-Control” 头字段 对响应头添加任何域字段。add_header可以用来标示请求访问到哪台服务器上,这个也可以通过nginx模块nginx-http-footer-filter研究使用来实现。 expires指令用来对浏览器本地缓存的控制。 “答案来源于网络,供您参考” 希望以上信息可以帮到您!

牧明 2019-12-02 02:16:21 0 浏览量 回答数 0

问题

ajax请求与响应的问题? 400 报错

爱吃鱼的程序员 2020-06-03 15:44:03 2 浏览量 回答数 1

回答

1、HTTP请求(Request)报文,报文格式为:请求行 – HTTP头(通用信息头,请求头,实体头) – 请求报文主体(只有POST才有报文主体),如下图 HTTP响应(Response)报文,报文格式为:状态行 – HTTP头(通用信息头,响应头,实体头) – 响应报文主体,如下图 注:通用信息头指的是请求和响应报文都支持的头域, 分别为Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via;实体头则是实体信息的实体头域,分别为Allow、Content-Base、Content-Encoding、Content-Language、Content-Length、Content-Location、Content-MD5、Content-Range、Content-Type、Etag、Expires、Last-Modified、extension-header。这里只是为了方便理解,将通用信息头,响应头/请求头,实体头都归为了HTTP头。 二、缓存过程分析 浏览器与服务器通信的方式为应答模式,即是:浏览器发起HTTP请求 – 服务器响应该请求。那么浏览器第一次向服务器发起该请求后拿到请求结果,会根据响应报文中HTTP头的缓存标识,决定是否缓存结果,是则将请求结果和缓存标识存入浏览器缓存中,简单的过程如下图: 由上图我们可以知道 1、浏览器每次发起请求,都会先在浏览器缓存中查找该请求的结果以及缓存标识 2、浏览器每次拿到返回的请求结果都会将该结果和缓存标识存入浏览器缓存中 以上两点结论就是浏览器缓存机制的关键,他确保了每个请求的缓存存入与读取,只要我们再理解浏览器缓存的使用规则,那么所有的问题就迎刃而解了,本文也将围绕着这点进行详细分析。 为了方便大家理解,这里我们根据是否需要向服务器重新发起HTTP请求将缓存过程分为两个部分,分别是强制缓存和协商缓存 。 2.1强制缓存 强制缓存就是向浏览器缓存查找该请求结果,并根据该结果的缓存规则来决定是否使用该缓存结果的过程,强制缓存的情况主要有三种(暂不分析协商缓存过程),如下: (1)不存在该缓存结果和缓存标识,强制缓存失效,则直接向服务器发起请求(跟第一次发起请求一致),如下图: (2)存在该缓存结果和缓存标识,但是结果已经失效,强制缓存失效,则使用协商缓存(暂不分析),如下图 (3)存在该缓存结果和缓存标识,且该结果没有还没有失效,强制缓存生效,直接返回该结果,如下图: 那么强制缓存的缓存规则是什么? 答:当浏览器向服务器发送请求的时候,服务器会将缓存规则放入HTTP响应的报文的HTTP头中和请求结果一起返回给浏览器,控制强制缓存的字段分别是Expires和Cache-Control,其中Cache-Conctrol的优先级比Expires高。 2.1.1Expires Expires是HTTP/1.0控制网页缓存的字段,其值为服务器返回该请求的结果缓存的到期时间,即再次发送请求时,如果客户端的时间小于Expires的值时,直接使用缓存结果。 Expires是HTTP/1.0的字段,但是现在浏览器的默认使用的是HTTP/1.1,那么在HTTP/1.1中网页缓存还是否由Expires控制? 到了HTTP/1.1,Expires已经被Cache-Control替代,原因在于Expires控制缓存的原理是使用客户端的时间与服务端返回的时间做对比,如果客户端与服务端的时间由于某些原因(时区不同;客户端和服务端有一方的时间不准确)发生误差,那么强制缓存直接失效,那么强制缓存存在的意义就毫无意义。、 那么Cache-Control又是如何进行控制的? 2.1.2Cache-Control 在HTTP/1.1中,Cache-Control是最重要的规则,主要用于控制网页缓存,主要取值为: (1)public:所有内容都将被缓存(客户端和代理服务器都可缓存) (2)private:所有内容只有客户端可以缓存,Cache-Control的默认取值 (3)no-cache:客户端缓存内容,但是是否使用缓存则需要经过协商缓存来验证决定 (4)no-store:所有内容都不会被缓存,即不使用强制缓存,也不使用协商缓存 (5)max-age=xxx (xxx is numeric):缓存内容将在xxx秒后失效 接下来,我们直接看一个例子,如下: 由上面的例子我们可以知道: (1)HTTP响应报文中expires的时间值,是一个绝对值 (2)HTTP响应报文中Cache-Control为max-age=600,是相对值 由于Cache-Control的优先级比expires,那么直接根据Cache-Control的值进行缓存,意思就是说在600秒内再次发起该请求,则会直接使用缓存结果,强制缓存生效。 注:在无法确定客户端的时间是否与服务端的时间同步的情况下,Cache-Control相比于expires是更好的选择,所以同时存在时,只有Cache-Control生效。 了解强制缓存的过程后,我们拓展性的思考一下: 浏览器的缓存存放在哪里,如何在浏览器中判断强制缓存是否生效? 这里我们以博客的请求为例,状态码为灰色的请求则代表使用了强制缓存,请求对应的Size值则代表该缓存存放的位置,分别为from memory cache 和 from disk cache。 那么from memory cache 和 from disk cache又分别代表的是什么呢?什么时候会使用from disk cache,什么时候会使用from memory cache呢? from memory cache代表使用内存中的缓存,from disk cache则代表使用的是硬盘中的缓存,浏览器读取缓存的顺序为memory –> disk。 虽然我已经直接把结论说出来了,但是相信有不少人对此不能理解,那么接下来我们一起详细分析一下缓存读取问题,这里仍让以我的博客为例进行分析: 访问https://heyingye.github.io/ –> 200 –> 关闭博客的标签页 –> 重新打开https://heyingye.github.io/ –> 200(from disk cache) –> 刷新 –> 200(from memory cache) 过程如下: (1)访问博客网站 (2)关闭博客的标签页 (3)重新打开博客 (4)刷新 看到这里可能有人小伙伴问了,最后一个步骤刷新的时候,不是同时存在着from disk cache和from memory cache吗? 对于这个问题,我们需要了解内存缓存(from memory cache)和硬盘缓存(from disk cache),如下: (1)内存缓存(from memory cache):内存缓存具有两个特点,分别是快速读取和时效性: 1、快速读取:内存缓存会将编译解析后的文件,直接存入该进程的内存中,占据该进程一定的内存资源,以方便下次运行使用时的快速读取。 2、时效性:一旦该进程关闭,则该进程的内存则会清空。 (2)硬盘缓存(from disk cache):硬盘缓存则是直接将缓存写入硬盘文件中,读取缓存需要对该缓存存放的硬盘文件进行I/O操作,然后重新解析该缓存内容,读取复杂,速度比内存缓存慢。 在浏览器中,浏览器会在js和图片等文件解析执行后直接存入内存缓存中,那么当刷新页面时只需直接从内存缓存中读取(from memory cache);而css文件则会存入硬盘文件中,所以每次渲染页面都需要从硬盘读取缓存(from disk cache)。 2.2协商缓存 协商缓存就是强制缓存失效后,浏览器携带缓存标识向服务器发起请求,由服务器根据缓存标识决定是否使用缓存的过程,主要有以下两种情况: (1)协商缓存生效,返回304,如下 (2)协商缓存失败,返回200和请求结果,如下 同样,协商缓存的标识也是在响应报文的HTTP头中和请求结果一起返回给浏览器的,控制协商缓存的字段分别有:Last-Modified / If-Modified-Since和Etag / If-None-Match,其中Etag / If-None-Match的优先级比Last-Modified / If-Modified-Since高。 2.2.1Last-Modified / If-Modified-Since (1)Last-Modified是服务器响应请求时,返回该资源文件在服务器最后被修改的时间,如下: (2)If-Modified-Since则是客户端再次发起该请求时,携带上次请求返回的Last-Modified值,通过此字段值告诉服务器该资源上次请求返回的最后被修改时间。服务器收到该请求,发现请求头含有If-Modified-Since字段,则会根据If-Modified-Since的字段值与该资源在服务器的最后被修改时间做对比,若服务器的资源最后被修改时间大于If-Modified-Since的字段值,则重新返回资源,状态码为200;否则则返回304,代表资源无更新,可继续使用缓存文件,如下。 2.2.2Etag / If-None-Match (1)Etag是服务器响应请求时,返回当前资源文件的一个唯一标识(由服务器生成),如下: (2)If-None-Match是客户端再次发起该请求时,携带上次请求返回的唯一标识Etag值,通过此字段值告诉服务器该资源上次请求返回的唯一标识值。服务器收到该请求后,发现该请求头中含有If-None-Match,则会根据If-None-Match的字段值与该资源在服务器的Etag值做对比,一致则返回304,代表资源无更新,继续使用缓存文件;不一致则重新返回资源文件,状态码为200,如下。 注:Etag / If-None-Match优先级高于Last-Modified / If-Modified-Since,同时存在则只有Etag / If-None-Match生效。 三、总结 强制缓存优先于协商缓存进行,若强制缓存(Expires和Cache-Control)生效则直接使用缓存,若不生效则进行协商缓存(Last-Modified / If-Modified-Since和Etag / If-None-Match),协商缓存由服务器决定是否使用缓存,若协商缓存失效,那么代表该请求的缓存失效,重新获取请求结果,再存入浏览器缓存中;生效则返回304,继续使用缓存,主要过程如下: 以上便是浏览器缓存的过程

景凌凯 2020-04-04 13:11:54 0 浏览量 回答数 0

问题

Swarm API参考&nbsp;&nbsp;集群API列表&nbsp;&nbsp;移除集群内节点

青蛙跳 2019-12-01 21:38:03 641 浏览量 回答数 0

问题

公共HTTP头定义

青衫无名 2019-12-01 21:49:09 854 浏览量 回答数 0

回答

为了实现会话保持。负载均衡服务器需要通过修改后端ECS响应头信息中的Date、Server、X-Pad、X-Accel-Redirect等参数值,来实现会话保持等功能特性。解决方案:在自定义的头中加入一个前缀,如xl-server,xl-date等,以避开负载均衡的处理。将七层HTTP转发切换为四层TCP转发。欢迎尊敬的题主来到阿里云云栖社区,希望我私人的回答能对你有帮助,你可以继续留言或者到论坛参与更多的互动。

大财主 2019-12-02 00:20:55 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 CopyObject接口用于拷贝一个在OSS上已经存在的object成另外一个object。 该接口可以发送一个PUT请求给OSS,并在PUT请求头中添加元素x-oss-copy-source来指定拷贝源。OSS会自动判断出这是一个Copy操作,并直接在服务器端执行该操作。如果拷贝成功,则返回新的object信息给用户。 该操作适用于拷贝小于1GB的文件,当拷贝一个大于1GB的文件时,必须使用Multipart Upload操作,具体见Upload Part Copy。 Copy操作的源Bucket和目标Bucket必须是同一个Region,不同Region的Bucket不能执行Copy Object操作。 请求语法 PUT /DestObjectName HTTP/1.1 Host: DestBucketName.oss-cn-hangzhou.aliyuncs.com Date: GMT Date Authorization: SignatureValue x-oss-copy-source: /SourceBucketName/SourceObjectName 请求Header 名称 类型 描述 x-oss-copy-source 字符串 复制源地址(必须有可读权限) 默认值:无 x-oss-copy-source-if-match 字符串 如果源Object的ETag值和用户提供的ETag相等,则执行拷贝操作,并返回200;否则返回412 HTTP错误码(预处理失败)。 默认值:无 x-oss-copy-source-if-none-match 字符串 如果源Object的ETag值和用户提供的ETag不相等,则执行拷贝操作,并返回200;否则返回304 HTTP错误码(预处理失败)。 默认值:无 x-oss-copy-source-if-unmodified-since 字符串 如果传入参数中的时间等于或者晚于文件实际修改时间,则正常传输文件,并返回200 OK;否则返回412 precondition failed错误。 默认值:无 x-oss-copy-source-if-modified-since 字符串 如果源Object自从用户指定的时间以后被修改过,则执行拷贝操作;否则返回304 HTTP错误码(预处理失败)。 默认值:无 x-oss-metadata-directive 字符串 有效值为COPY和REPLACE。如果该值设为COPY,则新的Object的meta都从源Object复制过来;如果设为REPLACE,则忽视所有源Object的meta值,而采用用户这次请求中指定的meta值;其他值则返回400 HTTP错误码。注意该值为COPY时,源Object的x-oss-server-side-encryption的meta值不会进行拷贝。 取值: COPY (默认值) REPLACE x-oss-server-side-encryption 字符串 指定oss创建目标object时的服务器端熵编码加密算法 取值:AES256 或 KMS 说明 您需要购买KMS套件,才可以使用KMS加密算法,否则会报KmsServiceNotEnabled错误码。 x-oss-object-acl 字符串 指定oss创建object时的访问权限。 取值:public-read,private,public-read-write 响应元素(Response Elements) 表 1. 响应元素 名称 类型 描述 CopyObjectResult 字符串 Copy Object的结果。 默认值:无 ETag 字符串 新Object的ETag值。 父元素:CopyObjectResult LastModified 字符串 新Object最后更新时间。 父元素:CopyObjectResult 细节分析 可以通过拷贝操作来实现修改已有Object的meta信息。 如果拷贝操作的源Object地址和目标Object地址相同,则无论x-oss-metadata-directive为何值,都会直接替换源Object的meta信息。 OSS支持拷贝操作的四个预判断Header任意个同时出现,相应逻辑参见Get Object操作的细节分析。 拷贝操作需要请求者对源Object有读权限。 源Object和目标Object必须属于同一个数据中心,否则返回403 AccessDenied,错误信息为:Target object does not reside in the same data center as source object。 拷贝操作的计费统计会对源Object所在的Bucket增加一次Get请求次数,并对目标Object所在的Bucket增加一次Put请求次数,以及相应的新增存储空间。 拷贝操作涉及到的请求头,都是以“x-oss-”开头的,所以要加入签名字符串中。 若在拷贝操作中指定了x-oss-server-side-encryption请求头,并且请求值合法(为AES256),则无论源Object是否进行过服务器端加密编码,拷贝之后的目标Object都会进行服务器端加密编码。并且拷贝操作的响应头中会包含x-oss-server-side-encryption,值被设置成目标Object的加密算法。在这个目标Object被下载时,响应头中也会包含x-oss-server-side-encryption,值被设置成该Object的加密算法;若拷贝操作中未指定x-oss-server-side-encryption请求头,则无论源Object是否进行过服务器端加密编码,拷贝之后的目标Object都是未进行过服务器端加密编码加密的数据。 拷贝操作中x-oss-metadata-directive请求头为COPY(默认值)时,并不拷贝源Object的x-oss-server-side-encryption值,即目标Object是否进行服务器端加密编码只根据COPY操作是否指定了x-oss-server-side-encryption请求头来决定。 若在拷贝操作中指定了x-oss-server-side-encryption请求头,并且请求值非AES256,则返回400和相应的错误提示:InvalidEncryptionAlgorithmError。 如果拷贝的文件大小大于1GB,会返回400和错误提示:EntityTooLarge。 该操作不能拷贝通过Append追加上传方式产生的object。 如果文件类型为符号链接,只拷贝符号链接。 示例 请求示例: PUT /copy_oss.jpg HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Fri, 24 Feb 2012 07:18:48 GMT x-oss-copy-source: /oss-example/oss.jpg Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:gmnwPKuu20LQEjd+iPkL259A+n0= 返回示例: HTTP/1.1 200 OK x-oss-request-id: 559CC9BDC755F95A64485981 Content-Type: application/xml Content-Length: 193 Connection: keep-alive Date: Fri, 24 Feb 2012 07:18:48 GMT Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <CopyObjectResult xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”> <LastModified>Fri, 24 Feb 2012 07:18:48 GMT</LastModified> <ETag>"5B3C1A2E053D763E1B002CC607C5A0FE"</ETag> </CopyObjectResult>

2019-12-01 23:13:50 0 浏览量 回答数 0

回答

HTTP/HTTPS 请求的返回结果有 HttpCode、Header、Body 三部分。当请求报错时,由于没有进入业务逻辑,所以返回的 Body 可能为空,表现为“返回值为空”,但实际上,重要信息都在 Header 里面。 用户发起的 API 请求只要能够到达网关,就会返回成功/错误的结果信息。 重要的返回信息都在Header里面,以X-Ca开头的为网关返回的信息。其中较主要的为下面的几个信息: X-Ca-Request-Id: 7AD052CB-EE8B-4DFD-BBAF-EFB340E0A5AF //请求唯一ID,请求一旦进入API网关应用后,API网关就会生成请求ID并通过响应头返回给客户端,建议客户端与后端服务都记录此请求ID,可用于问题排查与跟踪 X-Ca-Error-Message: Invalid Url //API网关返回的错误消息,当请求出现错误时API网关会通过响应头将错误消息返回给客户端 X-Ca-Debug-Info: {"ServiceLatency":0,"TotalLatency":2} //当打开Debug模式后会返回Debug信息,此信息后期可能会有变更,仅用做联调阶段参考 所以如果发送请求后,发现返回值为空,那么看一下返回的 Header 信息。如果请求到达网关就错误返回了,那么 Body 为空很正常,会表现为返回值为空,但是在 Header 里面会有重要信息。 如果Header也为空,那么说明请求没有达到网关,请自行检查网络状况等。 各种语言获取和查看 HTTP/HTTPS 头部信息的方法均可在网上查询到。

保持可爱mmm 2020-04-06 00:46:42 0 浏览量 回答数 0

问题

Kubernetes API 参考&nbsp;&nbsp;集群 API 列表&nbsp;&nbsp;获取集群证书

青蛙跳 2019-12-01 21:37:33 513 浏览量 回答数 0

回答

调用 DeleteClusterNodes 从 Kubernetes 集群中移除多余的 Worker 节点。 说明 移除节点会涉及 Pod 迁移,可能会影响业务,请在业务低峰期操作。 操作过程中可能存在非预期风险,请提前做好相关的数据备份。 操作过程中,后台会把当前节点设置为不可调度状态。 移除节点仅移除 Worker 节点,不会移除 Master 节点。 请求信息 请求行 RequestLine POST /clusters/{cluster_id}/nodes HTTP/1.1 请求行参数 URI Param 名称 类型 是否必须 描述 cluster_id string 是 集群 ID。 特有请求头 RequestHead 无,请参考公共请求头部。 请求体 RequestBody { "nodes": "要移除的node_name数组", "release_node": "是否同时释放ecs节点" } 请求体解析 名称 类型 是否必须 描述 nodes Array 是 已有实例的数组。 release_node bool 否 是否同时释放 ECS 节点,默认不释放。 返回信息 返回行 ResponseLine HTTP/1.1 202 OK 特有返回头 ResponseHead 无,请参考公共返回头部。 示例 请求示例 POST /clusters/Cccfd68c474454665ace07efce924****/attach HTTP/1.1 <公共请求头> { "password": "Hello1234", "nodes": [ "i-2ze74qyw9s3ge4k0****", "i-2zeipuf9l4tj659q****" ] } 返回示例 HTTP/1.1 202 Accepted <公共响应头>

1934890530796658 2020-03-31 21:07:56 0 浏览量 回答数 0

问题

HTTP2.0有什么优势?

轩墨 2019-12-01 21:07:17 1289 浏览量 回答数 0

回答

描述 返回用于登录 Registry 的临时账号和临时密码,临时密码的有效时间为1小时,若使用 STS 方式请求时,临时密码的有效时间等同于本次请求 STS Token 的有效时间。 权限说明 调用方式 权限说明 主账号 使用临时 Token 登录 Registry 的权限等同于主账号使用用户名和密码登录 Registry 的权限。 子账号 使用临时 Token 登录 Registry 的权限等同于子账号使用用户名和密码登录 Registry 的权限。 STS 使用临时 Token 登录 Registry 的权限由角色的策略决定。 请求信息 请求行 RequestLine Get /tokens HTTP/1.1 请求行参数 URI Param 无 特有请求头 RequestHead 无 请求体 RequestBody 无 返回信息 返回行 ResponseLine HTTP/1.1 200 OK 特有返回头 ResponseHead 无 返回体 ResponseBody { "data": { "authorizationToken": "String", "tempUserName": "String", "expireDate": Long }, "requestId": "String" } 返回体解析 名称 类型 描述 authorizationToken String 用于登录 Registry 的密码 tempUserName String 用于登录 Registry 的用户名 expireDate Long 临时 Token 的过期时间戳,单位为 ms 示例 请求示例 Get /tokens HTTP/1.1 <公共请求头> 返回示例 HTTP/1.1 200 OK <公共响应头> { "data": { "authorizationToken": "eyJ0aW1lIjoiMTUyNjU0OTc5:07057333e85", "tempUserName": "cr_temp_user", "expireDate": 1526549792000 }, "requestId": "94E89857-B994-44B6-9C4F-DBD200E9E272" }

1934890530796658 2020-03-25 14:52:03 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站