HTTP介绍
# http协议
HTTP 0.9
已过时。只接受 GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。由
于该版本不支持 POST 方法,所以客户端无法向服务器传递太多信息。
HTTP 1.0
这是第一个在通讯中指定版本号的 HTTP 协议版本,至今仍被广泛采用,特别是在代理
服务器中。
HTTP 1.1
当前版本。持久连接被默认采用,并能很好地配合代理服务器工作。还支持以管道方式
同时发送多个请求,以便降低线路负载,提高传输速度。
HTTP/1.1 相较于 HTTP/1.0 协议的区别主要体现在:
- 缓存处理
- 带宽优化及网络连接的使用
- 错误通知的管理
- 消息在网络中的发送
- 互联网地址的维护
- 安全性及完整性
HTTP 2.0
HTTP 2.0 即超文本传输协议 2.0,是下一代 HTTP 协议。是由互联网工程任务组(IETF)的 Hypertext Transfer Protocol Bis (httpbis)工作小组进行开发。是自 1999 年 http1.1 发布后的首个更新。HTTP 2.0 在 2013 年 8 月进行首次合作共事性测试。在开放互联网上 HTTP 2.0 将只用于 https://网址,而 http://网址将继续使用 HTTP/1,目的是在开放互联网上增加使用加密技术,以提供强有力的保护去遏制主动攻击。DANE RFC6698 允许域名管理员不通过第三方 CA 自行发行证书。
# http方法
- get 从服务器向客户端发送命名资源
- put 将来自客户端的数据存储到一个命名的服务器资源中去
- delete 从服务器中删除命名资源
- post 将客户端数据发送到一个服务器网关应用程序
- head 仅发送命名资源响应中的http首部
GET :从指定的服务器上获取数据,请求能被缓存,请求会保存在浏览器的浏览记录里,请求要有长度的限制,主要用于获取数据,查询的字符串会显示在 URL 中,不安全
POST :提交数据给指定服务器处理,请求不能被缓存,请求不会保存在浏览器的浏览记录里,请求没有长度的限制,查询的字符串不会显示在 URL 中,比较安全
# http状态码
当使用浏览器访问某一个 URL,会根据请求 URL 返回状态码。
- 通常整正常的状态码为 2xx,3xx(如 200)
- 如果出现异常会返回 4xx,5xx(如 404)
信息(1字头)
代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束
- 100 continue 客户端应当继续发送请求
- 101 switching protocols 服务器已经理解客户端的请求,并将通过 Upgrade 消息头通知客户端采用不同的协议来完成这个请求
- 102 processing 由 WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行
成功(2字头)
- 200 ok 请求成功
- 201 create 请求已经被实现,而且有一个新的资源已经依据请求的需要而建立
- 202 accepted 服务器已接受请求,但尚未处理
重定向(3字头)
- 301 永久重定向
- 302 临时重定向
客户端错误(4字头)
- 400 1.语义有误 2.请求参数有误
- 401 当前请求需要用户验证
- 403 服务器拒绝执行请求,没有相应的权限
- 404 请求失败,请求所希望得到的资源未被在服务器上发现
- 408 请求超时
服务端错误(5字头)
- 500 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理
- 502 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应
- 503 由于临时的服务器维护或者过载,服务器当前无法处理请求,这个状况是临时的,并且将在一段时间以后恢复
- 504 作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI 标识出的服务器,例如 HTTP、FTP、LDAP)或者辅助服务器(例如 DNS)收到响应