当前位置:   article > 正文

http知识整理_如何使五元组不发生变化,发送多个http请求攻击

如何使五元组不发生变化,发送多个http请求攻击

1 http相关协议

HTTP,DNS(应用层)->TCP(传输层)->IP(网络层)

2 报文

组成:报文首部(请求行/状态行 首部字段),空行,报文主体

报文首部:

请求报文

GET / HTTP/1.1

首部字段

响应报文

HTTP/1.1304 Not Modified

首部字段

首部字段

HTTP首部字段详解_hizyk的博客-CSDN博客_http首部字段

通用
请求
响应
实体

3 状态码

类别原因短语

1XX

Informational(信息性)

接收的请求正在处理

2XX

Success

200OK
204No Content服务器成功接收处理,但不返回主体部分
206Partial Content成功返回范围请求

3XX

Redirection

301Moved Permanently永久性重定向
302Found临时性重定向
303See Other同302,区别:明确表示以GET方法重定向
304Not Modified

采用GET方法的请求报文中包含If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since中任一首部 

发生的请求不满足条件,返回304,不返回主体部分

307Temporary Redirect同302,禁止POST变换成GET

4XX

Client Error

服务器无法处理请求

400Bad Request报文中存在语法错误
401Unauthorized需要通过HTTP认证或认证失败
403Forbidden对请求资源的访问被服务器拒绝
404Not Found服务器上无法找到请求资源

5XX

Server Error

服务器处理请求出错

500Internal Server Error服务器端错误
503Service Unavailable服务器无法处理请求(超负荷或停机维护)

4 HTTPS

HTTP+SSL=HTTPS

加密、认证、完整性保护

1 加密方式:1 公开密钥加密方式交换密钥 2 共享密钥加密方式交互报文

2 公开密钥真实性确认

1 浏览器事先植入常用认证机关的公开密钥

2 服务器公钥---登录数字证书认证机构(CA)--->

CA颁发公钥证书(服务器公钥+用CA私钥和服务器公钥生成数字签名)----->

服务器--发送公钥证书-->

客户端,用CA公钥验证公钥证书上的数字签名,以确认服务器公钥的真实性

5 http2.0

HTTP1.x有以下几个主要缺点:

  1. HTTP/1.0一次只允许在一个TCP连接上发起一个请求,HTTP/1.1使用的流水线技术也只能部分处理请求并发,仍然会存在队列头阻塞问题,因此客户端在需要发起多次请求时,通常会采用建立多连接来减少延迟。
  2. 单向请求,只能由客户端发起。
  3. 请求报文与响应报文首部信息冗余量大。
  4. 数据未压缩,导致数据的传输量大

优点:

1 二进制分帧

改进传输性能,实现低延迟高吞吐量,关键之一就是在应用层(HTTP)和传输层(TCP)之间增加一个二进制分帧层。

流是连接中的一个虚拟信道,可以承载双向消息传输,客户端发起的流具有奇数ID,服务器端发起的流具有偶数ID

在二进制分帧层上,http2.0会将所有传输信息分割为更小的消息和帧,并对它们采用二进制格式的编码将其封装,新增的二进制分帧层同时也能够保证http的各种动词,方法,首部都不受影响,兼容上一代http标准。其中,http1.X中的首部信息header封装到Headers帧中,而request body将被封装到Data帧中。

2 首部压缩

  • http1大量头部信息每次都要重复发送,http2通讯双方各自缓存一份头部字段表。每次只将变化的部分加入到header帧中,更新到头部字段表中。
  • 1 http2专门设计了HPACK算法压缩头部。

http2的HPACK算法使用一份索引表来定义常用的http Header,请求的时候便只需要发送在表里的索引位置即可。

3 多路复用

HTTP1.x

缺点:浏览器限制同一个域名下的请求数量,超过限制数目的请求会被阻塞。

解决方式:雪碧图、使用多个域名等方式

HTTP2.0

有了分帧机制后,可以同时通过一条http2连接发起多重的请求-响应消息,每个数据流都拆分成很多互不依赖的帧,而这些帧可以乱序发送,在另一端根据流标识符和首部将他们重新组装起来。

所以http2不再依赖多个TCP连接去实现多流并行了,http2.0 连接都是持久化的,客户端与服务器之间每个域名一个连接即可。

4 请求优先级

把http消息分为很多独立帧之后,就可以通过优化这些帧的交错和传输顺序进一步优化性能。每个流都可以带有一个31比特的优先值:0 表示最高优先级;2的31次方-1 表示最低优先级。

5 服务器推送

服务器可以对一个客户端请求发送多个响应                                                                                                                                                                                                

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/217831
推荐阅读
相关标签
  

闽ICP备14008679号