http的发展历程 (http的标准及原理)

本文包含了我的HTTP系列的所有参考。如果您需要快速查找某些HTTP状态代码的含义,此引用可能会有所帮助。这也是我自己的一种备忘单,因为有很多信息要记住。所以我希望这对你也有帮助。

http的读音,http的发展历程

您可以找到对HTTP的引用:

  • 请求方法

  • 状态码

  • MIME类型

请求方法

HTTP请求方法列表(动词)。

请求方法

方法 描述 有身体?
CONNECT 此规范保留方法名称CONNECT,以便与可以动态切换为隧道(例如SSL隧道)的代理一起使用。 没有
删除 DELETE方法请求源服务器删除由Request-URI标识的资源。 没有
得到 GET方法检索任何信息(以实体的形式)由Request-URI标识。 没有
HEAD方法与GET相同,只是服务器不能在响应中返回消息体。 没有
OPTIONS OPTIONS方法代表请求关于Request-URI所标识的请求/响应链上可用的通信选项的信息。 没有
POST POST方法用于请求源服务器接受请求中包含的实体作为Request-Line中Request-URI标识的资源的新下属。
PUT方法请求将封闭的实体存储在提供的Request-URI下。
跟踪 TRACE方法用于调用请求消息的远程应用层环回。 没有

状态码

这两个表格定义了状态代码范围(分类)并描述了所有的状态代码。

状态代码分类

整体范围 定义的范围 类别
100-199 100-101 信息化
200-299 200-206 成功
300-399 300-305 重定向
400-499 400-415 客户端错误
500-599 500-505 服务器错误

状态码

状态码 理由短语 含义
100 继续 请求的最初部分已收到,客户应继续。
101 交换协议 服务器正在将客户端指定的协议更改为升级标题中列出的协议。
200 请求没问题。
201 创建 资源已创建(用于创建服务器对象的请求)。
202 公认 该请求已被接受,但服务器尚未对其执行任何操作。
203 非权威信息 事务是可以的,除了实体头部中包含的信息不是来自原始服务器,而是来自资源的副本。
204 无内容 响应消息包含标题和状态行,但没有实体主体。
205 重置内容 另一个主要用于浏览器的代码; 基本上意味着浏览器应该清除当前页面上的任何HTML表单元素。
206 部分内容 部分请求已成功。
300 多种选择 客户已请求实际引用多个资源的URL。此代码与选项列表一起返回; 用户然后可以选择他想要的一个。
301 永久移动 所请求的URL已被移动。响应应该包含指示资源现在驻留的位置URL。
302 发现 就像301状态码一样,但这只是暂时的。客户端应该使用位置标题中给出的URL来暂时查找资源。
303 见其他 告诉客户应该使用不同的URL获取资源。这个新的URL位于响应消息的位置标题中。
304 未修改 客户可以根据它们包含的请求标题来提出请求。此代码表示资源未更改。
305 使用代理服务器 资源必须通过代理访问,代理的位置在位置标题中给出。
306 (没用过) 此状态码目前未被使用。
307 临时重定向 像301状态码一样; 但是,客户端应该使用位置标题中给出的URL来临时查找资源。
400 错误的请求 告诉客户它发送了格式错误的请求。
401 擅自 与合适的标题一起返回,要求客户端在获取对资源的访问权限之前进行身份验证。
402 需要付款 目前这个状态码没有被使用,但它已被留出以供将来使用。
403 被禁止 该请求被服务器拒绝。
404 未找到 服务器找不到请求的URL。
405 方法不允许 使用请求的URL不支持的方法发出请求。允许标题应包含在响应中,以告诉客户端请求的资源允许哪些方法。
406 不能接受的 客户可以指定他们愿意接受的实体类型的参数。当服务器没有资源与客户端可以接受的URL匹配时使用此代码。
407 需要代理验证 像401状态码一样,但用于需要对资源进行身份验证的代理服务器。
408 请求超时 如果客户端需要很长时间才能完成请求,则服务器可以发回此状态码并关闭连接。
409 冲突 该请求正在导致资源发生一些冲突。
410 像404状态码一样,除了服务器曾经拥有资源。
411 长度要求 服务器在请求消息中需要Content-Length标头时使用此代码。服务器不接受没有Content-Length头的资源请求。
412 先决条件失败 如果客户端发出条件请求并且其中一个条件失败,则返回此响应代码。
413 请求的实体太大 客户端发送了一个比服务器可以或想要处理的实体主体更大的实体主体。
414 请求URI太长 客户端发送的请求的请求URL大于服务器可以或想要处理的请求URL。
415 不支持的媒体类型 客户端发送了服务器不理解或支持的内容类型的实体。
416 请求范围不满足 请求消息请求一定范围的给定资源,该范围无效或无法满足。
417 期望失败 该请求包含了期望请求头中的期望,服务器无法满足该期望。
500 内部服务器错误 服务器遇到阻止它处理请求的错误。
501 未实现 客户端发出超出服务器功能的请求。
502 错误的网关 充当代理或网关的服务器遇到来自请求响应链中下一个链接的假响应。
503 暂停服务 服务器目前无法处理请求,但将来可以使用。
504 网关超时 与408状态码类似,不同之处在于响应来自网关或代理,该网关或代理已超时等待来自其他服务器的请求的响应。
505 不支持HTTP版本 服务器收到一个它不能或不会支持的协议版本的请求。

