文章目录
1 定义
HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器
1.1 面试题:从url输入到页面渲染经过了什么?
- 浏览器分析URL
- 浏览器向DNS请求解析IP地址
- DNS解析出IP地址
- 浏览器与服务器建立TCP连接
- 浏览器发出命令
- 服务器响应
- 释放TCP连接
- 浏览器显示
2 特点
2.1HTTP协议是无状态(无记忆)
的
但是在实际工作中,一些万维网站点长长希望能够识别用户
Cookie是存储在用户主机中的文本文件,记录一段时间内某用户的访问记录
2.2 HTTP采用TCP作为运输层协议
但是HTTP协议本身是无连接的
(通信双方在交换HTTP报文之前不需要先建立
HTTP连接)
3 连接方式
3.1 持久连接
3.2 非持久连接
4 HTTP1.0与HTTP1.1区别
长连接
:HTTP1.0默认是短连接,若需要设置长连接,则需要设置keep-live参数;HTTP1.1默认是长连接,这样减少创建连接的开销,提高了效率
( HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响。因此最好能维持一个长连接,可以用个长连接来发多个请求)。
节约带宽
:HTTP 1.1支持只发送header信息(不带任何body信息)
HOST域
:现在可以web server例如tomat,设置虚拟站点是非常常见的,也即是说,web server上的多个虚拟站点可以共享同一个ip和端口。HTTP1.0是没有host域
的,HTTP1.1才支持这个参数。
5 HTTP1.1与HTTP2.0区别
多路复用
:HTTP2.0采用了多路复用技术。可以并发处理多个请求,支持的并发请求数量就会更多
数据压缩
:HTTP1.1不支持header数据的压缩,HTTP2.0使用HPACK算法对header的数据进行压缩,这样数据体积小了,在网络上传输就会更快。
服务器推送
:HTTP2.0中服务器端推动数据的时候,会顺便把一些客户端需要的资源一起推送到客户端,免得客户端再次创建连接发送请求到服务器端获取,这种方式就很适合加载静态资源,不用再走网络获取,速度快得多