HTTP协议介绍
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出。
HTTP事务处理过程
HTTP是基于客户/服务器(C/S)模式,且是面向连接的。典型的HTTP事务处理有如下的过程:
(1)客户与服务器建立连接;
(2)客户向服务器提出请求;
(3)服务器接受请求,并根据请求返回相应的文件作为应答;
(4)客户与服务器关闭连接。
请求方法
由三部分组成,分别是:请求行、消息报头、请求正文.
请求方法 | 说明 |
---|---|
GET | 请求获取Request-URI所标识的资源(向服务器获取资源) |
POST | 在Request-URI所标识的资源后附加新的数据(要求被请求服务器接受附在请求后面的数据, 常用于提交表单) |
HEAD | 请求获取由Request-URI所标识的资源的响应消息报头 |
PUT | 请求服务器存储一个资源, 并用Request-URI作为其标识 |
DELETE | 请求服务器删除Request-URI所标识的资源 |
TRACE | 请求服务器回送收到的请求信息,主要用于测试或诊断 |
CONNECT | 保留将来使用 |
OPTIONS | 请求查询服务器的性能,或者查询与资源相关的选项和需求 |
响应状态
在接收和解释请求消息后,服务器返回一个HTTP响应消息。
HTTP响应由三个部分组成,分别是:状态行、消息报头、响应正文。
状态码前缀
状态码前缀 | 说明 | 描述 |
---|---|---|
1xx | 指示信息 | 表示请求已接收,继续处理 |
2xx | 成功 | 表示请求已被成功接收、理解、接受 |
3xx | 重定向 | 要完成请求必须进行更进一步的操作 |
4xx | 客户端错误 | 请求有语法错误或请求无法实现 |
5xx | 服务器端错误 | 服务器未能实现合法的请求 |
常见状态码
状态码 | 说明 | 描述 |
---|---|---|
200 | OK | 客户端请求成功 |
400 | Bad Request | 客户端请求有语法错误, 不能被服务器所理解 |
401 | Unauthorized | 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用(被请求的页面需要用户名和密码) |
403 | Forbidden | 服务器收到请求,但是拒绝提供服务 |
404 | Not Found | 请求资源不存在(服务器无法找到被请求的页面) |
500 | Internal Server Error | 请求未完成。服务器发生不可预期的错误 |
503 | Server Unavailable | 服务器当前不能处理客户端的请求,一段时间后可能恢复正常(请求未完成。服务器临时过载或宕机) |