HTTP请求和HTTP响应都可以包含标题字段。这两个表格描述了这些字段并提供了简单的示例。

请求标头

领域 描述
接受 可用于指定响应可接受的某些媒体类型 接受:text / plain
接收字符 指示响应可接受哪些字符集 Accept-Charset:utf-8
接受编码 与Accept类似,但限制了响应中可接受的内容编码。 Accept-Encoding:gzip,deflate
接受语言 与Accept类似,但限制了作为响应首选的一组自然语言。 接受语言:en-US
授权 HTTP认证的认证凭证。 授权:基本QWxhZGRpbjpvcGVuIHNlc2FtZQ ==
缓存控制 用于指定请求 - 响应链上所有缓存机制必须遵守的指令。 缓存控制:无缓存
连接 允许发送者指定特定连接所需的选项,并且不能通过代理通过其他连接进行通信。 连接:保持活跃
内容编码 内容编码主要用于允许压缩文档而不会丢失其基础媒体类型的身份。 内容编码:gzip
曲奇饼 服务器先前使用Set-Cookie发送的HTTP cookie(如下)。 Cookie:$ Version = 1;
内容长度 请求主体的长度以八位字节为单位(8位字节)。 内容长度:1024
内容-MD5 Base64编码的二进制MD5请求主体内容的总和。 Content-MD5:Q2hlY2sgSW50ZWdyaXR5IQ ==
内容类型 请求主体的MIME类型(与POST和PUT请求一起使用)。 内容类型:application / x-www-form-urlencoded
日期 邮件发送的日期和时间。 日期:2012年6月19日,星期二10:10:10 GMT
期望 表示客户端需要特定的服务器行为。 期待:100次继续
发出请求的用户的电子邮件地址。 来自:codemazeblog@gmail.com
主办 服务器的域名(用于虚拟主机)以及服务器正在侦听的TCP端口号。如果端口是所请求服务的标准端口,则可以省略端口号。自HTTP / 1.1以来强制执行。 主持人:code-maze.com
如果-匹配 只有在客户端提供的实体与服务器上的相同实体匹配时才执行操作。这主要是为了像PUT这样的方法,只有在用户上次更新后才更新资源。 如果匹配:“737060cd8c284d8af7ad3082f209582d”
If-Modified- Since 如果内容未更改,则允许返回304未修改。 If-Modified-Since:星期六,1994年10月29日19:43:31 GMT
如果 - 无 - 匹配 如果内容未更改,则允许返回304未修改。 If-None-Match:“737060cd8c284d8af7ad3082f209582d”
如果量程 如果实体没有变化,请寄给我缺少的部分; 否则,请将整个新实体发送给我。 如果 - 范围:“737060cd8c284d8af7ad3082f209582d”
如果 - 未修改 - 因为 如果实体自特定时间以来未被修改,则仅发送响应。 If-Unmodified-Since:星期六,1994年10月29日19:43:31 GMT
马克斯 - 前锋 限制消息可以通过代理或网关转发的次数。 最大前锋:10
起源 发起跨源资源共享请求(向服务器请求“Access-Control-Allow-Origin”响应字段)。 起源:http://www.code-maze.com
附注 特定于实现的头文件可能在请求 - 响应链中的任何位置具有各种效果。 Pragma:无缓存
代理授权 连接到代理的授权凭证。 代理授权:基本QWxhZGRpbjpvcGVuIHNlc2FtZQ ==
范围 只请求实体的一部分。字节从0开始编号。 范围:字节= 500-999
引荐 这是之前网页的地址,从中可以看到当前请求页面的链接。(在RFC中以及大多数实现中,“referrer”一词拼写错误。) Referer:http://www.code-maze.com
TE 用户代理愿意接受的传输编码:可以使用与响应头TE相同的值,加上“trailers”值(与“chunked”传输方法有关),以通知服务器它期望接收额外的头文件(预告片)在最后一个零大小的块之后。 TE:拖车,放气
升级 请求服务器升级到另一个协议。 升级:HTTPS / 1.3,IRC / 6.9,RTA / x11,websocket
用户代理 用户代理的用户代理字符串 用户代理:Mozilla / 5.0(X11; Linux x86_64; rv:12.0)Gecko / 20100101 Firefox / 12.0
通过 通知服务器发送请求的代理服务器。 Via:1.0 fred,1.1 example.com(Apache / 1.1)
警告 关于实体主体可能存在的问题的一般警告。 警告:199杂项警告

