基本介绍
HTTP(HyperText Transfer Protocol,超文本传输协议)是目前使用范围最广的网络协议之一。
HTTP从最初的诞生到现在为止,共有以下版本
- 0.9(最初的版本,现已基本不在使用)
- 1.0(初期标准,但该协议标准至今 仍被广泛使用)
- 1.1(目前主流的 HTTP 协议版本)
- 2.0(还在制定中)
HTTP在计算机网络的层次中,按照TCP/IP模型分层是属于应用层
TCP/IP模型是对计算机网络整体体系结构的一种分层划分,分层的主要目的是为了最大降低计算机网络体系模块与模块之间的耦合性
特点
-
HTTP连接是无状态的,即HTTP连接不会保存之前的连接状态
这样设计的主要目的是为了更加灵活HTTP的使用 但是现实需要保存HTTP的连接状态,比如记录用户的登录状态。于是就引入了Cookies技术,来管理连接状态
-
持续连接
随着HTTP的广泛使用,HTTP的请求次数变得越来越多 为了减少HTTP连接所带来的代价,于是在HTTP1.1版本就引入了持续连接 持续连接就是:只要连接双方都没有提出断开连接的请求,则就会一直保持tcp的连接状态
-
管线化
客户端在发送HTTP请求时,可以不必等待服务端对HTTP的响应,可以直接进行下一个HTTP请求
实际运用
-
HTTP现在广泛应用于客户端和服务端数据的交换中。
-
客户端通过发送HTTP请求将数据发送给服务端,而服务端则根据HTTP请求做出相应响应,返回给客户端
-
HTTP协议能够明确区分哪端是客户端,哪端是服务端
-
请求必定是由客户端发出,而服务端回复响应
-
客户端发送http的请求叫做请求报文
-
服务端根据http的请求报文而做出的响应叫做响应报文
1. 请求报文的数据结构
请求方法 URI HTTP版本
可选的请求首部字段
内容实体
常见的请求方法如下表所示
请求方法名 | 相关说明 |
---|---|
GET | 获取资源(最常用的) |
POST | 传输实体主体(最常用的) |
PUT | 传输文件 |
HEAD | 获取报文首部 |
DELETE | 删除文件 |
OPTIONS | 询问支持的方法 |
TRACE | 追踪路径。该方法是让Web服务器端将之前的请求通信还给客户端的方法(很少用) |
CONNECT | 要求用隧道协议连接代理(很少用) |
2. 响应报文的数据结构
HTTP版本 状态码 状态码的原因短语
可选的响应首部字段
主体
响应状态码的分类如下表所示
类别 | 原因短语 | |
---|---|---|
1XX | informational(信息性状态码) | 接收的请求正在接收 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务端无法处理请求 |
5XX | Server Error(服务端错误状态码) | 服务端请求出错 |