01. HTTP协议的主要特点、报文组成、请求方法
<script type="text/javascript">
01. HTTP协议的主要特点
01. 简单快速、灵活
02. 无连接: 建立连接完成传输后就会断掉;
03. 无状态: 不能区分多次连接的身份;
02. HTTP报文的组成部分
01. 请求报文: 请求行、请求头、空行、请求体
01. 请求行: 包含HTTP方法、页面地址、HTTP协议、版本
02. 请求头: key值 / 空行: 分割请求头与请求体 / 请求体:
02. 响应报文: 状态行、响应头、空行、响应体
01. 状态行: 包含HTTP方法、页面地址、HTTP协议、版本
02. 响应头: key值 / 响应头: 分割请求头与请求体 / 响应体: 文档部分
03. HTTP方法
01. GET(获取资源) / POST(传输资源)
02. PUT(更新资源) / DELETE(删除资源)
03. HEAD(获得报文首部)
</script>
02. POST与GET的区别
03. HTTP状态码
04. 什么是HTTP持久连接及管线化
<script type="text/javascript">
06. 什么是HTTP持久连接:
01. 条件
HTTP是支持 持久连接的, 前提是1.1版本的, 1.0版本不支持
02. 特征: HTTP协议采用'请求-应答'模式,
01. 当使用普通模式, 即非Keep-Alive模式时,
每个请求/应答 客户端和服务器都要建立一个新连接,完成后立即断开连接(HTTP为无效协议)
02. 当使用Keep-Alive模式时,
Keep-Alive 功能使客户端到服务器端的连接持续有效,
当出现对服务器的后继请求时, Keep-Alive 功能避免了建立或者重新建立连接
07. 管线化
01. 概念
在使用持久化连接的情况下, 某个连接上消息的传递类似于
请求1->响应1 -> 请求2->响应2 -> 请求3->响应3
某个连接上的消息变成了类似这样
请求1->请求2->请求3 -> 响应1->响应2->响应3
02. 重点
01. 管线化机制 通过 持久连接 完成,仅HTTP/1.1支持此技术;
02. 只有GET和HEAD请求可以进行管线化, 而POST则有所限制;
03. 初次创建连接时, 不应启动管线化机制, 因为服务器不一定支持HTTP/1.1版本的协议;
04. HTTP/1.1版本 要求服务器支持管线化, 但不要求服务器端也对响应进行管线化, 只要管线化请求不失败;
05. 由于:
服务器不一定支持HTTP1.1版本, 开启管线化并不会带来大幅度的性能提升,
很多服务器和代理程序对管线化的支持并不好,
所以:
Chrome与Firefox默认不开启管线化支持
</script>