HTTP 协议的主要特点
- 简单快速
- 灵活
- 无连接
- 无状态(在HTTP协议上,是无法区分两次连接者的身份)
HTTP 报文的组成部分
image.png[注]
- 请求行:HTTP方法、页面地址、HTTP协议、版本
- 请求头:key value
- 空行: 发送回车符和换行符,通知服务器以下不再有请求头
HTTP 方法
image.pngPOST 和 GET 的区别
重点:
- GET 在浏览器回退时是无害的,而 POST 会再次提交请求
- GET 请求会被浏览器主动缓存,而 POST 不会,除非手动设置
- GET 请求参数会被完整保留在浏览器历史记录里,而 POST 中的参数不会被保留
- GET 请求在URL中传送的参数是有长度限制的,而 POST 没有限制
- GET 参数通过 URL 传递,POST 放在 Request body 中
次要:
- GET 产生的URL地址可以被收藏,而 POST 不可以
- GET 请求只能进行 url 编码,而 POST 支持多种编码方式
- 对参数的数据类型,GET 只接受 ASCII 字符,而 POST 没有限制
- GET 比 POST 更不安全,因为参数直接暴露在 URL 上,所有不能用来传递敏感信息
HTTP 状态码
1xx:指示信息 - 表示请求已经接收,继续处理
2xx:成功 - 表示请求已被成功接收
3xx:重定向 - 要完成请求必须进行更进一步的操作
4xx:客户端错误 - 请求有语法错误或请求无法实现
5xx:服务器错误 - 服务器未能实现合法的请求
举例:
image.png
image.png
什么是持久连接
HTTP 协议采用 “请求 - 应答” 模式,当使用普通模式,即非 Keep - Alive 模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议)
当使用 Keep - Alive 模式(有称持久化连接、连接重用)时,Keep - Alive 功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,keep - Alive 功能避免了建立或者重新建立连接
[注] HTTP 1.1版本支持持久连接
什么是管线化
在使用持久连接的情况下,某个连接上消息的传递类似于
请求1 > 响应1 > 请求2 > 响应2 > 请求3 > 响应3
管线化:如某个连接上的消息变成了类似这样
请求1 > 请求2 > 请求3 > 响应1 > 响应2 > 响应3
特点:
image.png
[注] 前三点比较重要
网友评论