当前位置: 首页 > news >正文

网站下载app免费建设网站需要什么要求

网站下载app免费,建设网站需要什么要求,二级建造师官网查询系统,外贸工厂网站做seo多吗http协议中的header详细讲解 HTTP 协议和 TCP/IP 协议族内的其他众多的协议相同#xff0c;用于客户端和服务器之间的通信。 请求访问文本或图像等资源的一端称为客户端#xff0c;而提供资源响应的一端称为服务器端。 HTTP 协议规定#xff0c;请求从客户端发出#xf…http协议中的header详细讲解 HTTP 协议和 TCP/IP 协议族内的其他众多的协议相同用于客户端和服务器之间的通信。 请求访问文本或图像等资源的一端称为客户端而提供资源响应的一端称为服务器端。 HTTP 协议规定请求从客户端发出最后服务器端响应该请求并返回。换句话说肯定是先从客户端开始建立通信的服务器端在没有接收到请求之前不会发送响应。 无状态 HTTP 是一种不保存状态即无状态stateless协议。HTTP 协议自身不对请求和响应之间的通信状态进行保存。也就是说在 HTTP 这个级别协议对于发送过的请求或响应都不做持久化处理。 HTTP/1.1 虽然是无状态协议但为了实现期望的保持状态功能于是引入了 Cookie 技术。 持久化 HTTP协议的初始版本中每进行一次 HTTP 通信就要断开一次 TCP 连接。可随着 HTTP 的普及文档中包含大量图片的情况多了起来。每次无状态的请求都会造成无谓的 TCP 连接建立和断开增加通信量的开销。 为解决上述 TCP 连接的问题HTTP/1.1 和一部分的 HTTP/1.0 想出了持久连接也称为 HTTP keep-alive的方法。持久连接的特点是只要任意一端没有明确提出断开连接则保持 TCP 连接状态。 管线化 持久连接使得多数请求以管线化方式发送成为可能。从前发送请求后需等待并收到响应才能发送下一个请求。管线化技术出现后不用等待响应亦可直接发送下一个请求。 http报文 用于 HTTP 协议交互的信息被称为 HTTP 报文。请求端客户端的 HTTP 报文叫做请求报文响应端服务器端的叫做响应报文。 HTTP 报文本身是由多行用 CRLF 作换行符数据构成的字符串文本。 HTTP 报文大致可分为报文首部和报文主体两块。两者由最初出现的空行CRLF来划分。通常并不一定要有报文主体。 请求报文 一个HTTP请求报文由请求行request line、请求头部header、空行和请求数据4个部分组成。 请求行 请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成。请求首部 请求首部由关键字/值对组成每行一对关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息。空行请求数据 含了所有类型的数据。请求主体中包括了要发送给 Web 服务器的数据响应主体中装载了要返回给客户端的数据。起始行和首部都是文本形式且都是结构化的而主体则不同主体中可以包含任意的二进制数据比如图片、视频、音轨、软件程序。当然主体中也可以包含文本。 响应报文 HTTP响应也由4个部分组成分别是状态行、响应头部、空行、响应正文实体。 响应行 响应行由HTTP版本号状态码和状态值组成。响应首部 响应首部也是由关键字/值对组成每行一对关键字和值用英文冒号“:”分隔。空行响应正文 包含了Web客户端请求的对象。 http首部 HTTP 请求首部字段是由首部字段名和字段值构成的中间用冒号: 分隔。 HTTP 首部字段根据实际用途被分为以下 4 种类型。 通用首部字段General Header Fields 请求报文和响应报文两方都会使用的首部。请求首部字段Request Header Fields 从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容相关优先级等信息。响应首部字段Response Header Fields 从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容也会要求客户端附加额外的内容信息。实体首部字段Entity Header Fields 针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息。 通用首部 字段描述备注Connection允许客户端和服务器指定与请求/响应连接有关的选项–Date提供了日期的时间标志说明报文是什么时间创建的–Trailer如果报文采用了分块传输编码方式就可以用这个首部列出位于报文拖挂部分的首部集合–Transfer-Encoding告知接收端为了保证报文的可靠传输对报文采用了什么编码方式–Update给出了发送端可能想要“升级”使用的新版本或协议–Via显示了报文经过的中间节点代理、网关–Warning错误通知–Cache-Control用于随报文传送缓存指示用于缓存Pragma报文指令用于缓存 图中的橙色部分就是tcp连接耗时可以看到并非全部请求都有进行tcp的握手连接。设置了keep-alive后tcp连接并未断开图中不同颜色的线标记了复用的tcp的id。 设置close后 可以发现所有的请求都带有橙色部分就是每个请求都重新建立了tcp连接。 需要注意的在浏览器上不能设置Connection:close会出现Refused to set unsafe header Connection错误是因为XMLHttpRequest不允许设置这些标题它们是由浏览器自动设置的。原因在于通过操纵这些标头可能会欺骗服务器通过相同的连接接受第二个请求而这种连接不会经过通常的安全检查 - 这将成为浏览器中的安全漏洞。 在客户端发送请求和服务器返回响应内使用 Connection 首部字段可控制不再转发给代理的首部字段即 Hop-by-hop 首部。 逐跳首部Hop-by-hop Header分在此类别中的首部只对单次转发有效会因通过缓存或代理而不再转发。HTTP/1.1 和之后版本中如果要使用 hop-by-hop 首部需提供 Connection 首部字段。 下面列举了 HTTP/1.1 中的逐跳首部字段。除这 8 个首部字段之外 其他所有字段都属于端到端首部。 Connection, Keep-Alive, Proxy-Authenticate, Proxy-Authorization, Trailer, TETransfer-Encoding, Upgrade Date 首部字段 Date 表明创建 HTTP 报文的日期和时间。时间的描述格式由RFC822定义。例如Date:Sun, 27 Mar 2022 13:36:28 GMT。Date描述的时间表示世界标准时换算成本地时间需要知道用户所在的时区。 同样浏览器上不能设置Date会出现Refused to set unsafe header Date错误。 Trailer Trailer 会事先说明在报文主体后记录了哪些首部字段。该首部字段可应用在 HTTP/1.1 版本分块传输编码时。 Transfer-Encoding Transfer-Encoding 规定了传输报文主体时采用的编码方式。 Upgrade Upgrade 用于检测 HTTP 协议及其他协议是否可使用更高的版本进行通信其参数值可以用来指定一个完全不同的通信协议。 Via Via 是为了追踪客户端与服务器之间的请求和响应报文的传输路径。 Cache-Control 通过指定首部字段 Cache-Control 的指令就能操作缓存的工作机制。 指令的参数是可选的多个指令之间通过“,”分隔。首部字段 Cache-Control 的指令可用于请求及响应时。 如果要使用这个字段需要在服务端配置Access-Control-Allow-Headers:Cache-Control这个头。 例如 Cache-Control: private, max-age0, no-cache 缓存指令 缓存请求指令参数说明no-cache无强制向源服务器再次验证no-store无不缓存请求或响应的任何内容max-age [ 秒]必需响应的最大Age值max-stale( [ 秒])可省略接收已过期的响应min-fresh [ 秒]必需期望在指定时间内的响应仍有效no-transform无代理不可更改媒体类型only-if-cached无从缓存获取资源cache-extension无新指令标记token 缓存响应指令 指令参数说明public无可向任意方提供响应的缓存private可省略仅向特定用户返回响应no-cache可省略缓存前必须先确认其有效性no-store无不缓存请求或响应的任何内容no-transform无代理不可更改媒体类型must-revalidate无可缓存但必须再向源服务器进行确认proxy-revalidate无要求中间缓存服务器对缓存的响应有效性再 进行确认max-age [ 秒]必需响应的最大Age值s-maxage [ 秒]必需公共缓存服务器响应的最大Age值cache-extension-新指令标记token 各指令详解 public: Cache-Control: public明确表明其他用户也可利用缓存。 默认为public表明其他代理服务器、客户端可以缓存该响应。 当客户端发送了请求时代理服务器对响应进行缓存当其他客户端发送相同请求时代理服务器直接返回缓存就可以不需要再次访问源服务器。 以下是使用node写的简单代理服务器。 const cache {}; const proxyServer http.createServer((req, res) {if(cache[req.url]) {res.end(cache[req.url])} else {const proxy http.get(http://localhost:3000, (response) {response.on(data, data {let cacheControl response.headers[cache-control].split(,);if(cacheControl.indexOf(public) -1) {cache[req.url] data;}res.end(data);}).on(error, err {res.end(err);})})proxy.end();} })private: Cache-Control: private响应只以特定的用户作为对象。 只会缓存特定用户的请求比如说是根据Authorization来区别不同的用户。 no-cache: Cache-Control: no-cache该指令的目的是为了防止从缓存中返回过期的资源。 当客户端发送的请求中包含了no-cache则表示客户端将不会接收缓存过的响应。于是中间的缓存服务器必须把客户端请求转发给源服务器。 在上面的简单代理服务器中添加多一个判断 const reqCacheControl req.headers[cache-control]?.split(,); if(cache[req.url] (reqCacheControl ? reqCacheControl.indexOf(no-cache) -1 : true)) {res.end(cache[req.url]) } else {//... }如果服务器返回的响应中包含 no-cache 指令那么缓存服务器不能对资源进行缓存。源服务器以后也将不再对缓存服务器请求中提出的资源有效性进行确认且禁止其对响应资源进行缓存操作。 在响应头的no-cache可以指定参数值。那么客户端在接收到这个被指定参数值的首 部字段对应的响应报文后就不能使用缓存。换言之无参数值的首 部字段可以使用缓存。只能在响应指令中指定该参数。 no-store: Cache-Control: no-store暗示请求和对应的响应或响应中包含机密信息。 从字面意思上很容易把 no-cache 误解成为不缓存但事实上 no-cache 代表不缓存过期的资源缓存会向源服务器进行有效期确认后处理资源也许称为 do-not-serve-from-cache-without-revalidation 更合适。no-store 才是真正地不进行缓存。 max-age: Cache-Control: max-age604800单位秒当客户端发送的请求中包含 max-age 指令时如果判定缓存资源的缓存时间数值比指定时间的数值更小那么客户端就接收缓存的资源。 另外当指定 max-age 值为 0那么缓存服务器通常需要将请求转发给源服务器。 当服务器返回的响应中包含 max-age 指令时缓存服务器将不对资源的有效性再作确认而 max-age 数值代表资源保存为缓存的最长时间。 应用 HTTP/1.1 版本的缓存服务器遇到同时存在 Expires 首部字段的情况时会优先处理 max-age 指令而忽略掉 Expires 首部字段。而 HTTP/1.0 版本的缓存服务器的情况却相反max-age 指令会被忽略。 只有get请求才会被缓存 这个在请求跟响应头都可以设置但这代表了不同意思。 在请求头中设置max-age在浏览器上前进后退路由在有效时间内不会重新发送请求强制刷新则会发送请求。而在响应头中设置在有效时间内浏览器并不会重新发送该请求。 s-maxage: Cache-Control: s-maxage604800单位 秒, s-maxage 指令的功能和 max-age 指令的相同它们的不同点是 s-maxage 指令只适用于供多位用户使用的公共缓存服务器。也就是说对于向同一用户重复返回响应的服务器来说这个指令没有任何作用。 当使用 s-maxage 指令后则直接忽略对 Expires 首部字段及 max-age 指令的处理。 min-fresh: Cache-Control: min-fresh60单位秒要求缓存服务器返回至少还未过指定时间的缓存资源。比如当指定min-fresh 为 60 秒后过了 60 秒的资源都无法作为响应返回。 max-stale: Cache-Control: max-stale3600单位秒指示缓存资源即使过期也照常接收。如果指令未指定参数值那么无论经过多久客户端都会接收响应 如果指令中指定了具体数值那么即使过期只要仍处于 max-stale 指定的时间内仍旧会被客户端接收。 only-if-cached: Cache-Control: only-if-cached表示客户端仅在缓存服务器本地缓存目标资源的情况下才会要求其返回。换言之该指令要求缓存服务器不重新加载响应也不会再次确认资源有效性。若发生请求缓存服务器的本地缓存无响应则返回状态码 504 Gateway Timeout。 must-revalidate: Cache-Control: must-revalidate使用 must-revalidate 指令代理会向源服务器再次验证即将返回的响应缓存目前是否仍然有效。若代理无法连通源服务器再次获取有效资源的话缓存必须给客户端一条 504Gateway Timeout状态码。 使用 must-revalidate 指令会忽略请求的 max-stale 指令即使已经在首部使用了 max-stale也不会再有效果。 proxy-revalidate: Cache-Control: proxy-revalidate 要求所有的缓存服务器在接收到客户端带有该指令的请求返回响应之前必须再次验证缓存的有效性。 no-transform: Cache-Control: no-transform使用 no-transform 指令规定无论是在请求还是响应中缓存都不能改变实体主体的媒体类型。 这样做可防止缓存或代理压缩图片等类似操作。 Pragma Pragma: no-cachePragma 是 HTTP/1.1 之前版本的历史遗留字段仅作为与 HTTP/1.0 的向后兼容而定义。 所有的中间服务器如果都能以 HTTP/1.1 为基准那直接采用 Cache-Control: no-cache 指定缓存的处理方式是最为理想的。但要整体掌握全部中间服务器使用的 HTTP 协议版本却是不现实的。因此发送的请求会同时含有下面两个首部字段。 Cache-Control: no-cache Pragma: no-cachepragma值有no-cache和no-store两个选项。 当pragma、cache-control和expires同时出现时优先级顺序pragma - cache-control - expires 例 同时设置了三个pragma优先不进行缓存。 res.setHeader(Cache-Control, max-age30); res.setHeader(pragma, no-cache); res.setHeader(expires, new Date(new Date().getTime() 2000).toGMTString())同时设置了cache-control和expirescache-control优先会被缓存30秒 res.setHeader(Cache-Control, max-age30); res.setHeader(expires, new Date(new Date().getTime() 2000).toGMTString())请求首部 字段描述Client-IP提供了运行客户端的机器的IP地址From提供了客户端用户的E-mail地址Host给出了接收请求的服务器的主机名和端口号Referer提供了包含当前请求URL的文档的URLUA-Color提供了与客户端显示器的显示颜色有关的信息UA-CPU给出了客户端CPU的类型或制造商UA-Disp提供了与客户端显示器屏幕能力有关的信息UA-OS给出了运行在客户端机器上的操作系统名称及版本UA-Pixels提供了客户端显示器的像素信息User-Agent将发起请求的应用程序名称告知服务器Accept告诉服务器能够发送那些媒体类型Accept-Charset告诉服务器能够给发送那些字符集Accept-Encoding告诉服务器能够发送那些编码方式Accept-Language告诉服务器能够发送那些语言TE告诉服务器可以使用那些扩展传输编码Expect允许客户端列出某请求所要求的服务器行为If-Match如果实体标记与文档当前的实体标记相匹配就获取这份文档If-Modified-Since除非在某个指定的日期之后资源被修改过否则就限制这个请求If-None-Match如果提供的实体标记与当前文档的标记不相符就获取文档If-Range允许对文档的某个范围进行条件请求If-Unmodified-Since除非在某个指定日期之后资源没有被修改过否则就限制这个请求Range如果服务器支持范围请求就请求资源的指定范围Authorization包含了客户端提供给服务器以便对其自身进行认证的数据Cookie客户端用它向服务器传送一个令牌————它并不是真正的安全首部但确实隐含了安全功能Cookie2用来说明请求端支持的cookie版本Max-Forward在通往源端服务器的路径上将请求转发给其他代理或网关的最大次数————与TRACE方法一同使用Proxy-Authorization与Authorization首部相同但这个首部是在与代理进行认证时使用的Proxy-Connection与Connection首部相同但这个首部是在与代理建立连接时使用的 Accept Accept 首部字段可通知服务器用户代理能够处理的媒体类型及媒体类型的相对优先级。服务器通过设置响应头的Content-Type字段来保持跟客户端Accept字段一致。 常见格式类型 text/html HTML格式text/plain 纯文本格式text/xml XML格式image/gif gif图片格式image/jpeg jpg图片格式image/pngpng图片格式video/mpeg视频vedio/quicktime视频application/xhtmlxml XHTML格式application/xml XML数据格式application/atomxml Atom XML聚合格式application/json JSON数据格式application/pdf pdf格式application/msword Word文档格式application/octet-stream 二进制流数据如常见的文件下载application/x-www-form-urlencoded form encType””中默认的encTypeform表单数据被编码为key/value格式发送到服务器表单默认的提交数据的格式 若想要给显示的媒体类型增加优先级则使用 q 来额外表示权重值 1用分号;进行分隔。权重值 q 的范围是 0~1可精确到小数点 后 3 位且 1 为最大值。不指定权重 q 值时默认权重为 q1.0。 Accept-Charset Accept-Charset 首部字段可用来通知服务器用户代理支持的字符集及字符集的相对优先顺序。另外可一次性指定多种字符集。与首部字段 Accept 相同的是可用权重 q 值来表示相对优先级。 常见的有字符集有 UTF-8: Unicode字符编码ISO-8859-1: 拉丁字母表的字符编码 Accept-Encoding Accept-Encoding 首部字段用来告知服务器用户代理支持的内容编码及内容编码的优先级顺序。可一次性指定多种内容编码。 采用权重 q 值来表示相对优先级这点与首部字段 Accept 相同。另外也可使用星号*作为通配符指定任意的编码格式。 常见内容编码 gzip: 由文件压缩程序 gzipGNU zip生成的编码格式 RFC1952采用 Lempel-Ziv 算法LZ77及 32 位循环冗余 校验Cyclic Redundancy Check通称 CRCcompress: 由 UNIX 文件压缩程序 compress 生成的编码格式采用 Lempel- Ziv-Welch 算法LZW。deflate: 组合使用 zlib 格式RFC1950及由 deflate 压缩算法 RFC1951生成的编码格式。identity: 不执行压缩或不会变化的默认编码格式。 浏览器中不允许设置该字段。 Accept-Language 首部字段 Accept-Language 用来告知服务器用户代理能够处理的自然语言集指中文或英文等以及自然语言集的相对优先级。可一次指定多种自然语言集。 和 Accept 首部字段一样按权重值 q 来表示相对优先级。 Authorization 首部字段 Authorization 是用来告知服务器用户代理的认证信息证书值。 Expect 主要用于在发送请求时客户端可以向服务器表明它期待的某种行为。最常见的用途是配合100-continue机制。 100-Continue机制 当客户端发送一个大请求体比如文件上传时可以在请求头中包含Expect: 100-continue。这告诉服务器在处理请求体之前先检查请求的其他部分如请求头。如果服务器准备好接收请求体它会返回一个100 Continue状态码客户端再开始发送请求体。如果服务器不接受请求可能会返回一个错误状态码如417 Expectation Failed这样可以避免发送冗长的请求体从而节省带宽。 From 首部字段 From 用来告知服务器使用用户代理的用户的电子邮件地址。 通常其使用目的就是为了显示搜索引擎等用户代理的负责人的电子邮件联系方式。使用代理时应尽可能包含 From 首部字段但可能会因代理不同将电子邮件地址记录在 User-Agent 首部字段内。 Host Host 会告知服务器请求的资源所处的互联网主机名和端口号。Host 首部字段在 HTTP/1.1 规范内是唯一一个必须被包含在请求内的首部字段。 请求被发送至服务器时请求中的主机名会用 IP 地址直接替换解决。但如果这时相同的 IP 地址下部署运行着多个域名那么服务器就会无法理解究竟是哪个域名对应的请求。因此就需要使用首部字段 Host 来明确指出请求的主机名。 If-Match 形如 If-xxx 这种样式的请求首部字段都可称为条件请求。服务器接收到附带条件的请求后只有判断指定条件为真时才会执行请求。 只有当 If-Match 的字段值跟 ETag 值匹配一致时服务器才会接受请求这两个字段通常用于协商缓存。 If-Modified-Since 如果在 If-Modified-Since 字段指定的日期时间后资源发生了更新服务器会接受请求。 If-Modified-Since 用于确认代理或客户端拥有的本地资源的有效性。获取资源的更新日期时间可通过确认首部字段 Last-Modified 来确定。 If-None-Match 只有在 If-None-Match 的字段值与 ETag 值不一致时可处理该请求。与 If-Match 首部字段的作用相反 If-Range 首部字段 If-Range 属于附带条件之一。它告知服务器若指定的 If-Range 字段值ETag 值或者时间和请求资源的 ETag 值或时间相一致时则作为范围请求处理。反之则返回全体资源。 If-Unmodified-Since 首部字段 If-Unmodified-Since 和首部字段 If-Modified-Since 的作用相 反。它的作用的是告知服务器指定的请求资源只有在字段值内指定的日期时间之后未发生更新的情况下才能处理请求。如果在指定日期时间后发生了更新则以状态码 412 Precondition Failed 作为响应返回。 Max-Forwards 通过 TRACE 方法或 OPTIONS 方法发送包含首部字段 Max-Forwards 的请求时该字段以十进制整数形式指定可经过的服务器最大数目。服务器在往下一个服务器转发请求之前Max-Forwards 的 值减 1 后重新赋值。当服务器接收到 Max-Forwards 值为 0 的请求时则不再进行转发而是直接返回响应。 Proxy-Authorization 接收到从代理服务器发来的认证质询时客户端会发送包含首部字段 Proxy-Authorization 的请求以告知服务器认证所需要的信息。 这个行为是与客户端和服务器之间的 HTTP 访问认证相类似的不同之处在于认证行为发生在客户端与代理之间。客户端与服务器之间的认证使用首部字段 Authorization 可起到相同作用。 Range 对于只需获取部分资源的范围请求包含首部字段 Range 即可告知服务器资源的指定范围。 接收到附带 Range 首部字段请求的服务器会在处理请求之后返回状态码为 206 Partial Content 的响应。无法处理该范围请求时则会返回状态码 200 OK 的响应及全部资源。 Referer 字段 Referer 会告知服务器请求的原始资源的 URI。 TE 首部字段 TE 会告知服务器客户端能够处理响应的传输编码方式及相对优先级。它和首部字段 Accept-Encoding 的功能很相像但是用于传输编码。 首部字段 TE 除指定传输编码之外还可以指定伴随 trailer 字段的分块传输编码的方式。 User-Agent 首部字段 User-Agent 会将创建请求的浏览器和用户代理名称等信息传达给服务器。 响应首部 字段描述Accept-Ranges是否接受字节范围请求Age推算资源创建经过时间ETag资源的匹配信息Location令客户端重定向至指定URIProxy-Authenticate代理服务器对客户端的认证信息Retry-After对再次发起请求的时机要求ServerHTTP服务器的安装信息Vary代理服务器缓存的管理信息WWW-Authenticate服务器对客户端的认证信息 Accept-Ranges 用于指示服务器是否支持范围请求。它允许客户端请求部分资源而不是整个文件常见于大文件下载或视频流。 当服务器在响应中包含Accept-Ranges: bytes时表示它支持字节范围请求。客户端可以通过Range请求头指定所需的部分。 Age 首部字段 Age 能告知客户端源服务器在多久前创建了响应。字段值的单位为秒。 若创建该响应的服务器是缓存服务器Age 值是指缓存后的响应再次发起认证到认证完成的时间值。代理创建响应时必须加上首部字段 Age。 ETag 首部字段 ETag 能告知客户端实体标识。它是一种可将资源以字符串形式做唯一性标识的方式。服务器会为每份资源分配对应的 ETag 值。 当资源更新时ETag 值也需要更新。生成 ETag 值时并没有 统一的算法规则而仅仅是由服务器来分配。 Location 使用首部字段 Location 可以将响应接收方引导至某个与请求 URI 位置不同的资源。 基本上该字段会配合 3xx Redirection 的响应提供重定向的 URI。 几乎所有的浏览器在接收到包含首部字段 Location 的响应后都会强制性地尝试对已提示的重定向资源的访问。 Proxy-Authenticate 首部字段 Proxy-Authenticate 会把由代理服务器所要求的认证信息发送给客户端。 它与客户端和服务器之间的 HTTP 访问认证的行为相似不同之处在于其认证行为是在客户端与代理之间进行的。 Retry-After 首部字段 Retry-After 告知客户端应该在多久之后再次发送请求。主要配合状态码 503 Service Unavailable 响应或 3xx Redirect 响应一起使用。 字段值可以指定为具体的日期时间Wed, 04 Jul 2012 063424 GMT 等格式也可以是创建响应后的秒数。 Server 首部字段 Server 告知客户端当前服务器上安装的 HTTP 服务器应用程序的信息。不单单会标出服务器上的软件应用名称还有可能包括版本号和安装时启用的可选项。 Vary 当代理服务器接收到带有 Vary 首部字段指定获取资源的请求时如果使用的 Accept-Language 字段的值相同那么就直接从缓存返回响应。反之则需要先从源服务器端获取资源后才能作为响应返回。 WWW-Authenticate 首部字段 WWW-Authenticate 用于 HTTP 访问认证。它会告知客户端适用于访问请求 URI 所指定资源的认证方案Basic 或是 Digest和带参数提示的质询challenge。状态码 401 Unauthorized 响应中肯定带有首部字段 WWW-Authenticate。 实体首部 字段描述Allow资源可支持的HTTP方法Content-Encoding实体主体适用的编码方式Content-Language实体主体的自然语言Content-Length实体主体的大小单位字节Content-Location替代对应资源的URIContent-MD5实体主体的报文摘要Content-Range实体主体的位置范围Content-Type实体主体的媒体类型Expires实体主体过期的日期时间Last-Modified资源的最后修改日期时间 Allow 首部字段 Allow 用于通知客户端能够支持 Request-URI 指定资源的所有 HTTP 方法。 当服务器接收到不支持的 HTTP 方法时会以状态码 405 Method Not Allowed 作为响应返回。与此同时还会把所有能支持的 HTTP 方法写入首部字段 Allow 后返回。 Content-Encoding 首部字段 Content-Encoding 会告知客户端服务器对实体的主体部分选用的内容编码方式。内容编码是指在不丢失实体信息的前提下所进行的压缩。 Content-Language 首部字段 Content-Language 会告知客户端实体主体使用的自然语言 指中文或英文等语言。 Content-Length 首部字段 Content-Length 表明了实体主体部分的大小单位是字节。 Content-Location 首部字段 Content-Location 给出与报文主体部分相对应的 URI。和首部字段 Location 不同Content-Location 表示的是报文主体返回资源对应的 URI。 Content-MD5 首部字段 Content-MD5 是一串由 MD5 算法生成的值其目的在于检查报文主体在传输过程中是否保持完整以及确认传输到达。 对报文主体执行 MD5 算法获得的 128 位二进制数再通过 Base64 编码后将结果写入 Content-MD5 字段值。由于 HTTP 首部无法记录二进制值所以要通过 Base64 编码处理。为确保报文的有效性作为接收方的客户端会对报文主体再执行一次相同的 MD5 算法。计算出的值与字段值作比较后即可判断出报文主体的准确性。 Content-Range 针对范围请求返回响应时使用的首部字段 Content-Range能告知客户端作为响应返回的实体的哪个部分符合范围请求。字段值以字节为单位表示当前发送部分及整个实体大小。 Content-Type 首部字段 Content-Type 说明了实体主体内对象的媒体类型。和首部字段 Accept 一样字段值用 type/subtype 形式赋值。 Expires 首部字段 Expires 会将资源失效的日期告知客户端。缓存服务器在接收到含有首部字段 Expires 的响应后会以缓存来应答请求在 Expires 字段值指定的时间之前响应的副本会一直被保存。当超过指定的时间后缓存服务器在请求发送过来时会转向源服务器请求资源。 Last-Modified 首部字段 Last-Modified 指明资源最终修改的时间。 请求中无效的header设置 w3c规定当请求的header匹配以下不安全字符时将被终止 Accept-CharsetAccept-EncodingConnectionContent-LengthCookieCookie2Content-Transfer-EncodingDateExpectHostKeep-AliveRefererTETrailerTransfer-EncodingUpgradeUser-AgentVia
http://www.dnsts.com.cn/news/47239.html

