百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

HTTP、HTTPS、SSL/TLS概述

nanshan 2024-11-18 15:15 8 浏览 0 评论


概念

HTTP

解释: Hypertext Transfer Protocal, 超文本传输协议,属于TCP/IP第五层、OSI第七层协议栈。是B/S架构应用体系中应用最广的协议。
用法:在要访问的URL或URI前,加http://即可。
优点:规则统一,便于使用,消耗较小。
缺点:明文传输,很容易被中间人拦截(窃听、篡改、冒充),不安全。
默认端口:80

HTTPS

解释:Secure HTTP,即HTTP + 安全套件(SSL、TLS、Cert等)
用法:需要在访问的URL或URI前,加https://即可。(前提是该网站已加过安全套件)
优点:规则统一,便于使用,且由于对信息加密,安全性较高。
缺点:消耗较大,需要管理安全套件
默认端口:443

SSL/TLS

解释:SSL(Secure Sockets Layer), TLS(Transport Layer Security), 均为安全套件, TLS用于替代SSL。
作用:
所有信息加密传播,第三方无法窃听
完整性校验机制,因此无法篡改传输内容
对身份进行验证,防止冒充
优点:安全
缺点:消耗大,需要维护
最常用:TLS1.1 TLS1.2

具体过程

HTTP(基于TCP连接)

1.1 建立连接的三次握手


第一次握手:客户端发SYNbit包,指明客户端要访问的端口;并发出初始序列号X;然后客户端进入SYN_SENT状态。

? 第二次握手:服务器发ACK包应答,即SYNbit和ACKbit均为1;ACK应答设置为x+1;Seq为y ;然后服务器进入SYN_RCVD状态。

? 第三次握手:客户端发ACK包确认收到,故ACKbit为1,ACKnum为y+1,进入Establish状态;服务器收到这个包后,也进入Establish状态,TCP连接建立。

1.2 断开连接的四次挥手


第一次挥手:客户端发送离线请求,即FINbit=1;表明自己不会主动发数据了,但是可以收数据;然后客户端进入FIN_WAIT_1状态。
? 第二次挥手:服务器收到此请求并回复,即ACKbit=1,ACKnum=x+1;表明自己已接收断开连接的请求,但是尚未准备好关闭连接;然后服务器进入CLOSE_WAIT状态。客户端收到此确认包之后,进入FIN_WAIT_2状态。
? 第三次握手:服务器做好关闭连接的准备,并发送断开连接的请求,故ACKbit=1, seq=y;然后服务器进入LAST_ACK状态。
? 第四次握手:客户端收到此请求后发送确认包,进入TIMED_WAIT状态;服务器收到断开连接的确认包后,断开连接,并进入CLOSED阶段。客户端在2个最大生命周期内未收到回复时,会断开与服务器的连接,并将状态置于CLOSED。

HTTPS(基于TLS)

由于HTTPS是基于HTTP的,只是加了一步认证的过程。所以此处只讲加密这一部分。

对于HTTPS的加密,TLS使用的是公私钥+证书的方式。

具体的图示如下:


第一次握手:客户端向服务器发送ClientHello请求。
? 可提供以下信息:
? 1) 支持的协议版本,例如TLS1.0
? 2) 一个客户端生成的随机数,稍后用于生成"对话密钥"。
? 3) 支持的加密方法,比如RSA公钥加密。
? 4) 支持的压缩方法。

? 第二次握手:服务器回应客户端的请求。
? 可提供以下信息:
? 1) 确认使用的加密通信协议版本,比如TLS 1.0版本。如果浏览器与服务器支持的版本不一致,服务器关闭加密通信。
? 2) 一个服务器生成的随机数,稍后用于生成"对话密钥"。
? 3) 确认使用的加密方法,比如RSA公钥加密(包含在服务器证书里)。
? 4) 服务器证书。

? 第三次握手:客户端回应。如果证书有问题(不是可信任机构颁发、实际域名不一致、证书过期等),就会报出一个警告来;如果证书没问题,就会提供以下信息给服务器:
? 1) 一个随机数。该随机数用服务器公钥加密,防止被窃听。
? 2) 编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。
? 3) 客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供服务器校验。

? 上面三次握手有三个随机数,可用来生成本次连接的会话密钥。

? 第四次握手:服务器收到客户端的第三个随机数pre-master key之后,计算生成本次会话所用的"会话密钥"。
? 1) 编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。
? 2) 服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供客户端校验。

