1. HTTP的特点
无连接,无状态,可传输任何类型数据。
HTTP1.1 版本后支持可持续连接。
2. HTTP的交互流程
HTTP 的交互流程一般分为四个步骤(一次完整的请求)
- 客户端和服务端建立连接;
- 客户端发送求送数据到服务端(遵循 HTTP 协议);
- 服务端处理客户端请求,响应客户端(遵循 HTTP 协议);
- 关闭客户端和服务端的连接(HTTP1.1 后不会立即关闭)。
3. HTTP的请求格式
4. HTTP的请求方法
Methods | Functions | Versions |
---|---|---|
GET | 请求指定的页面信息,返回实体主体 | 1.0 |
HEAD | 类似 GET 请求,只不过返回的响应中没有具体内容,用于获取报头 | 1.0 |
POST | 向指定资源提交数据进行处理请求(例如提交表单或上传文件)。数据被包含在请求体中。POST 请求可能导致新的资源建立和已有资源的修改。 | 1.0 |
PUT | 从客户端向服务器传送的数据取代指定文档的内容 | 1.1 |
CONNECT | HTTP1.1 中预留给能够将连接改为管道方式的代理服务器 | 1.1 |
OPTIONS | 允许客户端查看服务器性能 | 1.1 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断 | 1.1 |
DELETE | 请求服务器删除指定的页面 | 1.1 |
GET 和 POST 的区别:
- GET 的请求数据连接在 url 后面(以 ‘?’ 分隔),请求体为空。不安全。HTTP 虽然没有规定请求数据的大小,但是浏览器对 url 的长度是有限制的,所以 GET 请求不能携带大量数据。GET 效率比 POST 高。
- POST 请求数据在请求实体中发送,在 url 中看不到具体的请求数据。安全。适合数据量大的数据发送。POST 效率比 GET 低。
5. HTTP 的响应格式
6. HTTP 状态码
状态码 | 含义 |
---|---|
1xx | 表示通知信息的,如请求收到了或正在处理。 |
2xx | 表示成功,如接受或者知道了。 |
3xx | 表示重定向,如果完成请求还需要进⼀步⾏动。 |
4xx | 表示客户的差错,如请求中有错误的语法或不能完成。 |
5xx | 表示服务器差错,如服务器失效⽆法完成请求。 |
常见状态码:
状态码 | 名称 | 含义 |
---|---|---|
202 | OK | 客户端请求成功 |
400 | Bad Request | 客户端请求有语法错误,不能被服务器理解 |
401 | Unauthorized | 请求未经授权,这个状态码必须和 WWW-Authenticate 报头域一起使用 |
403 | Forbidden | 服务器收到请求,但是拒绝提供服务 |
404 | Not Found | 请求资源不存在。eg:输入了错误的 url。 |
500 | Internal Server Error | 服务器发生不可预期的错误 |
503 | Server Unavailable | 服务器当前不能处理客户端的请求,一段时间后可可能恢复正常 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 GuKaifeng's Blog!
评论(延迟加载 / 需要可访问 GitHub Issues)