一、http历史
1.http/0.9
2.http/1.0:一个http请求(建tcp连接,操作,tcp连接关闭)
3.http/1.1(目前使用最广泛):
- 持久连接(TCP连接可先不关)
- pipeline(浏览器默认关闭)
- 增加了host和其他命令
4.https:用公钥加密,服务端用私钥解密
5.http/2
- 所有数据以二进制传输(分帧传输)
- 同个连接发送请求不再按顺序来返回处理
- 信道复用:只有一个tcp连接
- Server Push:服务端可主动推送一些内容给客户端
- 头信息压缩
二、http报文格式
1.请求报文
首行(method 路由 协议)
首部(headers)
2.响应报文
首行(协议 状态码)
首部(headers)
空行(以区分headers和body)
主体部分
3.http code
301:永久移动,服务器返回此响应时,会自动将请求转到新位置;
302:临时移动;
304:未修改,自从上次请求后,请求的网页未修改,服务器返回此相应时,不会返回网页内容;
400:服务器不理解请求语法;
401:无权限;
403:服务器拒绝请求;
404:找不到;
500:服务器内部错误;
502:错误网关(服务器是网关);
503:服务不能用;
504:网关超时;
505:http版本不支持;
三、http headers
1.Cache-Control
public/private/no-cache
max-age/s-maxage/max-stale
must-revalidate/proxy-revalidate
no-store/no-transform
2.last-Modified
3.Etag
4.Set-Cookie/cookie(属性有以下)
- max-age
- expires
- secure
- HttpOnly
5.session
6.Connection(有两个值)
- keep-alive(长连接)
- close
7.数据协商
请求
- Accept
- Accept-Encoding
- Accept-Langage
- User-Agent
返回
- Content-Type
- Content-Encoding
- Content-Langage