我对SSL有疑问。据我所知,当我们使用浏览器从https服务器请求时,它将首先进行SSL握手,然后所有数据将在连接中进行加密。但是,如果我在没有浏览器的情况下发出请求(例如nodejs中的请求模块,邮递员...),它将是SSL握手和连接上的数据加密吗? 任何人都知道,请向我解释,谢谢。
答案 0 :(得分:1)
首先,停止说SSL。它的继任者是TLS,明年一月将有20年。
TLS是通常位于TCP之上的协议(其他变体也可以使用UDP),并且在TCP功能之上提供了有关端点身份验证以及传输机密性和完整性的一些新功能。
从某种意义上讲,您可以将其理解为介于TCP和更高级别的应用程序协议(例如HTTP)之间。
否则,您可以在TLS之上使用许多其他协议:您拥有所有与电子邮件相关的协议(SMTP,IMAP,POP等),您可以在其之上使用FTP(虽然现在可能不是一个好主意) ,用于实时通信的XMPP等。
简而言之,任何使用TCP的协议都可以对TLS进行一些调整。
因此,HTTP是其中的一种。 HTTP在HTTP客户端和HTTP服务器(简称Web服务器)之间。
浏览器是HTTP客户端。其中之一。当您使用var requiredKeys = {title: 'string', src: 'string', length: 'number'};
var optionalKeys = {description: 'string', playcount: 'number', ranking: 'number'};
var internalKeys = {id: 'number', timestamp: 'number'};
// routes **********************
videos.route('/')
.get(function(req, res, next) {
res.json(store.select(/json/))
next();
})
.post(function(req, res, next) {
res.json(store.insert(/json/, {
description: req.body.description,
src: req.body.src,
length: req.body.length,
playcount: req.body.playcount,
ranking: req.body.ranking,
timestamp: "00:00:00"
}))
next()
})
或curl
时,您也是HTTP客户端。因此,如果任何HTTP客户端访问wget
链接,它将首先进行TLS握手,即在TCP连接之后,开始进行与HTTP协议真正相关的任何操作之前。
您拥有处理TLS的专用库,因此并非所有程序都需要重新编码所有相关内容,因为它也很复杂。