HTTP协议的主要特点
- 支持客户/服务器模式。
- 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
- 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
- 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
- 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
HTTP报文的组成部分
- 请求报文
- 响应报文
HTTP方法
GET 告知服务器,需要从服务器向客户端发送命名资源
HEAD 仅发送命名资源响应中的HTTP首部
PUT 将客户端的数据存储的命名的服务器资源中
POST 将客户端数据发送到一个服务器应用程序
TRACE 追溯一个请求
OPTIONS 查看服务器对资源支持的操作
DELETE 从服务器删除资源
GET和POST的区别
-
get参数通过url传递,post放在request body中。
-
get请求在url中传递的参数是有长度限制的,而post没有。
-
get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息。
-
get请求只能进行url编码,而post支持多种编码方式
-
get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留。
状态码
类别 | 原因短语 | |
---|---|---|
1xx | Informational(信息性状态码) | 接收的请求正在处理 |
2xx | Success(成功状态码) | 请求正常处理完毕 |
3xx | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4xx | Client Error(客户端错误状态码) | 服务器无法处理请求 |
5xx | Server Error(服务器错误状态码) | 服务器处理请求出错 |
HTTP管线化
定义:客户端可以发送多次请求到服务端,而不需要等待上一次请求得到响应的时候才能进行下一次请求。实现并行发送请求
仅有http1.1规范支持http管线化,1.0并不支持.