【问题标题】:connection establishment between client and server客户端和服务器之间的连接建立
【发布时间】:2012-04-24 13:29:44
【问题描述】:

我想了解一些关于客户端和服务器之间建立连接的基本知识。 假设我的网页有左菜单,我有一些链接,点击这些子页面 在母版页的右侧打开。现在每个链接都在请求一个新的网页 服务器。每个网页异步调用 5-6 个 Web 服务来获取数据。所以 如果我单击左侧菜单链接,则在客户端和 服务器使用(client IP and Port)(server Ip and port)。但在回应到来之前, 假设我点击了菜单的其他链接,那么服务器如何知道旧的连接是 终止并建立新连接。下一步,当我单击链接时,请求 转到服务器,服务器处理请求,但在连接之前发送响应 从客户端终止,该响应会发生什么,服务器是否丢弃 响应并接受新的进程请求。

实际上我有很多困惑,所以如果有人可以向我解释完整的客户端-服务器往返过程,那将非常有帮助。

提前致谢

【问题讨论】:

    标签: asp.net tcp connection request client-server


    【解决方案1】:

    服务器将丢弃响应并在后续请求中工作。阅读超文本传输​​协议将使您了解更多。你可以在网上搜索一篇文章是here

    请求和响应是通过面向连接的协议 TCP 进行的,因为连接中断 IIS 将知道该客户端是否无法访问。您尝试http://www.google.com.pk:80 将带您到http://www.google.com.pk,因为我们可以省略默认端口,即 80。试试这个http://www.google.com.pk:82/ 它不会打开 www.google.com,因为无法在端口 82 上建立 tcp 连接。

    【讨论】:

    • 但问题是服务器如何知道终止的连接。
    • 当服务器尝试将http流写回socket时,会抛出异常,因为socket不再存在。服务器将首先尝试发送响应标头,因此此时将失败。 IIS 管理这个。您的 asp.net 代码不知道套接字是否已关闭。但是,您可以尝试 response.write 和 response.flush 将响应流刷新回套接字。即使这样做 iis 也会有一些需要先填充的响应缓冲区,因此这不是一种准确的方法。正如@Adil 所说,您应该阅读有关 http 协议以及 iis 内部的信息。
    • 请求和响应是通过面向连接的协议 TCP 进行的,因为连接中断 IIS 将知道该客户端是否无法访问。您尝试google.com.pk:80 将带您到google.com.pk,因为我们可以省略默认端口,即80。试试这个google.com.pk:82 它不会打开www.google.com,因为无法在端口82 上建立tcp 连接
    猜你喜欢
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 2015-11-09
    相关资源
    最近更新 更多