一.http协议主要特点
1简单快速:url是固定的
2灵活:通过http协议可以完成不同数据类型传输
3无连接:连接一次就会断掉,不会保持连接
4无状态:客户端和服务端是两种身份,两种不会互相干扰
二.http报文
请求报文(发送请求):请求行(http方法+页面地址+http协议+版本)+请求头(key+value+...)+空行(隔离请求头和请求体)+请求体
响应报文(回应请求):状态行+响应头+空行+相应体
三.http方法
1.get:获取资源
2.post:传输资源
3.put:更新资源
4.delete:删除资源
5.head:获取报文首部
四.post和get区别
1.get在浏览器回退时不会重复提交,post相反
2.get产生的url可以被收藏,post反之
3.get会被浏览器主动缓存,post反之
4.get的url会被完整保存在浏览器记录中,post反之
5.get请求参数长度有限制,post没有
6.get比post更不安全,参数直接被暴露在url上
五.http状态码
1..:指示信息,表示请求已接收,继续处理
2..:成功
3..:重定向
4..:客户端错误
5..:服务器错误
200:客户端请求成功
206:播放视频或者音频文件很大
301(永久重定向):所有请求页面已经转移到新的url
302(临时重定向):所有页面临时转移到新的url
304:可以从浏览器缓存中获取,不用向服务器发送请求
400:客户端有语法错误,不被服务器理解
401:请求为被授权
403:请求页面禁止被访问
404:请求资源不存在
500:服务器错误
503:服务器临时过载,一段时间后恢复正常
六http持久连接
keep-alive模式,http1.1版本支持持久连接,可以避免每一次请求都新建立连接
七.管线化
在持久连接情况下,请求模式不是请求一次相应一次,而是将所有请求打包一次发送,所有响应一次回复
正常情况下:请求1>响应1>请求2>响应2>请求3>响应3
管线化:请求1>请求2>请求3>响应1>响应2>响应3
特点:
1.通过持久连接完成
2.只有get和head请求可以管线化,post有所限制
3.初次创建连接时不应气筒管线化
4.管线化不会影响响应顺序
5.服务端必须支持管线化