一、HTTP协议的主要特点:
- 简单快速
- 灵活
- 无连接
- 无状态
二、HTTP报文的组成部分
三、HTTP方法
GET和POST的区别
- GET在浏览器回退时是无害的,而POST会再次请求
- GET产生的URL地址可以被收藏,而POST不行
- GET请求会被浏览器主动缓存,而POST不行,需要手动设置
- GET请求只能进行URL编码,而POST支持多种编码
- GET请求参数会被完整保存在浏览器历史记录里,而POST中的参数不会被保留
- GET请求在URL中传输的参数是有长度限制的,而POST没有
- GET参数通过URL传递,POST放在Request body中
- 对参数的数据类型,GET只接收ASCII字符,而POST没有限制
- POST比GET更安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息
三、HTTP状态码
四、HTTP持久连接
HTTP协议采用“请求-应答”模式,当使用普通模式时,即非Kepp-Alive模式时,每个请求/应答客户都要和服务器新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议)。
当使用Keep-Alive模式(又称持久连接、连接重用)时,Keep-Alive功能使客户端到服务器的连接持续有效,当出现对服务器的后继请求时,Keep-Alive避免了建立或重新建立连接。
HTTP/1.1支持使用Keep-Alive,HTTP/1.0并不支持。
五、管线化
- 管线化机制通过持久连接完成,仅HTTP/1.1支持此技术
- 只有GET和HEAD请求可以进行管线化,而POST则有所限制
- 初次创建连接时不应启动管线机制,因为对方(服务器)并不一定支持HTTP/1.1版本的协议
- 管线化不会影响响应到来的顺序,如上面的图片所示,响应返回的顺序并未改变
- HTTP/1.1要求服务器支持管线化,但并不要求服务器对响应也进行管线化处理,只是要求对于管线化的请求不失败即可