HTTP 简介
HTTP协议是消息系统的应用层协议, 是驱动Web的核心。
HTTP协议定义了供客户端和服务器在网络上传输信息的统一接口,让它们无需了解执行的具体细节。
HTTP协议是为支持动态变化的系统而设计的,可以容忍一点程度的延迟和陈旧(版本)。这种设计允许中间层(代理服务器)介入通讯,提供各种功能,例如缓存、压缩、以及路由分发选择。万维网规模庞大,而网络拓扑持续展开,延迟不可避免,而HTTP协议因其特性,符合万维网的理想协议。
HTTP 是一个基于TCP/IP 通讯协议来传输数据。
HTTP 消息交换
基于HTTP 协议的系统以一种无状态的方式, 使用请求/ 响应模式进行消息交换。
HTTP 消息交换过程 :
1、首先, HTTP 客户端生成一个HTTP请求,这个HTTP请求是一个消息, 其中包括一个HTTP版本,一个访问资源的URL, 请求标头(Header),和一个HTTP方法,还可以包含一个可选的实体正文。
2、这个请求随后被发送到资源所在的源服务器。服务器查看URL和HTTP方法, 以判断自己是否能够处理这个消息。
3、服务器完成消息处理后, 就生成一个HTTP响应。HTTP响应包含HTTP版本,响应标头, 可选的实体主体, 一个状态码。同样,客户端也会检查响应标头, 使用其描述信息对消息进行处理。
HTTP 方法
HTTP协议提供了一组标准方法, 作为资源访问的接口。HTTP方法是HTTP请求的一部分。
- GET
从资源获取信息。如果成功返回资源,服务器应该返回200(OK),支持服务器缓存。 - HEAD
只返回响应标头。 - POST
请求服务器接受消息中包含的实体, 交由目标资源处理。 - DELETE
请求服务器移除指定的URL所代表的实体。
HTTP标准方法具有以下优势:
- 只要HTTP资源遵循协议规范,任何HTTP客户端都可以与其交互。
- 服务器可以优化。代理服务器和web服务器可以选择一些方法提供优化。例如: 缓存代理知道GET请求可以缓存,因此, 如果你发出一个GET请求,代理就可以返回一个缓存的资源标识,不需要把请求发送到服务器,减轻服务器压力。
HTTP 方法的属性
HTTP方法可以具有以下的附加属性。
安全
- 使用安全的HTTP方法发送请求,用户可以使用这个方法安全的发送请求,不用担心无意间修改了系统状态。GET、HEAD。
幂等 - 通过幂等 方法对资源 发出一次请求,与多次请求效果相同。按照定义,所有的安全方法都是幂等的。GET、HEAD、PUT、DELETE、PATCH。
可缓存 - 可缓存方法可以从中间层缓存处, 获取对之前请求缓存的响应。GET、HEAD。
HTTP 优点和缺点
优点:
- 支持客户端/服务器模式
- 应用广泛、跨平台
- 简单快速
缺点:
- 明文传输
- 不安全 (HTTPS通过引入SSL/TLS层,解决这个隐患)
HTTPS
HTTPS:是以安全为目标的 HTTP 通道,是 HTTP 的安全。HTTPS 的安全基础是 SSL。SSL 协议位于 TCP/IP
协议与各种应用层协议之间,为数据通讯提供安全支持。
HTTP 状态码
- 200 – 请求成功
- 301 – 资源(网页等)被永久转移到其它URL
- 404 – 请求的资源(网页等)不存在
- 500 – 内部服务器错误