是否存在仅遵循请求模型的协议?

时间:2018-07-11 05:20:14

标签: http servlets https smtp protocols

HTTP遵循request-response model,即,对于来自客户端的每个请求,服务器都会响应。

是否存在仅遵循 request 模型(仅来自客户端的请求)的协议?

我知道SMTP。我可以将SMTP视为仅请求模型,因为我们正在发送邮件但未收到服务器的任何响应吗?

如果存在其他此类协议,请对此进行解释。我用谷歌搜索,但没有找到与我的特定查询有关的答案。

1 个答案:

答案 0 :(得分:0)

  

我是否可以将SMTP视为仅请求模型,因为我们正在发送邮件但未收到服务器的任何响应?

否,因为对于客户端发送到SMTP服务器的每个命令,客户端都会得到响应。 SMTP比HTTP的 chattier 要多得多。仅发送一封电子邮件,SMTP服务器和客户端至少会相互通信5次。

这是SMTP的工作方式:

Client: EHLO yourdomain.com
Server: 250 smtp.gmail.com

Client: MAIL FROM: you@yourdomain.com
Server: 250 Ok

Client: RCPT TO: someone@gmail.com
Server: 250 Ok

Client: DATA
Server: 354 Start mail input; end with <CRLF>.<CRLF>

Client: Hey how are you?
Client: .
Server: 250 Ok

Client: QUIT
Server: 221 smtp.gmail.com Closing connection. Goodbye!

如您所见,这也是一个请求-响应协议。

但是您链接的Wikipedia页面上说SMTP是一种单向协议,这是错误的。


  

是否存在仅遵循请求模型的协议(仅来自客户端的请求)?

大多数协议可用于交换数据,这就是它们遵循请求-响应模型的原因。客户端希望看到一个页面,因此他向服务器请求该页面,然后服务器作为响应发送该页面。服务器和客户端之间正在交换数据。

但是,如果您愿意,可以编写一种仅是一种方法的协议。