我是所有这些 http 和 tcp/ip 事物的初学者。因此,这些问题中可能有很多东西可能没有意义或完全不正确。
首先,我将添加所有我想到的问题,因为我无法将它们放在标题上。
我在 django(python 框架)上工作以进行 Web 开发。
我对服务器的工作方式感到困惑。而目的端口又是如何通过url来决定的呢?
主要问题:到目前为止,我学到的是通过 DNS 我们获得了网站的 IP 地址。端口(目标和源)由 TCP 决定。并通过 TCP 标头发送。但是它如何决定它应该去服务器中的哪个端口(即目标端口)。
我对上述问题的回答:花了很多时间之后,我才知道,http 请求默认为 80,https 默认为 443,类似地,其他类型的请求也默认为某些端口。所以我们可以根据这个计算出IP地址。
但这在我的脑海中提出了另一个问题。
另一个问题:我还建立了一个简单的 django 网站并将其部署在 pythonanywhere 上。但我将它部署为一个完整的应用程序。假设我的 django 应用程序接受不同类型的请求,如 HTTP、HTTPS、SMTP 等。那么这些特定任务的端口将如何决定?因为所有这些请求都将来自单个应用程序,所以它们应该在同一个端口上运行。我认为服务器不会改变应用程序本身的任何内容。那么现在目的港将如何决定呢?
注意:我不确定是否可以在 django 中创建一个接受不同类型请求的应用程序。但这应该是可能的,因为我们可以创建不同的应用程序 - 使用 startapp 并在不同的 url 上运行。
我在哪里读到,它说http的默认端口是80,那么这意味着它也应该可以更改它?
最重要的问题并总结所有疑问 假设我有一个接受不同请求的项目。我想将它部署在服务器上,那么如何将 http 请求和 smtp 请求分开?我是否必须手动制作不同的应用程序,然后部署在不同的端口或其他东西上?如果不是,并且所有东西都在同一个端口上运行,那么这个端口是如何在浏览器中决定的?假设我的域名是 xyz.com 那么服务器上的具体端口如何访问呢?
基本上目的港是如何决定的?