Http 更改URI端口号有什么作用?

Http 更改URI端口号有什么作用?,http,protocols,uri,port,Http,Protocols,Uri,Port,我真的不明白不同端口之间的区别。我在网上找不到任何有用的资源来详细介绍它。据我所知,它充当某种过滤器,阻止不使用相同端口号的任何其他请求 在浏览器中键入网站时,何时需要更改端口号?如果我正在运行自己的网站呢?使用端口80时是否有任何风险?如中所述,是否有方法使用不同的端口号入侵网站 由于一个简单的邮件传输协议使用端口25,我可以利用这些知识使用自编程序发送电子邮件吗?TCP/IP支持机器上的2^16个端口。服务器程序被称为监听特定端口;其他机器使用端口号和机器名称联系机器上的服务器程序。就像信上

我真的不明白不同端口之间的区别。我在网上找不到任何有用的资源来详细介绍它。据我所知,它充当某种过滤器,阻止不使用相同端口号的任何其他请求

在浏览器中键入网站时,何时需要更改端口号?如果我正在运行自己的网站呢?使用端口80时是否有任何风险?如中所述,是否有方法使用不同的端口号入侵网站


由于一个简单的邮件传输协议使用端口25,我可以利用这些知识使用自编程序发送电子邮件吗?

TCP/IP支持机器上的2^16个端口。服务器程序被称为监听特定端口;其他机器使用端口号和机器名称联系机器上的服务器程序。就像信上的地址一样

有些端口号是“众所周知的”,这只是意味着它们是为特定的服务正式分配的:端口80用于web服务器,端口25用于SMTP,端口25用于
telnet
,等等

但是任何服务器都可以在任何端口上运行;这只是更改代码或配置的问题。有时,您可能需要在一台机器上运行两个独立的web服务器;一个可以在端口80上侦听,另一个可以在其他端口上侦听(8080是开发过程中使用的服务器的常见选择)


因此,客户端无法有意义地将端口更改为某个随机数:必须在该端口上、在该计算机上侦听某些内容,否则它什么也不做。

TCP/IP支持计算机上的2^16个端口。服务器程序被称为监听特定端口;其他机器使用端口号和机器名称联系机器上的服务器程序。就像信上的地址一样

有些端口号是“众所周知的”,这只是意味着它们是为特定的服务正式分配的:端口80用于web服务器,端口25用于SMTP,端口25用于
telnet
,等等

但是任何服务器都可以在任何端口上运行;这只是更改代码或配置的问题。有时,您可能需要在一台机器上运行两个独立的web服务器;一个可以在端口80上侦听,另一个可以在其他端口上侦听(8080是开发过程中使用的服务器的常见选择)


因此,客户端无法有意义地将端口更改为某个随机数:必须在该端口上、在该计算机上侦听某些内容,否则它不会执行任何操作。

根据惯例和标准,默认情况下,已定义的协议通常侦听已定义的端口。您可以将任何服务设置为在您想要的任何端口上侦听,但请注意,从标准端口更改意味着需要明确告知标准工具使用非标准端口

例如,如果您运行web服务器,那么默认情况下,它可能正在侦听端口80。因此,访问您的服务器只需使用以下地址:

http://www.yourserver.com
但是,如果将其更改为在非标准端口(如81)上侦听,则任何想要访问您的站点的用户都需要指定端口号:

http://www.yourserver.com:81
仅仅使用地址的标准约定是不够的,因为您已经打破了约定。现在,如果您不希望人们随机使用您的站点,而只希望您告诉了端口号的人可以使用您的站点,那么这很好。这被称为“通过隐晦实现安全”。它实际上并没有以任何方式保护你的网站,也没有过滤掉任何东西,它只是为网站的使用增加了一个额外的步骤


至于SMTP,是的,您可以编写程序连接到SMTP服务上的端口25,并向这些服务发送数据。你可能确实能够以这种方式欺骗电子邮件。但是,大多数服务都有其他内置的检查和平衡来防止此类欺骗。

按照惯例和标准,默认情况下,已定义的协议通常侦听已定义的端口。您可以将任何服务设置为在您想要的任何端口上侦听,但请注意,从标准端口更改意味着需要明确告知标准工具使用非标准端口

例如,如果您运行web服务器,那么默认情况下,它可能正在侦听端口80。因此,访问您的服务器只需使用以下地址:

http://www.yourserver.com
但是,如果将其更改为在非标准端口(如81)上侦听,则任何想要访问您的站点的用户都需要指定端口号:

http://www.yourserver.com:81
仅仅使用地址的标准约定是不够的,因为您已经打破了约定。现在,如果您不希望人们随机使用您的站点,而只希望您告诉了端口号的人可以使用您的站点,那么这很好。这被称为“通过隐晦实现安全”。它实际上并没有以任何方式保护你的网站,也没有过滤掉任何东西,它只是为网站的使用增加了一个额外的步骤


至于SMTP,是的,您可以编写程序连接到SMTP服务上的端口25,并向这些服务发送数据。你可能确实能够以这种方式欺骗电子邮件。但是,大多数服务都有其他内置的检查和平衡机制来防止此类欺骗。

从纯技术角度来看,在任何端口号上运行web服务器都没有“区别”,只要客户端和服务器都知道要使用哪个端口。当客户端连接到服务器时,它必须知道IP地址和端口

按照惯例,标准服务使用几个端口。例如,端口25是SMTP,端口80是http端口,22是ssh端口,等等。由于这些约定,操作系统保留小于1024的端口,并且只能由根进程打开

除非有特殊原因,一般来说,坚持使用标准端口号是个好主意。高级端口扫描程序/分析工具将尝试系统上的所有端口,因此在系统上运行服务没有多大好处