相关文章:

  • 有哪些网站可以做图片打赏广州开发网站报价
  • wordpress 导购站模板长沙百度提升排名
  • 做的网站怎么在电脑上预览广西网站建设贵吗
  • 沈阳响应式网站建设如何设公司产品购物网站
  • 睿艺美开封做网站wordpress query_posts()
  • 石家庄建站程序ppt软件手机版免费下载
  • l礼品文化网站建设网站开发外包费用
  • 网站选择理由描述六安手机网站建设
  • 大型医院设计网站建设musik wordpress
  • 网站放到国外空间智能软件开发就业前景
  • 个人申请网站汕头网站推广教程
  • 怎么做网站代拍平台网站开发公司
  • 广东东远建设工程管理有限公司网站百度智能云官网
  • 国外网站内容去哪些平台做东莞出行政策有变了
  • 做网站收录的网站有哪些物联网软件开发平台
  • 网站建设微信芜湖企业网站制作
  • 网站建设运营公司排行安徽省交通运输厅施平
  • 门户网站 建设 北京 航天做外贸网站哪家的好
  • 企业网站优化做法wordpress 禁止右键
  • 网站内置多语言昆明网站关键词优化
  • 做网站导航多大字号电子商务网站建设软件
  • 潍坊市网站建设企业网络营销的优势
  • 做封面的免费网站国内十大微信小程序开发公司
  • 网站更换主机注意影响搜索排名的核心因素有哪些?
  • 南昌做网站的公司有哪些服装网站建设开题报告
  • 门业网站源码微软雅黑做网站
  • 网站建设与管理专业自我评价可以做线路板网站的背景图
  • 一个网站怎么做软件好用吗企业网站的常见类型有
  • 分类信息网站模板忘记wordpress密码
  • 北京市建设信息网站重庆快速排名优化