这可能是一个愚蠢的问题...
当我向网络服务器提交在线表单时,服务器如何知道我就是要返回结果的人?
我相信它与持久 http 连接有关,但我不知道为什么我相信它是正确的。
谢谢
答案1
简而言之,它来自承载 HTTP 数据的 TCP 连接。现代网站和浏览器使用 HTTP 之上和之下的技术协同工作,以增强用户体验。
HTTP 本身是一种应用层协议,具有 GET、POST、HEAD 等标准动词。重要的是要了解这些动词中的每一个都是“无状态的”,因为每个动词都是从服务器请求的,与任何其他请求完全隔离。同样重要的是要了解每个动词都实现了请求-响应配对,这样请求和其响应本质上是联系在一起的。因此,Web 服务器协议处理程序将始终跟踪有关请求的信息,以便它可以发送响应。
TCP 连接对应用程序而言是一对往返于服务器的 IO 流。建立 TCP 连接后,应用程序只需从其输入流读取数据并写入其输出流,因此应用程序无法(有效)将响应发送给其他任何人,因为输出流是连接的一部分。如果您对所有这些如何结合在一起的示例感兴趣,请查看 Berkeley Sockets 库。
希望这些能对你有所帮助。所有这些结合在一起的方式很复杂,需要花些时间去理解。请记住,HTTP 本身是一个非常简单的协议,它具有一组非常有限的操作,虽然我们在 HTTP 本身的上下引入了额外的功能,但它们本身并不是 HTTP 的一部分。