响应标题

领域 描述
访问控制允许来源 指定哪些网站可以参与跨源资源共享 访问控制 - 允许 - 来源:*
接受-范围 允许服务器指示其接受资源的范围请求。 接受范围:字节
年龄 传达发件人对源服务器生成响应(或其重新生效)以来的时间量的估计。 年龄:24岁
允许 列出由Request-URI标识的资源支持的一组方法。该字段的目的是严格通知收件人与资源相关的有效方法。 允许:GET,HEAD,PUT
缓存控制 告诉所有从服务器到客户端的缓存机制,他们是否可能缓存这个对象。它以秒为单位进行测量 缓存控制:最大年龄= 3600
连接 连接所需的选项 连接:关闭
内容编码 数据上使用的编码类型。请参阅HTTP压缩。 内容编码:gzip
内容语言 内容所在的语言。 内容语言:en
内容长度 响应主体的长度(八位字节)(8位字节) 内容长度:1024
内容位置 返回数据的备用位置 内容 - 位置:/index.htm
内容-MD5 Base64编码的二进制MD5响应内容的总和 Content-MD5:Q2hlY2sgSW50ZWdyaXR5IQ ==
内容处置 有机会为二进制格式的已知MIME类型提出“文件*载下**”对话框,或为动态内容建议一个文件名。引号是特殊字符所必需的。 内容处理:附件; 文件名= “fname.ext”
内容范围 这部分消息属于全身消息 内容范围:字节21010-47021 / 47022
内容类型 此内容的MIME类型 内容类型:text / html; 字符集= utf-8的
日期 邮件发送的日期和时间 日期:2017年6月17日星期日10:11:12 GMT
ETag的 特定版本资源的标识符,通常是消息摘要 ETag:“737060cd8c284d8af7ad3082f209582d”
过期 给出响应被视为陈旧的日期/时间 到期时间:日期:2017年6月17日星期日10:11:12 GMT
上一次更改 RFC 2822 forma中请求对象的最后修改日期 Last-Modified:Date:Sun,17 Jun 2017 10:11:12 GMT
链接 用于表示与其他资源的类型化关系,其中关系类型由RFC 5988定义 链接:; 的rel = “备用”
位置 用于重定向或创建新资源时。 位置:http://www.code-maze.com/index.html
P3P 此头文件应以P3P:CP =“your_compact_policy”的形式设置隐私首选项目(P3P)策略平台。然而,P3P并没有起飞,大多数浏览器都没有完全实现它,很多网站用假策略文本设置了这个头部,这足以欺骗浏览器P3P策略的存在并授予第三方Cookie的权限。 P3P:CP =“这不是P3P政策!有关详细信息,请参阅http://www.google.com/support/ accounts / bin / answer.py?hl = zh_CN&answer = 151657”。
附注 特定于实现的头文件可能在请求 - 响应链中的任何位置具有各种效果。 Pragma:无缓存
代理服务器进行身份验证 请求身份验证以访问代理。 代理验证:基本
刷新 用于重定向或创建新资源时。此刷新在5秒后重定向。这是一个专有的,非标准的头部扩展,由Netscape引入并且受到大多数Web浏览器的支持。 刷新:5; URL = HTTP://www.code-maze.com/index.html
重发后 如果一个实体暂时不可用,这将指示客户在指定的时间段(秒)后再次尝试。 重试 - 之后:240
服务器 服务器的名称 服务器:Apache / 2.4(Unix)
设置Cookie 设置一个HTTP Cookie Set-Cookie:UserID = 1; 最大年龄= 3600; 版本= 1
严格的转移,安全 HSTS策略通知HTTP客户端要缓存仅HTTPS策略需要多长时间,以及这是否适用于子域。 Strict-transfer-Security:max-age = 16070400;includeSubDomains
预告片 Strict-transfer-Security:max-age = 16070400;includeSubDomains 预告片:Max-Forwards
传输编码 用于安全地将实体传送给用户的编码形式。目前定义的方法是:分块,压缩,缩小,gzip,身份。 传输编码:分块
变化 告诉下游代理如何匹配未来的请求头,以决定是否可以使用缓存的响应,而不是从原始服务器请求新的响应。 变化:*
通过 通知客户端发送响应的代理服务器。 Via:1.0 mick,1.1 baselogic.com(Apache / 2.4)
警告 关于实体主体可能存在的问题的一般警告。 关于实体主体可能存在的问题的一般警告。
WWW身份验证 指示应该用于访问请求实体的认证方案。 WWW-Authenticate:Basic

MIME类型

由于互联网媒体类型的数量巨大,这里列出了最常用的一些。

常见的主要MIME类型

类型 描述
应用 应用程序特定的内容格式(离散型)
音频 音频格式(离散型)
化学 化学数据集(离散IETF扩展类型)
图片 图像格式(离散型)
信息 消息格式(复合类型)
模型 三维模型格式(离散IETF扩展类型)
多个对象的集合(复合类型)
文本 文本格式(离散型)
视频 视频电影格式(离散型)

常见的应用程序MIME类型

类型 描述
应用/原子+ xml的 Atom Feeds
应用/的ECMAScript ECMAScript / JavaScript(相当于application / javascript,但有更严格的处理规则)
应用程序/ JSON JavaScript对象表示法JSON
应用程序/ JavaScript的 ECMAScript / JavaScript(等同于应用程序/ ecmascript但具有更宽松的处理规则)它不被IE 8或更早版本接受
应用/八位字节流 未分类的二进制数据。
应用程序/ PDF格式 便携式文档格式
应用程序/后记 后记
应用/ RSS + xml的 RSS订阅
应用/肥皂+ xml的 肥皂
应用/字体WOFF Web打开字体格式
应用/ XHTML + xml的 XHTML
应用/ XML-DTD 文档类型定义(DTD)文件
应用/ XOP + xml的 XML二进制优化打包(XOP)
应用程序/压缩 ZIP档案文件
应用程序/ gzip的 Gzip已

常见的多部分MIME类型

类型 描述
多部分/混合 MIME电子邮件
多部分/格式数据 MIME Webform

常见的文本MIME类型

类型 描述
文/ CSS 层叠样式表。
文/ CSV 逗号分隔值
text / html的 HTML文件
纯文本/ 文本数据
文/ XML 可扩展标记语言