I don’t really understand the differences between the different ports. I couldn’t find any useful resources online that would go into detail about it. From what I can understand, it acts as some kind of filter that blocks out any other request not using the same port number.
When will I, if ever, need to change the port number when typing in a website in my browser? What about if I am running my own website? Are there any risks I take when using port 80? As in, are there ways to use different port numbers to hack into a website?
And since a Simple Mail Transfer Protocol uses port 25, could I use this knowledge to send emails using self written programs?
By conventions and standards, defined protocols generally listen on defined ports by default. You can set any service to listen on any port you want, just be aware that changing from a standard port means that standard tools would need to be explicitly told to use your non-standard port.
For example, if you run a web server then by default it’s probably listening on port 80. So all someone needs to do to visit your server is use the address:
However, if you change it to listen on a non-standard port, such as 81, then any user who wants to visit your site will need to specify the port number:
The standard convention of just using the address wouldn’t be sufficient, because you’ve broken convention. Now, this is fine if you don’t want people randomly using your site and only want it to be available to people to whom you’ve told the port number. This is called “security through obscurity.” It doesn’t actually secure your site in any way or filter out anything, it just adds an additional step to the use of the site.
As for SMTP, yes, you can write programs to connect to port 25 on SMTP services and send data to those services. You may indeed be able to spoof emails in this manner. However, most services have other built-in checks and balances to prevent such spoofing.