在c#中创建Web请求时的后端进程

本文关键字:后端 进程 请求 Web 创建 | 更新日期: 2023-09-27 18:23:40

我想知道在从C#执行webRequest时将要执行的完整过程。我正在使用加密狗连接互联网。实际上,为我准备标头的后端发生了什么?我的.net应用程序如何知道我的互联网提供商提供的公共IP地址(将显示在whatismyip中)?我的公共IP存储在我的系统中的任何位置吗?我只是不想知道完整的过程,比如数据包传输或套接字相关的东西/DNS。它们是如何构建的以及如何沟通的?

我是网络编程的新手。好的教程链接也欢迎。请帮我理解这一切。

在c#中创建Web请求时的后端进程

"只是一个教程"在这里对您没有帮助。

你问题的核心:网络和更具体的TCP/IP。

事实上,您的IP地址存储在您的系统中,并绑定到您的网络接口。但这只是故事的一部分。

如果你通过tcp网络发送数据,你的数据会被打包在一个有的数据包中

  1. 包含服务器(目的地)的ip地址的标头
  2. 以及您的地址(来源)
  3. 其他几件事

所以服务器确实知道您的ip地址。它必须这样做,否则它将无法向您发送回复。

如果你在一个做NAT(地址转换)的路由器后面,你的本地ip(例如192.168.1.1)会被它取代

  1. 路由器接收到对服务器的请求
  2. 路由器用公共ip替换您的ip
  3. 请求被转发到服务器
  4. 回复是从服务器发送到路由器ip
  5. 路由器转发回复到您的本地ip

在通用路由器上,翻译是一个选项,应该显式配置。然而,在ISP提供的(消费者)路由器上,每个用户几乎总是只有一个公共地址,NAT是标准的,因为私有地址(192.168.16,10/8)是不允许的,因此不能通过互联网路由。

就你的情况而言,这就是tcp。数据包如何在网络上从路由器流到服务器再流回来,这本身就是一个故事;-)

这是一本关于tcp/ip 的入门读物

你的电脑是如何知道服务器的ip的。DNS发挥了作用,它是一个巨大的分布式查找系统,可以将主机名转换为ip地址。可与电话簿相媲美。关于DNS和BIND 的标准讲座

进行网络请求增加了一层复杂性。所涉及的协议是HTTP(S)。这里涉及很多内容,但起点可以是HTTP初学者指南

HTTP对传输是不可知的。您的计算机决定在传输上与服务器通信。还有一些网络协议,但tcp/ip(几乎)是默认的。