至此,TLS的加密完成。之后的通讯采用HTTP方式进行,只不过明文都需要被加密。

相关推荐

HTTP 和 HTTPS 有何不同?一文带你全面了解

随着互联网时代的高速发展,Web服务器和客户端之间的安全通信需求也越来越高。HTTP和HTTPS是两种广泛使用的Web通信协议。本文将介绍HTTP和HTTPS的区别,并探讨为什么HTTPS已成为We...

HTTP和HTTPS的区别?

本文主要讲解http和https的关系与区别,分辨不清区别的同学要注意朝下看完,Web面试中最常问的已到面试题~~一.HTTP和HTTPS的相同点:大多数情况下,HTTP和HTTPS是相同的,...

详解HTTP协议与RESTFUL

1.HTTP简介http协议是一种超文本传输协议,主要应用在浏览器与服务器之间的通信,可以传输文本,图片,视频等。它是一种应用层协议,也是基于TCP协议,当然现在流行的Https协议是在TLS或SSL...

http与https的区别,读完之后,大部分程序员收藏了...

在URL前加https://前缀表明是用SSL加密的。你的电脑与服务器之间收发的信息传输将更加安全。Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。http和ht...

JMeter测试HTTP GET请求(附实例)

一、HTTPRequest配置项解析●WebServer:1.Protocol[http]:○若为HTTP协议可以不填写(默认为HTTP);○若为HTTPS协议可以填写“https”;还可...

2019山东高考分数线公布:本科文503 理443

刚刚,2019年山东高考各批次录取最低分数线公布了!6月24日下午,山东省教育厅举行2019年山东高考第二场新闻发布会。山东省教育招生考试院在发布会上公布了山东今年高招各批次录取控制分数线。其中,本科...

Linux系统网站出现503错误提示怎么解决?

当Linux系统上的网站出现503ServiceUnavailable错误时,通常表示服务器暂时无法处理请求,可能由后端服务崩溃、资源耗尽或配置错误导致。以下是系统化的排查和解决方案:一、...

三石说:一文带你了解Https

今天我们继续深入http,本篇将介绍Https的内容,相信你看过之后对https有一定的了解。HTTPSHTTPS(全称:HyperTextTransferProtocoloverSecu...

HTTP与HTTPS的区别

首先,需要知道HTTP和HTTPS是什么。HTTP是超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,是互联网上应用最为广泛的一种网络协议。也...

Caddy服务器开启HTTP/3:如何让你的网站快如闪电?

Caddy服务器开启HTTP/3:如何让你的网站快如闪电?在互联网技术飞速迭代的今天,HTTP/3正以革命性的姿态颠覆传统网络传输模式。作为首个基于QUIC协议的HTTP标准,它不仅能大幅提升网站加载...

HTTP/1.1、HTTP/2、HTTP/3 演变

HTTP基本概念HTTP是超文本传输协议,也就是HyperTextTransferProtocol。HTTP常见的状态码有哪些?1xx类状态码属于提示信息,是协议处理中的一种中间状态,实际...

HTTP/3 黑科技:三次握手如何进阶 QUIC?30 年通信细节揭秘

大家好,我是“极客运维社”的飞哥,点击右上方“关注”,每天和大家分享关于网络设备及系统和企业组网方面干货。码字不易,如果您觉得文章还可以,就点赞+关注+收藏吧,也许在以后某个时间能够用得到。H...

总结HTTP/HTTPS协议基础的有那些漏洞,怎么检查,怎么防范

以下是基于黑盒测试、白盒测试和灰盒测试视角对HTTP/HTTPS协议漏洞检查与防范的分类整理:一、黑盒测试(外部视角,无内部权限)定义:模拟攻击者视角,仅通过外部网络接口进行测试,不依赖系...

什么是HTTP? HTTP 和 HTTPS 的区别?

HTTP(HyperTextTransferProtocol),即超文本运输协议,是实现网络通信的一种规范。HTTP是一个传输协议,即将数据由A传到B或将B传输到A,并且A与B之间能够存...

一篇文章搞懂HTTP和HTTPS的的本质区别

http协议是基于tcp协议,默认是80端口。它的特点是什么?它是基于请求和响应的,大家抓个包能看到http协议有一个请求报文有一个响应报文,还有它是一个无状态的协议,还有一个无连接的协议。无连接是指...

取消回复欢迎 发表评论: