HTTP 和 HTTPS

news/2024/10/21 5:43:52/

一.HTTP

HTTP(Hypertext Transfer Protocol)是一种用于在网络上传输超文本(Hypertext)和其他资源的应用层协议。HTTP是Web中最常用的协议之一,它使得浏览器可以请求和显示网页,也允许服务器传送网页内容和其他资源给客户端浏览器。以下是HTTP的详细介绍:

  1. HTTP的工作方式

    • 请求-响应模型:HTTP基于客户端-服务器模型工作。客户端(通常是Web浏览器)向服务器发送HTTP请求,服务器然后返回HTTP响应,其中包含所请求的数据。
  2. HTTP的版本

    • HTTP/1.0:最早的HTTP版本,已经过时,不再广泛使用。
    • HTTP/1.1:广泛使用的版本,支持持久连接,提高了性能。
    • HTTP/2:引入了多路复用和头部压缩等性能优化特性。
    • HTTP/3:基于UDP协议的新一代HTTP版本,旨在进一步提高性能和安全性。
  3. URL(Uniform Resource Locator):HTTP使用URL来定位和标识要获取的资源。URL包括协议(例如http://)、主机名(服务器地址)、端口号(默认80)、路径和查询参数等组件。

  4. HTTP请求

    • HTTP请求由请求行、请求头部、空行和请求体组成。
    • 请求行包括请求方法(GET、POST、PUT等)、URL和HTTP协议版本。
    • 请求头部包括一系列键值对,用于传递附加信息,如用户代理、Cookie、和其他自定义头部。
    • 请求体通常用于POST请求,包含要发送给服务器的数据,如表单数据或JSON。
  5. HTTP响应

    • HTTP响应由状态行、响应头部、空行和响应体组成。
    • 状态行包括协议版本、状态码和状态消息。
    • 响应头部包括服务器信息、响应时间、内容类型和其他元数据。
    • 响应体包含实际的数据,如HTML文档、图像、JSON等。
  6. HTTP状态码

    • HTTP状态码指示了请求的处理结果。常见状态码包括200(成功)、404(未找到)、500(服务器内部错误)等。
  7. 持久连接

    • HTTP/1.1引入了持久连接,允许在单个连接上发送多个HTTP请求和响应,提高了性能,减少了连接建立和断开的开销。
  8. 安全性

    • HTTP本身是不安全的,数据在传输过程中可以被拦截和窃取。为了提高安全性,应使用HTTPS(HTTP over SSL/TLS),它通过加密通信内容来保护数据的机密性和完整性。
  9. Cookie和Session

    • HTTP通过Cookie和Session来跟踪用户的会话状态。Cookie是存储在客户端的小数据片段,而Session是存储在服务器上的会话信息。

HTTP是Web通信的基础,它使得客户端能够向服务器请求资源,包括HTML文档、图像、CSS样式表、JavaScript脚本等。同时,HTTP还支持不同的请求方法,允许客户端执行各种操作,例如获取资源、提交表单数据、上传文件等。随着Web的发展,HTTP的版本和特性也在不断演进,以适应现代Web应用的需求。

二.HTTPS和HTTP的区别

HTTPS和HTTP是两种不同的网络通信协议,它们之间存在以下几个主要区别:

  1. 安全性:HTTPS通过使用SSL或TLS协议对传输的数据进行加密,从而提供了更高的安全性。这意味着在传输过程中,HTTPS能够防止恶意第三方窃听、篡改和伪造数据。

  2. 数据完整性:由于HTTPS使用了加密算法,它还可以确保传输的数据在传输过程中没有被篡改。接收方可以使用证书验证数据的完整性,以确保数据的真实性和一致性。

  3. 认证机制:HTTPS还提供了认证机制,用于验证网站的真实身份。当用户访问一个使用HTTPS的网站时,浏览器会检查网站的SSL证书,并与受信任的证书颁发机构(CA)进行验证。这样可以确保用户正在与合法的网站建立连接,避免了中间人攻击的风险。

  4. 默认端口号HTTP使用默认的端口号80,而HTTPS使用默认的端口号443。这样可以让服务器和客户端识别使用的是哪种协议。

总结起来,HTTPS相比HTTP提供了更高的安全性和数据完整性,并且具备认证机制,可以确保用户与网站之间的安全通信。因此,在涉及敏感信息的场景下,如网上银行、电子商务等,使用HTTPS是非常重要和必要的。

二.HTTPS的加密原理

HTTPS(Hypertext Transfer Protocol Secure)是一种用于安全传输数据的网络通信协议,它建立在HTTP之上,通过加密通信内容来保护数据的机密性和完整性。HTTPS的加密原理主要涉及以下几个关键技术和概念:

  1. 密钥交换协议:在HTTPS通信开始之前,客户端和服务器之间需要建立一个安全的通信渠道,这通常涉及到密钥交换。最常见的密钥交换协议是TLS(Transport Layer Security)或其前身SSL(Secure Sockets Layer)。TLS使用了不同的版本,如TLS 1.2和TLS 1.3,来提供不同级别的安全性。

  2. 非对称加密:一旦通信双方建立了安全连接,它们使用非对称加密算法来交换会话密钥。非对称加密使用一对密钥,包括公钥和私钥。公钥用于加密数据,私钥用于解密数据。在密钥交换阶段,服务器向客户端提供其公钥,客户端使用这个公钥来加密一个会话密钥,并将其发送给服务器。

  3. 会话密钥:一旦客户端和服务器都拥有了相同的会话密钥,它们就可以使用对称加密算法来加密和解密数据。对称加密算法使用相同的密钥进行加密和解密,因此速度更快,但密钥的分发通常更具挑战性。会话密钥是临时生成的,通常只在一次通信中使用。

  4. 数字证书:为了验证服务器的身份,客户端会请求服务器提供数字证书。数字证书包含了服务器的公钥以及一些关于服务器的信息,并由数字证书颁发机构(Certificate Authority,CA)签名。客户端会使用内置的CA根证书来验证服务器的数字证书的有效性。这确保了客户端连接到正确的服务器而不是恶意的中间人攻击者。

  5. 安全通信通道:一旦安全连接建立,客户端和服务器之间的通信将通过TLS或SSL进行加密和解密。这意味着即使第三方能够拦截通信,也无法轻松地解密其中的内容。

总的来说,HTTPS的加密原理依赖于密钥交换、非对称加密、对称加密和数字证书等技术,以确保数据在传输过程中的保密性和完整性,同时还提供了身份验证机制,确保客户端连接到合法的服务器。这些安全性措施帮助防止各种网络攻击,如中间人攻击和数据窃取。


http://www.ppmy.cn/news/1097818.html

相关文章

聚观早报|华为Mate 60 Pro支持面容支付;特斯拉重回底特律车展

【聚观365】9月8日消息 华为Mate 60 Pro已支持面容支付 特斯拉将重回底特律车展 iPhone在美国有1.67亿用户 韩国半导体8月份出口85.6亿美元 比亚迪元PLUS冠军版将于9月15日上市 华为Mate 60 Pro已支持面容支付 毫无预热的华为Mate 60 Pro突然在华为商城首批开售&#xf…

如何使用adb command来设置cpu频率和核数

透過ADB Shell設定CPU開核與freq的command與用法如下: # Disable PPM echo 0 > /proc/ppm/enabled # Enable PPM (Default) echo 1 > /proc/ppm/enabled echo 0 > /proc/ppm/enabled Fixed # Core for each cluster echo X Y > /proc/ppm/policy/ut_fix_core_num …

推断统计|显著性水平|无偏抽样

推断统计则是研究如何利用样本数据来推断总体特征的统计学方法,其内容包括参数估计和假设检验两大类。其中,参数估计是利用样本信息推断总体特征;假设检验是利用样本信息判断对总体的假设是否成立。 推断统计学是统计学的一个重要分支&#…

自然语言处理学习笔记(九)———— OVV Recall Rate与 IV Recall Rate

目录 1.OVV Recall Rate 2. IV Recall Rate 1.OVV Recall Rate OOV指的是“未登录词”(Out Of Vocabulary),或者俗称的“新词”,也即词典未收录的词汇。如何准确切分00V,乃至识别其语义,是整个NLP领域的核…

微服务模式:服务发现模式

由于微服务应用的动态性,很难调用具有固定 IP 地址的服务。这就是服务发现的概念出现的背景。服务发现有助于客户端了解服务实例的位置。在这种情况下,服务发现组件将充当服务注册表。 服务注册表是一个包含服务实例位置的集中式服务器/数据库。在微服务…

如何利用ProcessOn 做资产管理流程图

资产管理 是一家公司最重要的管理活动。好的资产管理可以让资源最优化利用,实现资产价值的最大化。可以帮助组织管理和降低风险。同时当需要决策的时候,对资产数据进行分析和评估,也可以帮助做出更明智的决策,如优化资产配置、更新…

Jabbi的Rust学习日记(二)

特征: 就目前我学习到的rust知识来看,我认为rust有以下几个特征: 链式调用表达式强类型 use 使用use导入包,我觉得rust的导包和python的很像 main main函数是rust可执行程序最先执行的代码,可以说是程序的入口&…

Postman接口测试工具

Postman接口测试工具 Postman简介Postman 发送一个请求postman创建一个集合Postman 快捷键Postman设置postman请求postman历史postman请求排错postman集合简介postman创建和共享集合postman管理集合postman数据导入导出postman测试脚本postman环境变量和全局变量