看完让你有一种恍然大悟醍醐灌顶的感觉 http服务器是什么?( 八 )


此属性的默认值是 unknown,表示表单的字符集与包含表单的文档的字符集相同 。
常用的字符集有: UTF-8 - Unicode 字符编码 ; ISO-8859-1 - 拉丁字母表的字符编码
Accept-Language
首部字段 Accept-Language 用来告知服务器用户代理能够处理的自然语言集(指中文或英文等),以及自然语言集的相对优先级 。 可一次指定多种自然语言集 。 和 Accept 首部字段一样,按权重值 q来表示相对优先级 。
Accept-Language: en-US,en;q=0.5请求标头我们大概就介绍这几种,后面会有一篇文章详细深挖所有的响应头的,下面是一个响应头的汇总,基于 HTTP 1.1
响应标头响应标头是可以在 HTTP 响应种使用的 HTTP 标头,这听起来是像一句废话,不过确实是这样解释 。 并不是所有出现在响应中的标头都是响应标头 。 还有一些特殊的我们上面说过,有通用标头和实体标头也会出现在响应标头中,比如 Content-Length 就是一个实体标头,但是,在这种情况下,这些实体请求通常称为响应头 。 下面以一个例子为例和你探讨一下响应头
200 OKAccess-Control-Allow-Origin: *Connection: Keep-AliveContent-Encoding: gzipContent-Type: text/html; charset=utf-8Date: Mon, 18 Jul 2016 16:06:00 GMTEtag: "c561c68d0ba92bbeb8b0f612a9199f722e3a621a"Keep-Alive: timeout=5, max=997Last-Modified: Mon, 18 Jul 2016 02:36:04 GMTServer: ApacheSet-Cookie: mykey=myvalue; expires=Mon, 17-Jul-2017 16:06:00 GMT; Max-Age=31449600; Path=/; secureTransfer-Encoding: chunkedVary: Cookie, Accept-Encodingx-frame-options: DENY响应状态码
首先出现的应该就是 200 OK,这是 HTTP 响应标头的状态码,它表示着响应成功完成 。 HTTP 响应标头的状态码有很多,并做了如下规定
以 2xx 为开头的都表示请求成功响应 。
状态码含义200成功响应204请求处理成功,但是没有资源可以返回206对资源某一部分进行响应,由Content-Range 指定范围的实体内容 。
以 3xx 为开头的都表示需要进行附加操作以完成请求
状态码含义301永久性重定向,该状态码表示请求的资源已经重新分配 URI,以后应该使用资源现有的 URI302临时性重定向 。 该状态码表示请求的资源已被分配了新的 URI,希望用户(本次)能使用新的 URI 访问 。 303该状态码表示由于请求对应的资源存在着另一个 URI,应使用 GET 方法定向获取请求的资源 。 304该状态码表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但未满足条件的情况 。 307临时重定向 。 该状态码与 302 Found 有着相同的含义 。
以 4xx 的响应结果表明客户端是发生错误的原因所在 。
状态码含义400该状态码表示请求报文中存在语法错误 。 当错误发生时,需修改请求的内容后再次发送请求 。 401该状态码表示发送的请求需要有通过 HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息 。 403该状态码表明对请求资源的访问被服务器拒绝了 。 404该状态码表明服务器上无法找到请求的资源 。
以 5xx 为开头的响应标头都表示服务器本身发生错误
状态码含义500该状态码表明服务器端在执行请求时发生了错误 。 503该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求 。
Access-Control-Allow-Origin
一个返回的 HTTP 标头可能会具有 Access-Control-Allow-Origin ,Access-Control-Allow-Origin 指定一个来源,它告诉浏览器允许该来源进行资源访问 。 否则-对于没有凭据的请求 *通配符,告诉浏览器允许任何源访问资源 。 例如,要允许源 https://mozilla.org 的代码访问资源,可以指定:
Access-Control-Allow-Origin: https://mozilla.orgVary: Origin如果服务器指定单个来源而不是 *通配符的话 ,则服务器还应在 Vary 响应标头中包含 Origin ,以向客户端指示 服务器响应将根据原始请求标头的值而有所不同 。
Keep-Alive
上面我们提到,HTTP 报文标头会分为四种,这其实是按着上下文来分类的
还有一种分类是根据代理进行分类,根据代理会分为端到端头 和 逐跳标头
而 Keep-Alive 表示的是 Connection 非持续连接的存活时间,如下
Connection: Keep-AliveKeep-Alive: timeout=5, max=997Keep-Alive 有两个参数,它们是以逗号分隔的参数列表,每个参数由一个标识符和一个由等号 = 分隔的值组成 。
timeout:指示空闲连接必须保持打开状态的最短时间(以秒为单位) 。
max:指示在关闭连接之前可以在此连接上发送的最大请求数 。
上述 HTTP 代码的意思就是限制最大的超时时间是 5s 和 最大的连接请求是 997 个 。

推荐阅读