目录
HTTP vs HTTPS
区别
HTTP
HTTP 协议通信过程
HTTPS
SSL/TLS
对称加密
HTTP 1.0 、1.1、2.0
HTTP长连接与短连接
短连接:
长连接:
操作步骤
HTTP vs HTTPS
区别
-
HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。
-
HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
-
两者的默认端口不一样,HTTP 默认端口号是 80,HTTPS 默认端口号是 443。
-
HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。
HTTP
全称超文本传输协议,就是用来规范超文本的传输
HTTP 是一个无状态协议,也就是说服务器不维护任何有关客户端过去所发请求的消息。这其实是一种懒政,有状态协议会更加复杂,需要维护状态(历史信息),而且如果客户或服务器失效,会产生状态的不一致,解决这种不一致的代价更高。
HTTP 协议通信过程
-
服务器在 80 端口等待客户的请求。
-
浏览器发起到服务器的 TCP 连接(创建套接字 Socket)。
-
服务器接收来自浏览器的 TCP 连接。
-
浏览器(HTTP 客户端)与 Web 服务器(HTTP 服务器)交换 HTTP 消息。
-
关闭 TCP 连接。
HTTPS
是 HTTP 的加强安全版本。HTTPS 是基于 HTTP 的,也是用 TCP 作为底层协议,并额外使用 SSL/TLS 协议用作加密和安全认证。默认端口号是 443.
SSL/TLS
SSL/TLS 的核心要素是非对称加密。非对称加密采用两个密钥——一个公钥,一个私钥。在通信时,私钥仅由解密者保存,公钥由任何一个想与解密者通信的发送者(加密者)所知。
对称加密
使用 SSL/TLS 进行通信的双方需要使用非对称加密方案来通信,但是非对称加密设计了较为复杂的数学算法,在实际通信过程中,计算的代价较高,效率太低,因此,SSL/TLS 实际对消息的加密使用的是对称加密。
HTTP 1.0 、1.1、2.0
HTTP是一种用于在客户端和服务器之间传输数据的协议。、
HTTP/1.0:
-
无连接:浏览器的每次请求都需要与服务器建立一个TCP连接,服务器处理完成后立即断开TCP连接
-
无状态:服务器不跟踪每个客户端也不记录过去的请求
HTTP/1.1:
-
引入了持久连接,即在单个连接上可以发送多个请求/响应。
-
支持请求头部压缩(使用gzip或deflate压缩算法),减少了数据传输量。
-
支持管道化(pipelining),即可以在一个连接上并发发送多个请求,提高了性能。
-
引入了分块传输编码(chunked transfer encoding),可以实时传输数据而无需等待整个响应完成。
-
支持虚拟主机(virtual hosting)和断点续传(byte serving)等功能。
-
不支持服务器主动推送。
HTTP/2.0:
-
引入了二进制分帧层,将数据切分为更小的帧进行传输。
-
使用单个连接来并发处理多个请求和响应,消除了串行阻塞的问题。
-
支持请求头部压缩(使用HPACK压缩算法),减少了数据传输量。
-
引入了服务器推送,服务器可以主动将相关资源推送给客户端。
-
支持流的优先级设置,可以指定哪些请求优先处理,提高了页面加载的效率。
-
支持头部压缩表,提供了更高效的头部信息传输。
-
支持服务器推送和多路复用等功能,提升了性能和效率。
HTTP长连接与短连接
HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。
短连接:
在HTTP/1.0中默认使用短链接,也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。如果客户端访问的某个HTML或其他类型的Web资源,如 JavaScript文件、图像文件、 CSS 文件等。当浏览器每遇到这样一个Web资源,就会建立一个HTTP会话.
优缺点:
短连接对于服务器来说管理较为简单,存在的连接都是有用的连接,不需要额外的控制手段。但如果客户请求频繁,将在TCP的建立和关闭操作上浪费时间和带宽。
长连接:
从HTTP/1.1起,默认使用长连接,用以保持连接特性。
在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的 TCP连接不会关闭。如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。
优点:
-
减少连接建立和断开的开销:长连接在建立后可以持续使用,避免了每次请求都需要建立和断开连接的开销,减少了网络通信的延迟和资源消耗。
-
提高数据传输效率:由于长连接可以进行多次请求和响应,避免了每次请求都需要进行握手的过程,减少了额外的数据传输量。
-
提供实时性和即时通信能力:长连接可以实现实时数据推送和即时通信,服务器可以主动向客户端推送数据,实现实时更新和通知。
-
节省服务器资源:长连接可以减少服务器的负载,因为不需要频繁地建立和断开连接,服务器可以更高效地处理多个客户端的请求。
缺点:
-
占用资源较长时间:长连接会持续占用服务器和客户端的资源,包括网络连接、内存和处理线程等。如果长时间不活动,可能会造成资源浪费。
-
长连接维护的复杂性:长连接需要维护连接的状态和保持心跳,确保连接的可靠性和稳定性。这涉及到连接的管理、超时处理和错误恢复等问题,增加了系统的复杂性。
-
可能导致连接的过度占用:如果长连接的数量过多,可能会占用服务器的连接数上限,导致新的连接无法建立。这需要合理设置连接数的上限和管理策略。
-
可能存在网络拥塞问题:长连接在持续通信时,如果网络出现拥塞或丢包,可能会影响整个连接的稳定性和性能。
操作步骤
短连接的操作步骤是:建立连接——数据传输——关闭连接…建立连接——数据传输——关闭连
接长连接的操作步骤是:建立连接——数据传输…(保持连接)…数据传输——关闭连接
学习计划安排
我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~
这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!
如果你对网络安全入门感兴趣,那么你需要的话可以
点击这里👉【整整282G!】网络安全&黑客技术小白到大神全套资料,免费分享!
①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析