【HTTP/1.0】
在20世纪90年代中叶 , 很多流行的Web客户端和服务器都在飞快地向HTTP中添加各种特性 , 以满足快速扩张且在商业上十分成功的万维网的需要 。其中很多特性 , 包括持久的keep-alive连接 , 虚拟主机支持 , 以及代理连接支持都被加入到HTTP之中 , 并成为非官方的事实标准 。这种非正式的HTTP扩展版本通常称为 HTTP/1.0+
【HTTP/1.1】
HTTP/1.1重点关注的是校正HTTP设计中的结构性缺陷 , 明确语义 , 引入重要的性能优化措施 , 并删除一些不好的特性 。HTTP/1.1还包含了对更复杂的Web应用程序和部署方式的支持 。HTTP/1.1是当前使用的HTTP版本
【HTTP-NG(又名HTTP/2.0)】
HTTP-NG是HTTP/1.1后继结构的原型建议 , 它重点关注的是性能的大幅优化 , 以及更强大的服务逻辑远程执行框架 。在与HTTP/1.1完全语义兼容的基础上 , 进一步减少了网络延迟
随着2015年5月14日HTTP/2协议正式版的发布 , 越来越多的网站和第三方CDN服务开始启用HTTP/2 。HTTP/2是新一代的 HTTP , 也是HTTP的未来
状态码
HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作 。HTTP状态码被分成了五大类 , 不同的类型代表不同类别的状态码
1XX Informational(信息性状态码) 表示接收的请求正在处理2XX Success(成功状态码) 表示请求正常处理完毕3XX Redirection(重定向状态码) 表示需要进行附加操作以完成请求4XX Client Error(客户端错误状态码) 表示服务器无法处理请求5XX Server Error(服务器错误状态码) 表示服务器处理请求出错只要遵守状态码类别的定义 , 即使改变RFC2616中定义的状态码 , 或服务器端自行创建状态码都没问题
仅记录在RFC2616上的HTTP状态码就达40种 , 若再加上WebDAV(Web-based Distributed Authoring and Versioning , 基于万维网的分布式创作和版本控制)(RFC4918、5842)和附加HTTP状态码(RFC6585)等扩展 , 数量就达60余种 。但实际上经常使用的大概只有十几种
【1XX】
该部分状态码是信息性状态码 , 只有两个
【2XX】
客户端发起请求时 , 这些请求通常是成功的 。服务器有一组用来表示成功的状态码 , 分别对应不同类型的请求
【3XX】
重定向状态码要么告知客户端使用替代位置来访问他们所感兴趣的资源 , 要么就提供一个替代的响应而不是资源的内容 。如果资源已被移动 , 可发送一个重定向状态码和一个可选的Location首部来告知客户端资源已被移走 , 以及现在可以在哪里找到它 。这样 , 浏览器就可以在不打扰使用者的情况下 , 透明地转入新的位置了
【4XX】
有时客户端会发送一些服务器无法处理的东西 , 比如格式错误的请求报文 , 或者请求一个不存在的URL
浏览网页时 , 我们都看到过404 Not Found错误码——这只是服务器在告诉我们 , 它对我们请求的资源一无所知 。很多客户端错误都是由浏览器来处理的 。只有少量错误 , 比如404 , 还是会穿过浏览器来到用户面前
【5XX】
有时客户端发送了一条有效请求 , 服务器自身却出错了 。这可能是客户端碰上了服务器的缺陷 , 或者服务器上的子元素 , 比如某个网关资源出了错 。代理尝试着代表客户端与服务器进行交流时 , 经常会出现问题 。代理会发布5XX服务器错误状态码来描述所遇到的问题
文章插图
文章插图
文章插图
记录一下 , 随时可以翻阅 , 三天不练手生 , 三天不看眼生 , 好记性不如烂笔头 。
推荐阅读
- MySQL 优化实施方案
- TCP/IP协议分为哪四层,具体作用是什么?http与tcp区别
- 初识铁观音,品茶
- linux下如何自动提升权限
- 详解Https是如何确保安全的
- 使用Python搭建http服务器
- 教你如何防御CC攻击
- Python:如何判断一个url是以http开头的?
- HTTPS 的工作原理
- HTTP,TCP的长连接和短连接以及socket