1. HTTP的特点

无连接,无状态,可传输任何类型数据。

HTTP1.1 版本后支持可持续连接。

2. HTTP的交互流程

HTTP 的交互流程一般分为四个步骤(一次完整的请求)

  1. 客户端和服务端建立连接;
  2. 客户端发送求送数据到服务端(遵循 HTTP 协议);
  3. 服务端处理客户端请求,响应客户端(遵循 HTTP 协议);
  4. 关闭客户端和服务端的连接(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 服务器当前不能处理客户端的请求,一段时间后可可能恢复正常