赞
踩
HTTP,DNS(应用层)->TCP(传输层)->IP(网络层)
组成:报文首部(请求行/状态行 首部字段),空行,报文主体
报文首部:
请求报文 | GET / HTTP/1.1 首部字段 |
响应报文 | HTTP/1.1304 Not Modified 首部字段 |
首部字段
HTTP首部字段详解_hizyk的博客-CSDN博客_http首部字段
通用 | ![]() |
请求 | ![]() |
响应 | ![]() |
实体 | ![]() |
类别 | 原因短语 | |
---|---|---|
1XX | Informational(信息性) | 接收的请求正在处理 |
2XX | Success | |
200 | OK | |
204 | No Content | 服务器成功接收处理,但不返回主体部分 |
206 | Partial Content | 成功返回范围请求 |
3XX | Redirection | |
301 | Moved Permanently | 永久性重定向 |
302 | Found | 临时性重定向 |
303 | See Other | 同302,区别:明确表示以GET方法重定向 |
304 | Not Modified | 采用GET方法的请求报文中包含If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since中任一首部 发生的请求不满足条件,返回304,不返回主体部分 |
307 | Temporary Redirect | 同302,禁止POST变换成GET |
4XX | Client Error | 服务器无法处理请求 |
400 | Bad Request | 报文中存在语法错误 |
401 | Unauthorized | 需要通过HTTP认证或认证失败 |
403 | Forbidden | 对请求资源的访问被服务器拒绝 |
404 | Not Found | 服务器上无法找到请求资源 |
5XX | Server Error | 服务器处理请求出错 |
500 | Internal Server Error | 服务器端错误 |
503 | Service Unavailable | 服务器无法处理请求(超负荷或停机维护) |
HTTP+SSL=HTTPS
加密、认证、完整性保护
1 加密方式:1 公开密钥加密方式交换密钥 2 共享密钥加密方式交互报文
2 公开密钥真实性确认
1 浏览器事先植入常用认证机关的公开密钥
2 服务器公钥---登录数字证书认证机构(CA)--->
CA颁发公钥证书(服务器公钥+用CA私钥和服务器公钥生成数字签名)----->
服务器--发送公钥证书-->
客户端,用CA公钥验证公钥证书上的数字签名,以确认服务器公钥的真实性
HTTP1.x有以下几个主要缺点:
优点:
1 二进制分帧
改进传输性能,实现低延迟高吞吐量,关键之一就是在应用层(HTTP)和传输层(TCP)之间增加一个二进制分帧层。
流是连接中的一个虚拟信道,可以承载双向消息传输,客户端发起的流具有奇数ID,服务器端发起的流具有偶数ID
在二进制分帧层上,http2.0会将所有传输信息分割为更小的消息和帧,并对它们采用二进制格式的编码将其封装,新增的二进制分帧层同时也能够保证http的各种动词,方法,首部都不受影响,兼容上一代http标准。其中,http1.X中的首部信息header封装到Headers帧中,而request body将被封装到Data帧中。
2 首部压缩
http2的HPACK算法使用一份索引表来定义常用的http Header,请求的时候便只需要发送在表里的索引位置即可。
3 多路复用
HTTP1.x
缺点:浏览器限制同一个域名下的请求数量,超过限制数目的请求会被阻塞。
解决方式:雪碧图、使用多个域名等方式
HTTP2.0
有了分帧机制后,可以同时通过一条http2连接发起多重的请求-响应消息,每个数据流都拆分成很多互不依赖的帧,而这些帧可以乱序发送,在另一端根据流标识符和首部将他们重新组装起来。
所以http2不再依赖多个TCP连接去实现多流并行了,http2.0 连接都是持久化的,客户端与服务器之间每个域名一个连接即可。
4 请求优先级
把http消息分为很多独立帧之后,就可以通过优化这些帧的交错和传输顺序进一步优化性能。每个流都可以带有一个31比特的优先值:0 表示最高优先级;2的31次方-1 表示最低优先级。
5 服务器推送
服务器可以对一个客户端请求发送多个响应
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。